Commit Graph

47594 Commits

Author SHA1 Message Date
Erwin Coumans
2e6d576182 Sorry to break the cvs-closed status, so if you really need to make a new 2.40 build, just disable the game engine if it doesn't compile for a platform. Again, sorry if this breaks non-windows platforms, but I hope people help to get this amazing fix working for all platforms. Armature-fixing contribution from Snailrose. Also lots of cool things from Snailrose and Lagan.
Armatures are back
Split screen
Double sided lightning
Ambient lighting
Alpha test
Material IPO support (one per object atm)
Blender materials
GLSL shaders - Python access
Up to three texture samplers from the material panel ( 2D & Cube map )
Python access to a second set of uv coordinates

See http://www.elysiun.com/forum/viewtopic.php?t=58057
2006-01-06 03:46:54 +00:00
Campbell Barton
ef520a8cc9 Scene.c - Removed redraw when in non UI mode.
Lamp.py - Example indent
Object.py - Improved join documentation.
2006-01-06 01:53:26 +00:00
Kent Mein
39fcd3586f Lots of stupid warning fixes:
Added newlines at end of a bunch of files that didn't have them.
removed a couple of unused variables and an extra ';'
(Also removed config.h crap from these files)

Kent
2006-01-05 23:10:54 +00:00
Kent Mein
2901da3c29 I added {}'s around an if block of code to prevent gcc from saying
this else is ambiguous...
code was
if (blah) if (blah2) stuff; else stuff2;
its now
if (blah) { if (blah2) stuff; else stuff2; }

Kent
2006-01-05 20:52:51 +00:00
Ken Hughes
75032534f3 Bugfix for Toni: Ipo_addCurve() needed to call set_icu_vars() in order to
properly initialize data for new Ipo curves.
2006-01-05 19:25:38 +00:00
Ton Roosendaal
b702ce4819 Orange bugfix; duplicating object with group didn't increase group user
counter... tsk tsk tsk!
2006-01-05 19:16:28 +00:00
Ton Roosendaal
febd2a8f28 orange bugfix: "Make local Action" did not set the Ipos in channels to
local (or make copy if used by other actions), causing in loss of ipo's.
2006-01-05 16:12:02 +00:00
Campbell Barton
1377e65531 Changed so all errors raise an excepton. - As per Toni's suggestions.
TypeError for pythonCoder error.
RuntimeError for blender not being able to be joined. (Sorry stivs, no BadJuJu yet)

Documented this in the epydocs also.
2006-01-05 15:53:07 +00:00
Nils Thuerey
9fe4592a7e Three minor fixes:
- removed debugging output from fluidsim export
- directores with "+" are now valid for fluidsim data
- simulation now always uses frame 1 to endframe, so changing start frame settings should work again
2006-01-05 15:49:27 +00:00
Ton Roosendaal
fbe9a17138 Orange bugfix: regular materials did not show textures... 2006-01-05 14:53:26 +00:00
Ton Roosendaal
465ff56d96 Orange: Ack! Yesterday's commit to cleanup relative paths forgot to
change the undo code as well... so on any Undo/redo all the libraries got
lost!
2006-01-05 14:12:07 +00:00
Ton Roosendaal
283b0ff736 Orange; maintenance commit!
- Moved all 'render pipeline control' options out of the Material panels
  into the (now renamed) "Links and Pipeline" Panel. These are the options
  that are not per material-node, but global for the entire Material tree.
  It includes ZTransp, Zinvert, Strands, Halo, Wire, etc.

- To further make Node editing clear, when you enable Nodes for the first
  time, the link button to the first Material node is drawn red, to note
  that here needs something linked or added.

- Protected Node editing for Library data

- Fixed header buttons to work OK for Node Window
2006-01-05 13:46:27 +00:00
Matt Ebb
0551b93808 * Fix to update timeline after transform in action window 2006-01-05 13:25:26 +00:00
Ton Roosendaal
406b3ae63b Orange; last commit didnt draw passepartout correctly. Also added a limit,
so you cannot screw up the entire view :)
2006-01-04 21:29:32 +00:00
Ton Roosendaal
987a3216c3 Orange: Hold SHIFT+MMB in camera view shifts the viewports around. 2006-01-04 21:16:09 +00:00
Ton Roosendaal
1521012c18 Orange; moved version patch for bone layers to 2.40, so orange branch can
read 2.40 files!
2006-01-04 19:11:27 +00:00
Ton Roosendaal
3f4aed3658 Orange; relative path fix for libraries.
- On linking stuff from libraries, each relative path now is relative with
  respect to the file that uses the library.

