Mat3ToScalef and Mat4ToScalef
These return a floating point scale value which is the average of the 3 axies.
Use this to adjust curve radius when applying scale/rot
Bugfix:
The mem cache limitor didn't take mmap-allocated memory into account,
resulting in effectively disabling it, since all imbuf-data is
currently allocated using mmap.
Initial commit of imagebrowser in trunk.
BIG COMMIT!
Main changes:
* completely reworked imasel space
* creation and storage of the preview images for materials, textures, world and lamp
* thumbnails of images and movie files when browsing in the file system
* loading previews from external .blend when linking or appending
* thumbnail caching according to the Thumbnail Managing Standard: http://jens.triq.net/thumbnail-spec/
* for now just kept imasel access mostly as old imgbrowser (CTRL+F4, CTRL+F1) a bit hidden still.
* filtering of file types (images, movies, .blend, py,...)
* preliminary managing of bookmarks ('B' button to add, XKEY while bookmark active to delete)
More detailed info which will be updated here: http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser
Places that need special review (and probably fixes):
* BLO_blendhandle_get_previews in readblenentry
* readfile.c: do_version and refactorings of do_library_append
* UI integration
TODO and known issues still:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management still needs some UI work (second scrollbar?), feedback here is welcome!
Credits:
Samir Bharadwaj (samirbharadwaj@yahoo.com) for the icon images.
Many thanks to everyone who gave feedback and helped so far!
The conversion from float to char (byte) was not correct. It should include
the possibility for colors like 0.999999 to become 255 still. The correct
multiplication factor I don't know though... and this should become a system
wide definition!
Outliner "make local" was not coded properly. Removed it for now...
Proper implementation would check all other used pointers, to indicate
the data is now local, and ID pointers should be of type "lib extern"
This commit ports Hue Saturation Value node to the material node system.
Unlike in composite version, each value is an input. Composite node version
will be updated later to use the same scheme.
for shading if their 'visibility factor' is below 0.001. This
gives no perceptible visual difference in my tests, but can
significantly speed up shading when using lots of omni lights
with quad falloff over a large area. Since quad lamps never
actually fall off to 0, previously every lamp would be considered
for shading each pixel, even if such lamps had a tiny falloff
distance, and were miles away.
However meshes that use an armature cant use object animation.
faster exporting for non modifier applied, armature meshes (transform all verts using wrapped C func)
* made name string cleaning function allow chars ,.()[]{} in fbx model names
* clamped export lamp intensity to 200
* each mesh only links to the image-textures it uses. (before it linked to ALL textures)
* added support for AllSame mapping, this means when a material or texture only uses one, a single mapping index can be given rather then a big list with the same value in it.
* improved material and texture mapping method
Submitted by: David Bryant
This patch adds 2 new drawtypes for empties (circle draws a 2d-circle on the x-z plane, and cube draws a regular cube), and allows empties to be used as custom bone shapes.
I've modified the patch a bit to fix up weird formatting, optimising the circle-drawing method, but the cube-drawing function has been maintained. In the process, I also moved the mesh-specific code in draw_object_instance to draw_object_mesh_instance so that empties can be used by whatever else might use draw_object_instance too.
=============================
- In textured drawmode it now draws the texture, with solid mode lighting.
- UVs and vertex colors for subsurf are not computed incremental yet, so
editing in textured drawmode then may not be as fast as the other modes.
Implementation Notes:
- Added textured drawing functions to the editmesh and subsurf derivedmeshes.
- Removed some unused, legacy subsurf code that directly used Mesh.
- Restructured texture drawing a bit to make it more clear and allow for
editmode drawing.
(Peach feature request)
* material indicies were incorrectly exported
* export object materials using colbits
* scaled armatures would scale bones twice
* scenes with no world would raise an error
Additions
* added options for global scaling and rotating, defaults will load correctly in MotionBuilder
* modifiers can be applied to skinned meshes, the armatures are set to their rest positions for python to get the un-deformed mesh. This makes exporting a mesh with subsurf and armature applied work as expected.
* meshes with parent bones are exported as weighted meshes.
* use lamp modes for cast light and cast shadow FBX settings.
* batch exporter, scenes or groups can be exporter to a file each.
* help button to load the wiki exporter page.
replacing PyWeakref_NewProxy with PyWeakref_NewRef fixes this problem.
list(bpy.data.armatures) # would mess up weakrefs
[arm for arm in bpy.data.armatures] # didnt.
The "Strands" settings is a BlockBut and never return B_MATPRV like the others buttons, because of this,
never call BIF_preview_changed.
It's posible two fix for this:
1) make all the buttons into the "Strands" panel return B_MATPRV (this modify the "work mode" of the panel)
2) Add a call to BIF_preview_changed to the end of strands_menu function (as do_matbuts).
The problem with the first options, is that the panel "close" when you press/release some of the buttons, so
to preserve the current "work mode" of the panel, i choose the second option.
data = arm_ob.data
bones = arm_ob.data.bones.values()
Fixed by returning existing armatures if they exist in the weakref list. tested with FBX and BVH support.