- loop over sequencer plugin and texture voxel paths.
- fix leak in python bpy.utils.blend_path() and use PyUnicode_DecodeFSDefault() to ensure correct paths with different encodings.
- operators to make paths absolute & relative now redraw the view.
[#24170] Camera inside volume error
[#24838] Light inside Volume material drops on it's walls - it may be double
Problem in a previous bugfix commit, reverted back, the original bug is still fixed too.
- pep8 script was giving an error on non utf8 scons source files.
- use PyList_SET_ITEM macro when list type is ensured.
- all mathutils types use subtypes to create new types when available.
- use defines MAT3_UNITY, MAT4_UNITY to initialize unit matrices.
This happened when removing vertex normal flipping in the render engine. But
actually the normal of the first face in the curve was flipped on rendering,
because it used a different vertex order than other places. Also removed the
hack that computes a face normal only from a triangle instead of a quad.
* documented and rewrote the render interface of the sequencer.
(now, the geometry / render_type / etc. settings are stored within a
seperate structure called SeqRenderData that is passed within the code.)
* that fixes
* cache problems, since the caching system didn't keep track of
proxy files vs. final renders.
* is a necessary step, to bring back frame blending in speed effect
(the SeqRenderData structure elements are already there)
* will make motion blur render options available within the sequencer!
* this patch also fixes:
* "easy retiming" using speed effects. (in Blender 2.49, you could
add a speed effect and resize the source track to retime it to that
length)
* adds labels for the Original dimensions for Image + Movie tracks
(worked in 2.49, too)
Also use const char in many other parts of blenders code.
Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
Very old bug: Material/Render: the "filter" option for transparent
absorption also works for alpha==0, but in that case another part
of render code just didn't add the faces in render list.
The main reason to have this is so renders can be scripted to write to a specific file without having to do annoying tricks like set a dummy start/end frame range, render an animation and work out the current frame image will be written to, then rename after rendering.
Also made some 'char *' args into 'const char *'
Using texture nodes for displacement crashes, a conflict between using
nodes in render and for displacement at same time. Code simply disables
texture nodes for displacement for now, until we have better handling for it.
(on our long todo)
* In addition to fixing the memleak it's much better to always copy the voxeldata to the texture. Smoke data can change at any time due to some changes, so we can't depend on that data.
* Thanks to MiikaH for finding this!
Texture Nodes didn't work for normal output anymore anymore.
It was caused by new handling of bump code using derivatives,
but that's not how texture nodes work now. In case a texture
has nodes, it uses the old (2.4) method.
The scenes 'Render' is kept by blender while blender runs but the callbacks were not cleared when the render was done.
In this case the callback would reference a freed render job.
This isn't normally a problem because on re-rendering new callbacks are set, however the sequencer can render a previously rendered scene without setting up callbacks.
Simple fix is to to dummy callbacks applied onto the scenes 'Render' struct once its finished.
* FSA and motion blur can't work nicely together the way they're currently implemented, so I disabled this in the ui and code.
* FSA is used if both are selected.
* Also changed the name "Full Sample Motion Blur" to "Sampled Motion Blur" to avoid confusion with full sample anti-aliasing.
large render sizes could cause an the threaded tile processor to hang because winx * winy wrapped into a negative value.
also convert winx/winy to floats before multiplying for vector passs.
globbing vs explicit is discussed here.
http://www.cmake.org/pipermail/cmake/2008-December/025694.html
Practical implications are:
- developers need to keep CMakeLists.txt files up to date.
- Users wont get strange linking errors if they build after a file is added, since CMake detects CMakeLists.txt is modified and automatically reconfigure.