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
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
TypeError for pythonCoder error.
RuntimeError for blender not being able to be joined. (Sorry stivs, no BadJuJu yet)
Documented this in the epydocs also.
- 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
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!
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!"
:)
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.
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.
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
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.
Changed Pythons Object.Duplicate() to take keyword parms to enable duplication of spesific data.
Eg- Object.Duplicate(mesh=1) # to duplicate mesh data also.
NMesh lists before trying to build a new mesh (used by mesh.PutRaw() and
mesh.update()). It was possible to put junk into the NMesh lists, resulting
in some messed-up meshes.
even though its error messages suggested it did. Thanks to Yann for the
patch (I also added the ability to accept parameters without requiring
them to be in a tuple). Also documented the New() function.
Object.Join()
Seperated the join calls from space.c and view3dmenu into join_menu() in space.c, like the select_group_menu(),
okee's from join_curve, join_mesh.. etc are in join_menu() so python can call them without UI menu's in the way.
this is also a bit neater since there were 2 places that were doing what join_menu() does now.
- Cam
Object.Duplicate(linked=1)
Basicly a wrapper for adduplicate();
There was previously no easy way to copy objects in python. even the ways that do exist dont take modifiers, particles etc into account.
Uses the current selection.. epydocs included also.
- Cam
Still need to do Mball and Text.
Ken- this is fairly straight fwd but if you dont like it - its line 4867 of Mesh.c and 1 block that can be removed.
I tested for memory leaks and correct material user adjustment.
This is realy needed for using getFromObject to export to external rendering engines.
- Hope its ok.
Cam
There is a lot of very dangerous (and slow) string manipulation code in
there. I do not want to appear arrogant, but a bit of basic code QA in this
module certainly can't hurt.
Please see the diff for further explanation ;-)