This way you can make libraries that use other libraries, and link them
in your project with an entire different relative path.

The commit also fixes issues when mixing up relative or non-relative paths.

Now after this I need to commit something cool, so the orangers will update
and check! :)
2006-01-04 19:05:24 +00:00
Joseph Gilbert
9e36d4bc8e [ #3661 ] resize4x4 in Matrix class doesn't set ones on the diagonal
* resizing a matrix now puts 1's back on the diagonals.
2006-01-04 16:02:02 +00:00
Ton Roosendaal
ed2b55585d Wednesday sync orange with bf-blender
Note: has the crazyspace fix!
2006-01-04 15:47:16 +00:00
Ton Roosendaal
4cb838d54f Fix for CrazySpace correction. (Special request of our Argentinan bird
movie friends :)

There were two issues with it, which both have been tackled as follows:

- the correction transformations (quaternions) were calculated per face,
  and then averaged over the vertices. This gave annoying inaccuracies,
  especially when the geometry is irregular.
  The new code first calculates two tangent vectors in a vertex, based on
  the associated edges it has in a face. These tangents then are used to
  define the transform. Tangents are 20% of the length of an edge now.

- When a SubSurf modifier was in the chain, the deformation caused by the
  subsurf was also included in CrazySpace correction, giving even larger
  errors.
  New code temporally disables Subsurf, recalculates vertices, and then
  does the crazy tricks. :)

All in all, quite well working!
2006-01-04 15:37:48 +00:00
Campbell Barton
4af91dae79 Added some notes regarding Object.GetSelected() - it uses the last localview. 2006-01-04 15:11:35 +00:00
Joseph Gilbert
de37b11e56 [ #3712 ] Calling makeEditable() and update() on an armature twice duplicates bones
* fixes bug where editbones are not freed on calling update()
2006-01-04 15:07:15 +00:00
Ton Roosendaal
ec01a66a6b Orange: Node previews now draw standard backdrop to show alpha better. 2006-01-04 12:41:13 +00:00
Ton Roosendaal
3153a238b3 Orange: more Node goodies;
- New Node: "Mapping". Allows input vector to be translated, rotated and
  scaled. And optional be clipped to a range. Works for colors too!

- The button "Normal" now allows incremental input, so a click in the
  button won't change the normal anymore

- Connecting wires now show selection state for Nodes, with nice blended
  colors. Both colors were added in Themes, but default to black and white
2006-01-04 12:13:13 +00:00
Campbell Barton
ff7ca4b1a2 Gave an example of changing lamp modes in epydocs. - answers a q on elysuin. 2006-01-04 01:55:39 +00:00
Ton Roosendaal
bd26fe8f94 Orange: Another issue with Armature layers; in NLA, the strips with a
locked length should not skip hidden channels.
2006-01-03 22:09:25 +00:00
Ton Roosendaal
f47899fc0f Orange; merger with bf-blender.
(Merging is *not* fun work, especially not with bugfixes in main branch
for code that got cleaned up in the other! Poor Hos... :)
2006-01-03 21:43:31 +00:00
Ton Roosendaal
9557c3a66d Orange: minor tweak for group user counting. 2006-01-03 21:10:43 +00:00
Ton Roosendaal
14d5cd1c31 Bugfix #3646
Outliner, using scrollwheel with mouse in scrollbar didn't scroll in the
correct direction.
2006-01-03 20:59:51 +00:00
Ton Roosendaal
5414bca7f7 Bugfix #3643
Editmode mesh: after an unhide ("reveal") the countall() needed to be
called. This caused for example extrude not to work when all was hidden.
2006-01-03 20:26:24 +00:00
Ton Roosendaal
750b9df26a Bugfix #3673
Threadsafe patch for environment maps type "Load" missed to include a
call, so still crashed. Only for non-debug builds though, so not reported
earlier.

From my cvs log 7 months ago:

"Added threadsafe patch from Martin.
Now envmaps of type "Load" should not give errors. I assume Martin tested!"

 :)
2006-01-03 20:06:08 +00:00
Ton Roosendaal
a085a41bc5 Bug #3681 The never ending bump mapping saga!
With the fix over a month ago, which added correct texture space vectors for
the bump, gave results so crispy that normals could invert after normalize.
This only when the normal "fac" slider was > 1.0.

