http://wiki.blender.org/index.php/Dev:2.6/Source/Render/RenderEngineAPI
* RenderEngine is now a persistent python object that exists and retains
properties as long as a frame is being rendered. This is mostly useful now
that more than one callback will be added.
* Added update() callback that should ideally be used to export the scene,
leaving only the rendering to the render() callback. This is not required to
be used at this point, but separating this will make things more thread safe
later on.
* Added tag_redraw() and tag_update() functions that will be used for viewport
rendering.
* Internal change: status text is now retained after update_status calls.
* Enabled modifier "Apply" button since it can now be used to apply displacement or output layers to the mesh.
* Default surface output names are now unique in case canvas has multiple surfaces of same type.
* Merged "face aligned" and "non-closed" brush options to a single "Project" toggle, available for "Proximity" brushes.
* Added more icons to user interface selections.
* Increased default proximity distance.
* Set proximity falloff ramp to only affect alpha by default.
* Removed some no longer required render ext. functions.
* Fix: geometry node vertex alpha didn't work unless "Vertex Color Paint/Light" was enabled from material.
Made a major amount of conflict resolution for code adaptation to
the animation system updates introduced in the Pepper branch recently
merged to the trunk.
Resolved conflicts:
source/blender/blenkernel/intern/anim_sys.c
source/blender/blenkernel/intern/library.c
source/blender/editors/animation/anim_channels_defines.c
source/blender/editors/animation/anim_channels_edit.c
source/blender/editors/animation/anim_filter.c
source/blender/editors/animation/keyframes_draw.c
source/blender/editors/animation/keyframes_edit.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/space_nla/nla_buttons.c
source/blender/editors/space_nla/nla_channels.c
source/blender/makesdna/DNA_action_types.h
source/blender/makesdna/intern/makesdna.c
source/blender/makesrna/intern/rna_main_api.c
from Tom Edwards (artfunkel), with minor edits.
This patch makes the following improvements to environment map scripting:
* Adds a "is_valid" RNA property to envmaps. True if the map is ready for use, False if it needs rendering.
* Adds a "clear" RNA function to envmaps. Deletes any envmap image data.
* Adds a "save" RNA function to envmaps. Writes the envmap to disc with a configurable layout. (Defaults to the current hard-coded layout.)
* Updates bpy.ops.texture.envmap_save with configurable layout support as above.
These changes, particularly configurable layouts, make exporting envmaps to other software much easier.
* Object velocity can now be used to determine brush influence and color.
* Brushes can now be set to "smudge" existing paint.
* Added new operators to easily add and remove surface output mesh data layers from Dynamic Paint ui.
* Fixed drip effect algorithm to work properly on forces pointing towards surface.
* Adjusted drip effect speed.
* Drip effect can now use canvas velocity and acceleration to influence drip direction.
* Fixed texture mapping for material enabled brushes.
* "Object Center" type brushes can now use "material color" as well.
* Improved surface partitioning grid generation algorithm.
* Fixed possible invalid brush collision detection when OpenMP enabled.
* Fixed incorrect random sized particle displace/wave influence.
* Fixed "Object Center" brush color ramp falloff.
* Fixed invalid zero alpha sampling when rendering vertex colors.
* Lots of smaller tweaking.
* Added alpha support renderer for vertex colors. You can now easily render Dynamic Paint produced vertex colors by checking "Vertex Color" in material options.
* Added "Vertex Alpha" socket for "Geometry" material node.
* Fixed vertex surface color output issues.
Note for VS2008 plus CMake users:
I had to remove OpenEXR debug libs from the "blender" project properties >
Linker > Additional Dependencies. Otherwise I got a number of linker errors
concerning duplicated symbols between libcmt.lib and libcmtd.lib.
Conflicts resolved:
source/blender/render/intern/source/pipeline.c
Also fixed an inconsistent conflict resolution in the last commit with
regard to release/scripts/startup/bl_ui/properties_render.py. This
problem resulted in empty menus in the GUI.
Full Sample AA (FSA) was failing in cases. Bug report was an empty
scene (with compo nodes) linking in another .blend scene (with render).
That case gave warning "FSA not supported with rendering". That now is
allowed.
Then I noticed FSA was giving corrupt sample buffers or crashes in cases,
especially on first buffer, this appeared to be a missing compo tag on
first sample buffer.
Lastly, to make FSA render a tiny bit less frustrating: added render window
statistic to show which of the FSA steps is being done.
Conflicts resolved:
source/blender/makesrna/RNA_enum_types.h
According to the changes in revision 35667, the Freestyle-related code
in release/scripts/ui/ was moved to release/scripts/startup/bl_ui/.
When rendering, during processing scene data, drawing in 3d window
is now locked. Can get extended to more areas in UI easily.
At least this solves all crashes with conflicting memory access in
render && 3d drawing. Deleting objects via operators or delete
modifiers isn't locked yet.
Also fixed: crash on quitting a renderwindow when it was rendering.
the two files mikktspace.h and mikktspace.c. These are standalone files
which can be redistributed into any other application and regenerate the
same tangent spaces. The implementation is independent of the ordering
of faces and the vertex ordering of faces.
This was reverted by Brecht r22541 because its inefficient but there is no way to work around this with povray at the moment so adding it back as optional args.
These should not have any effect on render results, except in some cases with
you have overlapping faces, where the noise seems to be slightly reduced.
There are some performance improvements, for simple scenes I wouldn't expect
more than 5-10% to be cut off the render time, for sintel scenes we got about
50% on average, that's with millions of polygons on intel quad cores. This
because memory access / cache misses were the main bottleneck for those scenes,
and the optimizations improve that.
Interal changes:
* Remove RE_raytrace.h, raytracer is now only used by render engine again.
* Split non-public parts rayobject.h into rayobject_internal.h, hopefully
makes it clearer how the API is used.
* Added rayintersection.h to contain some of the stuff from RE_raytrace.h
* Change Isect.vec/labda to Isect.dir/dist, previously vec was sometimes
normalized and sometimes not, confusing... now dir is always normalized
and dist contains the distance.
* Change VECCOPY and similar to BLI_math functions.
* Force inlining of auxiliary functions for ray-triangle/quad intersection,
helps a few percentages.
* Reorganize svbvh code so all the traversal functions are in one file
* Don't do test for root so that push_childs can be inlined
* Make shadow a template parameter so it doesn't need to be runtime checked
* Optimization in raytree building, was computing bounding boxes more often
than necessary.
* Leave out logf() factor in SAH, makes tree build quicker with no
noticeable influence on raytracing on performance?
* Set max childs to 4, simplifies traversal code a bit, but also seems
to help slightly in general.
* Store child pointers and child bb just as fixed arrays of size 4 in nodes,
nearly all nodes have this many children, so overall it actually reduces
memory usage a bit and avoids a pointer indirection.