Changes to CustomData:
Some functions would only return the current active layer, added extra variants that take an index to select the level (modeled after CustomData_get_layer_n.)
Still todo:
* UVs are being interpolated linearly, should probably offer Catmull-Clark subdivision like Subsurf modifier.
* Vertex Colors still don't support multiple customdata layers.
* Editing UV data on levels other than 1 should be disabled in the interface (same for weights)
(Empty space will get OSA options, that I add tomorrow or so)
- Removed a lot of old unused variables in renderdata. Also meant I had
to remove this from python API... please check if this gives valid
scripts?
- Cleaned up bad formatted code for FFMPG buttons (spaces instead of tabs)
copy system with rigidbody constraint will link new constraints to new objects (instead of old)
fps from blender will be used when baking (left shift/ctrl/alt + P)
Crash leaving editmode related to vertex groups. I couldn't reproduce this,
but suspect somehow multiple deformvert layers were created. Added some
extra checks to avoid that now.
IK Locks/Limits were applied to bones in IK-chains even when the IK
constraint for the chain had an influence value of 0.
I've added a check to see if the ik-constraint found has any influence
over a chain, before the chain is made available for ik-solving.
* Added patch 5251 X/Y Offset to Split Viewer node, by Juho
(with some modifications from the patch version).
Also various small tweaks to compositor drawing & buttons.
* Added a new top-level add menu category for compositing nodes: Distort
It currently contains Translate, Rotate, Scale, Flip, Displace and Map UV
Also did some cleaning up of the ordering of add node menu items to be a
bit better organised.
Adding missing define for displace node (Matt can change the number when he gets back, this is just to fix compilation)
Removing "#pragma mark" from node.c. IIRC, that's XCode leaving crap around, so be sure to remove them when you commit (it outputs warnings on other compilers).
* Displace Node
Displaces an input image's pixels based on an input vector mask. This can be
useful for a lot of things, like hot air distortion, quick-and-dirty compo
refraction, compositing live footage behind refracting objects, and more!
The amount of displacement in the X and Y directions is determined by:
* The value of the mask's channels
- (red) channel 1's value determines displacement along the positive or
negative X axis
- (green) channel 2's value determines displacement along the positive or
negative Y axis
If both the channel's values are equal (i.e. a greyscale image) the input
image will be displaced equally in both X and Y directions, also according to:
* The X scale and Y scale buttons
- These act as multipliers to increase or decrease the strength of the
displacement along their respective axes. They need to be set to non-zero
values for the node to have any effect.
Because of this, you can use the displace node in two ways, with a greyscale
mask(easy to paint, or take from a procedural texture), or with a vector
channel or RGB image, such as a normal pass, which will displace the pixels
based on the normal direction.
A quick practical example:
http://mke3.net/blender/etc/displace-desert-h264.movhttp://mke3.net/blender/etc/displace-desert.blend.zip
And some techie examples:
Using a greyscale mask
http://mke3.net/blender/etc/displace-bw-h264.movhttp://mke3.net/blender/etc/displace-bw.png
Using a vector mask
http://mke3.net/blender/etc/displace-vec-h264.movhttp://mke3.net/blender/etc/displace-vec.png
weightpaint_envelope_assign - can update active vgroup only
weightpaint_normalize - fixups
BKE_plugin_types - made the max length 32 ratehr then 16 so you can fill the text space in pupBlock
Now, when only one axis toggle is on and click on it, all of the other
toggles will not be turned on.
For this to work, I've moved the version patches in the drawing/evaluation
code for this constraint to the file-reading code.
Updated Python Mesh API to support UV and Color layers with names.
Similar to vertex group's
renamed a function in customdata.c CustomData_free_layers -> CustomData_free_layers_active and made CustomData_free_layers accept an index, this is needed so python could free layers that arnt active.
Now the Snap To Location (Shift S) tools for bones in pose-mode
work correctly. Previously, only one of these tools was implemented,
but it only worked in some cases.
This fixes item #4874 in Todo Tracker. Was patch #5012.
Now uses original filename for unpacking, instead of the Blender ID name.
That latter was a nice idea, but because of its 20 char maxname limit
not working well.
Added support for multiple UVs in the render engine. This also involved
changing the way faces are stored, to allow data to be added optionally
per 256 faces, same as the existing system for vertices.
A UV layer can be specified in the Map Input panel and the Geometry node
by name. Leaving this field blank will default to the active UV layer.
Also added sharing of face selection and hiding between UV layers, and at
the same time improved syncing with editmode selection and hiding.
Still to do:
- Multi UV support for fastshade.
- Multires and NMesh preservation of multiple UV sets.
(saved files cannot read back, they crash).
The implementation of this option was plain accident that it even worked
once... you cannot use the API in blender that way.
This header defines function stubs for builds without OpenEXR.
A quote from openexr_multi.h:
/* ugly... but we only use it on pipeline.c, render module, now */
No longer true! Function definitions should never be in header files,
I say.