The normals from imagetextures now get clipped to prevent it to result in
flipping normals. Will do more tests though...

Also note that the real good way would be have the tangent vectors for the
actual render normal available to perturb for bump, thats another story.
2006-01-03 19:49:38 +00:00
Joseph Gilbert
9f8348a22a *bpy fix
- include file capitialized wrong
2006-01-03 17:24:24 +00:00
Chris Want
b41a476401 As positively recieved on the mailing list and irc (and blessed by
guitargeek), this commit enhances the support for temporary storage
for the structs EditVert, EditEdge, and EditFace. The field
"EditVert *vn" has been removed and replaced by a union called
"tmp" that can hold:

 v,  an EditVert pointer;
 e,  an EditEdge pointer;
 f,  an EditFace pointer;
 fp, a float pointer;
 p,  a void pointer;
 l,  a long;

Please see the mailing list post here for more information about
this:

http://projects.blender.org/pipermail/bf-committers/2005-December/012877.html
2006-01-03 17:22:42 +00:00
Joseph Gilbert
5233f73589 *warnings fixes
- fixes a number of warnings in bpy project
2006-01-03 16:27:34 +00:00
Johnny Matthews
af7e7ab587 Changing the names of the shape copying tools to something that doesn't offend the orange team ;) 2006-01-03 15:22:11 +00:00
Ton Roosendaal
832f2d33d3 Orange; stuff for the animation department!
- Found the potential crasher for sound playback & undo. Test!
- PoseMode: NKey panel didn't work when actions where assigned
- NLA: "Add action strip" now displays in menu to which active object the
  actions are added.
2006-01-03 12:04:05 +00:00
Ton Roosendaal
4bc4eac1e5 Orange; tweaks for further integrating node editing in UI
- Previews inside groups now get updated too
- Activating nodes inside of groups updates UI and preview render correctly
- Entering/leaving groups updates UI and previewrender
- Material Node: now draws socket name next to colorpicker for inputs
2006-01-03 11:34:28 +00:00
Campbell Barton
d14f6c9cbc replaced more M_Object_Get for the faster Object_CreatePyObject.
Object.GetSelected now dosnt return None if there is no 3d view. - wasnt documented and likely would mess up scripts that always expected a list. - Just return an empty list instead.
2006-01-03 06:14:53 +00:00
Campbell Barton
fc079f8482 made scene.getChildren() a heap faster. 983.3 times faster in my test.
getting 7200 objects did take: 1.18 sec,  now 0.0012 sec

It was doing a full object list lookup for every object in the scenes base using the name to compare.
now it just gets the object directly from the base and converts it to a python object, adding it to the list.
- Cam
2006-01-03 05:38:39 +00:00
Campbell Barton
fc6ec33c89 Adds a boarder around the oops, usefull to know where the oops bounds end with larger scenes.
I needed to do a make clean, then make to see this change.
2006-01-03 04:20:43 +00:00
Campbell Barton
5f48930a75 Moved Object.Join() into a function of an object.
eg.
ret_val = ob.join(objects)
Now it dosent depend on the current selection, or change the selection context.

Made respective join_* functions return 0 if the join was not mode, 1 when it workes.
2006-01-03 02:35:45 +00:00
Campbell Barton
80f903ed73 Small commit, hopefully the last Duplicate change.
Made pythons duplicate not redraw, documented adduplicate()
2006-01-02 23:26:54 +00:00
Ton Roosendaal
85f089f3b9 Node render: a fix in threading, groups had a stack counter issue... :) 2006-01-02 21:04:33 +00:00
Ton Roosendaal
0cba8b906a Orange fix: Mixup in indices caused input-normal for Material Node go wrong
(caused by commit of 3 hours ago)
2006-01-02 20:24:18 +00:00
Ton Roosendaal
0943a0249c Orange: enabled thread render for node trees.
Works with groups too! But, discovered a bug with texture nodes inside
of groups... will do that next.
2006-01-02 19:09:37 +00:00
Ton Roosendaal
c1a4e42a75 Orange; another node update for reviewing.
Material Nodes now have input sockets, to override the actual Material
settings. If socket has no input, you can also edit Material settings here.
(Color picker, number slider).

