Additional speed control fixes:
frame blending can now be done on more than two
frames, enabling really fine grained motion blur
if you speed up a sequence with high factors (bigger
than two).
Next step: add morphing support using motion
estimation.
This fixes several issues with the Speed Control Effect:
* IPO curve-deletion resulted in non-working effect
* easy retiming only allowed enlarging of strips,
now shrinking is also possible (easy retiming:
use the right display handle of input strip and
shrink or enlarge, will make the speed of the
strip exactly fit the effect strip's length)
* frames after end-of-display of input strips can
now be accessed (which is necessary for fix#2)
=> just use easy retiming from now on, it's fun :)
Using LightGroups override for material doesn't work for preview
renders. Code didn't correctly return correct light listbase then,
crashing Blender on preview render.
Only open AVI files with at least one supported video track type.
(This is the real fix for DV-Type1-AVIs, since the FCC of iads, that
is used there, wasn't detected. But the code will happily open AVI-files
with only audio tracks... So the real fix is: only try to open things, that
contains something we know how to handle :) )
Very, very last minute patch for Blender on Windows systems:
move blender's internal AVI reader the last try in the list of
codecs, when opening movie files.
Otherwise, it will fail on Movie Maker captured DV-AVI files.
(isavi() seems to mistreat these files as RAW/MJPEG AVI and fails
later on IMB_anim_absolute() )
Composite "Map UV" node was using false UVs (0,0) from neighbouring
pixels when those pixels were not rendered (or have no UV).
This commit checks for each neighbour sample it takes if the UV was
correctly set. Solves bad errors on edges of UV maps. With FSA even
totally smooth. :)
Checker: FORWARD_NULL (help)
File: base/src/source/blender/render/intern/source/texture.c
Function: do_lamp_tex
Description: Variable "dx" tracked as NULL was dereferenced.
Also found a typo the 3rd check was checking projx instead of projz
I also expanded the elses to set dyt as well as dxt.
Kent
De-activating a loop-end actuator didnt work (it kept looping).
Looked into this further and it turns out that the actuators run with both positive and negative events false, the sound actuator assumes because its not negative that its a positive event and plays the sound anyway.
Fix by checking that its a positive event before playing.
The size limit on the message actuator was 100 which broke some scripts, set to 16384 instead.
while making a demo of using python to control bones found some more problems.
also added channelNames attribute to BL_ActionActuator to get a list of valid channels to use.
demo: http://www.graphicall.org/ftp/ideasman42/armature_python.blend
its still not that useful since theres not way to know rest bone locations yet but better then nothing.
Fixed color balance tool. Problem was: we pretended to do Lift/Gamma/Gain,
but in reality we did (1-Offset)/Power/Slope. (slightly modified ASC CDL).
So now, the GUI is able to switch modes between ASC CDL-mode and real
Lift/Gamma/Gain.
It also adds a switch to enable Neutral Black/White flipping
(very usefull for black point selection)
This closes:
[#18078] bugfix #18010 Sequencer lift
* extract_pose_from_pose only checked one of the list items for NULL when looping over them yet its possible they are different sizes.
* game_free_pose needed to be used rather then MEM_freeN, channels would never be freed leaking memory.
* setChannel() would make a new pose that wasnt aligned with the existing pose, the lists are assumed aligned so when extracting the channels its unlikely this was ever useful.
* Added getChannel() - returns pose loc/size/quat
* Added option args for setChannel(channel, matrix) or setChannel(channel, loc, size, quat)
* Removed modules Expression and CValue, neither were ever available.
* Added GameLogic.EvalExpression(exp) from the Expression module, evaluates an expression like the expression controller (not sure if this is really that useful since python is far more advanced).
* resetting the original blend file path didint work (own fault == -> =)
* Py3.x PyModule_Create didnt allow importing since it didn't add to sys.modules,
Looks like they want us to use init-tab array, but this doesn't suit us since
it needs to be setup before python is initialized.
* Documented GameLogic.globalDict
actually two modifier datamask optimizations that were never done.
* Don't use modifier data mask for disabled modifiers.
* Check if UV data is needed for particle system instead of always
requesting it.
Big proxy fix (addressing hopefully most complaints on mailing list and
in tracker)
* proxy render settings are now independent of render size settings.
That means: which proxy size is used, is controlled by two parameters
now: the proxy size of the files, can be controlled with additional
buttons within the proxy panels. What is shown in a specific preview
window depends on the header settings of the preview panel.
So: proxies are _only_ used in those windows, that are switched to a
specific proxy resolution.
* output rendering is always done _without_ proxies.
* proxy generation now shows a waitcursor with numbers.
(closing Bug: [#18909] Building Proxies doesn't give any feedback
which was rather a feature request, since the problem mentioned there
was always the case :) )
This fixes:
* free_imbuf_seq() didn't free all scenes. That will lead to steady memory
growth in case of nested timelines with several scenes.
* sequencer panels were always jumping around, depending on strip type,
which was caused by choosing always the same panel position and the
silly limitation, that
* effect strips had no filter option, which was therefore added.
So you can apply color balance on effect filter output now :)
Example is a cube that lands on a plane, sleeps after some time, a script changes the scale.
It would still use the scale when the object first went to sleep.
reported on blenderartist.
http://blenderartists.org/forum/showthread.php?t=158617
Checker: FORWARD_NULL (help)
File: base/src/source/blender/gpu/intern/gpu_extensions.c
Function: GPU_shader_create
Description: Variable "fragcode" tracked as NULL was passed to a function that dereferences it.
fix provided by Brecht. :)
Kent
Checker: FORWARD_NULL (help)
File: base/src/source/blender/blenkernel/intern/modifier.c
Function: meshdeformModifier_deformVerts
Description: Variable "dm" tracked as NULL was passed to a function that dereferences it.
fix provided by Brecht.
Kent
Checker: REVERSE_INULL (help)
File: base/src/source/blender/blenkernel/intern/BME_tools.c
Function: BME_split_face
Description: Pointer "example" dereferenced before NULL check
Check for null before we try to use it.
Kent
Checker: NULL_RETURNS (help)
File: base/src/source/blender/imbuf/intern/radiance_hdr.c
Function: imb_loadhdr
Description: Incrementing possibly NULL value "ptr"
Make sure were not trying to index past our array.
Kent
Checker: DEADCODE (help)
File: base/src/source/blender/gpu/intern/gpu_material.c
Function: GPU_materials_free
Description: Conditional "ma != 0"
was looping over wrong variable I'm guessing a cut and
paste error from above.
Kent
Checker: FORWARD_NULL (help)
File: base/src/source/blender/render/intern/source/texture.c
Function: do_lamp_tex
Description: Variable "co" tracked as NULL was dereferenced.
co was set to NULL at the beginning of the function and it could
possibly slip through all the logic above so lets test it before
we use it blindly.
Kent
Checker: UNINIT (help)
File: base/src/source/blender/blenlib/intern/freetypefont.c
Function: objchr_to_ftvfontdata
Description: Using uninitialized value "face" in call to function "freetypechar_to_vchar"
freetypechar_to_vchar expects face to be defined so we need to
return before then if we have a problem. Also it doesn't
make sense to not return FALSE if there is an error because we
didn't do anything.
Kent
This fixes
* some issues with Scene strips containing audio by removing
the curpos pointer from sequence structure. (the same scene
strip can now be used in a row)
That also makes the code a lot cleaner.
* fixed a corner case on the beginning of a strip, where audio was
not mixed in, depending of current audio buffer state.
* Also: made some hardwired variables macros to enhance readability.
Problem remaining: mixing the same scene strip several times (read
put it into a stack instead of into a row) has
problems with HD-audio since the same HD-audio state structure is
used and therefore the system will seek permanently, which leads to
audio distortions...