Of course a load of options will become available here, first bugfixing!
(Oh, and enable fix thread render)
2006-01-02 17:40:03 +00:00
Ton Roosendaal
763695c0e8 Orange; made Node types Texture and Geometry integrated in render. Means
the coordinate outputs now have correct dx/dy vectors for Image AA, and
texture delivers correct intensity, rgb, alpha and normal.

Note; we need a "Vector Mapping" node, to do 2d/3d mapping, like in the
Material "Map In" panel.
2006-01-02 15:32:17 +00:00
Ton Roosendaal
4650f7f8a9 Fake commit; just forgot to add this to the log;
A group node; named "Backlight"

http://www.blender.org/bf/g1.jpg
http://www.blender.org/bf/g2.jpg

And how it looks rendered:

http://www.blender.org/bf/g3.jpg (no Nodes)
http://www.blender.org/bf/g4.jpg (with Nodes)
2006-01-02 13:08:23 +00:00
Ton Roosendaal
ea7538dca6 Orange: more noodle updates!
**** NEW: Group Nodes

Node trees usually become messy and confusing quickly, so we need
not only a way to collapse Nodes into single 'groups', but also a
way to re-use that data to create libraries of effects.

This has been done by making a new Library data type, the NodeTree.
Everything that has been grouped is stored here, and available for
re-use, appending or linking. These NodeTrees are fully generic,
i.e. can store shader trees, composit trees, and so on. The 'type'
value as stored in the NodeTree will keep track of internal type
definitions and execute/drawing callbacks. Needless to say, re-using
shader trees in a composit tree is a bit useless, and will be
prevented in the browsing code. :)

So; any NodeTree can become a "Goup Node" inside in a NodeTree. This
Group Node then works just like any Node.
To prevent the current code to become too complex, I've disabled
the possibility to insert Groups inside of Groups. That might be
enabled later, but is a real nasty piece of code to get OK.

Since Group Nodes are a dynamic Node type, a lot of work has been
done to ensure Node definitions can be dynamic too, but still allow
to be stored in files, and allow to be verified for type-definition
changes on reloading. This system needs a little bit maturing still,
so the Python gurus should better wait a little bit! (Also for me to
write the definite API docs for it).

What works now:

- Press CTRL+G to create a new Group. The grouping code checks for
impossible selections (like an unselected node between selected nodes).
Everthing that's selected then gets removed from the current tree, and
inserted in a new NodeTree library data block. A Group Node then is
added which links to this new NodeTree.

- Press ALT+G to ungroup. This will not delete the NodeTree library
data, but just duplicate the Group into the current tree.

- Press TAB, or click on the NodeTree icon to edit Groups. Note that
NodeTrees are instances, so editing one Group will also change the
other users.
This also means that when removing nodes in a Group (or hiding sockets
or changing internal links) this is immediately corrected for all users
of this Group, also in other Materials.

- While editing Groups, only the internal Nodes can be edited. A single
click outside of the Group boundary will close this 'edit mode'.

What needs to be done:

- SHIFT+A menu in toolbox style, also including a list of Groups
- Enable the single-user button in the Group Node
- Displaying all (visible) internal group UI elements in the Node Panel
- Enable Library linking and prevent editing of Groups then.


**** NEW: Socket Visibility control

Node types will be generated with a lot of possible inputs or outputs,
and drawing all sockets all the time isn't very useful then.

A new option in the Node header ('plus' icon) allows to either hide all
unused sockets (first keypress) or to reveil them (when there are hidden
sockets, the icon displays black, otherwise it's blended).

Hidden sockets in Nodes also are not exported to a Group, so this way
you can control what options (in/outputs) exactly are available.

To be done:
- a way to hide individual sockets, like with a RMB click on it.

**** NEW: Nodes now render!

This is still quite primitive, more on a level to replace the (now
obsolete and disabled) Material Layers.

What needs to be done:

- make the "Geometry" node work properly, also for AA textures
- make the Texture Node work (does very little at the moment)
- give Material Nodes all inputs as needed (like Map-to Panel)
- find a way to export more data from a Material Node, like the
  shadow value, or light intensity only, etc

Very important also to separate from the Material Buttons the
"global" options, like "Ztransp" or "Wire" or "Halo". These can not
be set for each Material-Node individually.

Also note that the Preview Render (Buttons window) now renders a bit
differently. This was a horrid piece of antique code, using a totally
incompatible way of rendering. Target is to fully re-use internal
render code for previews.

OK... that's it mostly. Now test!
2006-01-02 13:06:05 +00:00