Due to changes with the way that dupliframes were being evaluated (one
of those being that the animation for the object being animated would
get reevaluated for every frame sample for dupliframes) to get them
working properly again sometime during the 2.5 series, the dupliframe-
sampling loop would be prematurely terminated on the first frame in
this example.
That is because after the first step of the loop, the ob->dupend
property would have changed its value as it was being animated,
leading to the loop terminating, and only the a single dupli getting
added.
(eg. colour pickers). Tilting the ndof device up and down and rolling it left and
right will move the 'colour cursor' in screen x and y, and twisting the ndof device
will rotate the cursor around the colour wheel (hue). Now you can turn off the
lights and pretend you have a fancy DI deck!
Show overall progress when doing sequence rendering. Nice for cases when
you're using sequencer to combine video strips only, without rendering
scenes and so. If scene strips are used in sequencer, per-frame rendering
would be used (because of scene rendering sets per-frame progress).
* Move scene_update_pre callback before depsgraph flusing so it works better
when you do modifications on objects then.
* Fix missing update after making modifications in frame_change_pre, recalc
flags were not being flushed.
This commit updates curve datablock to respect curve dimension flag
when setting datablock for curve.
Not ideal but this makes behavior quite expected, avoids big changes in
curves core stuff which depends on object type and prevents restrictions
on changing data datablock which works in general cases.
incorrectly
"Follow Path" constraint was applying subframe offsets to the curve-
path evaltime value for non-fixed case. However, it turns out that
when doing old-style mblur, this results in the offset getting applied
twice, resulting in incorrect values (i.e. by the time the constraint
gets ctime, this already has had subframe offset applied, and so too
has curve evaltime).
this works by tagging functions, eg:
def my_func(scene):
pass
bpy.app.handlers.permanent_tag(my_func, True) # <-- important bit
bpy.app.handlers.frame_change_pre.append(my_func)
* Adds two new python handlers: scene_update_pre() and scene_update_post()
These run before and after Blender does a scene update on making modifications
to the scene.
* Datablocks now have an is_updated property. This will be set to true in the
above callbacks if the datablock was tagged to be updated. This works for the
most common datablocks used for rendering: object, material, world, lamsp,
texture, mesh, curve.
* Datablock collections also have an is_updated property. If this is set, it
means one datablock of this type was added, removed or modified. It's also
useful as a quick check to avoid looping over all datablocks.
* RenderEngine.view_update() can also check these properties, for interactive
viewport rendering.
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/UpdateAPI
* Scene.use_shading_nodes property to check if RenderEngine is using new shading
nodes system, and RenderEngine.bl_use_shading_nodes to set this.
* Add mechanism for tagging nodes as being compatible with the old/new system.
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/RenderEngineAPI
* This adds a Rendered draw type in the 3D view, only available when
the render engine implements the view_draw callback.
* 3D view now stores a pointer to a RenderEngine.
* view_draw() callback will do OpenGL drawing instead of the viewport.
* view_update() callback is called after depsgraph updates.
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.
* Some cleanup, removed references to already deleted *_header.c files.
* Marked SpaceScript as deprecated and removed header. Will keep space for now though, as some script operators are there and Campbell might want to re-use the space later.
* removed struct for SpaceType and all usages
* SPACE_IMASEL in enum nees to be kept to identify it in old files
* it is replaces with SPACE_EMPTY on load, which is overridden by SPACE_INFO which has same struct members
* also removed theme settings
It is corrected fix for #29089 (svn rev 41409). That fix wasn't correct because
it used to set face number from derived mesh on which solidify is applying which
isn't correct for case of constructive modifiers applied on base mesh before
solidify modifier.
Actually nothing special should be performed here to set needed original index
because of ORIGINDEX layer is getting copyed automatically when when copying faces.
Changing tilt for 2D curves doesn't really hurt, just makes things not so
clear tosee what's going on because you're changing value which isn't used
at all for 2D curves. Disallwo to run TRANSFORM_OT_tilt operator for 2D curves.
Also made a correct fix for incorrect shortcut for tilt in 3D viewport toolbar,
it was really confusing to have almost the same operators (TRANSFORM_OT_tilt and
TRANSFORM_OT_transform with mode=tilt) in keymap. Better to use tilt operator
in toolbar.
so path manipulation functions dont run multiple times on the same path in the case of sequence strips where the one directory is used as the base for many images.
enabled antialiasing, overriding application settings.
The fix for this got lost when the FSAA option was added and later disabled
again. Added it back now, and also disable AA for UI widgets since it makes
them look too blurry, they already do their own AA.
* Fluid compilation: Inverse the compile flag from DISABLE_ELBEEM to WITH_MOD_FLUID for consistency. (scons/cmake)
* Use WITH_BF_FLUID in your user config (scons)
* Add support for scons to disable build with Decimate and Boolean modifier.
(WITH_BF_DECIMATE and WITH_BF_BOOLEAN)
It allows to iterate over a string, returning an new element each time, using a char as separator. See BLI_String.h's comments for more info and an example.
Needed by the UI template list patch following!
Improved error messages presented when trying to paste keyframes.
Previously, "No keyframes to paste" would always be displayed, even if
the copy/paste buffer had some contents but couldn't be pasted if
there weren't any F-Curves selected to paste to.
Added a visitor function to simplify processing of file paths that are attached to IDs. This is used for images, and could be used for other ID types in future.
Code reviewed by ideasman_42.
- Upgrade Eigen2 library to Eigen3
- Upgrade colamd library and placed in extern/ so other libraries from extern/ can use it
NOTE: With previous version of Eigen (3.0.1) it was necessary to define
EIGEN_DONT_ALIGN_STATICALLY macro to make it compilable on windows 32bit.
After latest upgrade it seems to be unnecessary (at least when was testing libmv),
so i removed that defines which can reduce speed and lead to other problems.
Implementation of cache for general movie-related areas
such as sequencer and clip editor (in the future)
Some changes in limiter were necessary:
- Limiter counted mapped memory twice when was checking how many memory is used.
- It was using "global" memory usage not memory usage by cached elements.
It will cause big problems when there's large mesh or plenty of undo steps are
in memory nothing would be cached in sequencer.
- To solve this problem introduced "callback" to measure cached element size.
It could be not very accurate in general, but it works well for image buffers.
And if this callback isn't set old-school memory usage check would be used.
- The whole cache used to get freed when memory limit exceeded, now it'll drop only
as much elements as necessary to reduce memory usage.
Seqcache is switched to use this new cache code.
- Add *.cc files to qtcreator project as well as .cpp and .cxx
(would be needed for correct generating projects with libmv library).
- Added negate_v2 and negate_v2_v2 functions. They'll be needed for
camera tracking project.
- Fixed issue with generating proxies from 32bit images.
(generated jpg-s opened fine in blender, but were dark in osx viewer).
- Marked unused arg in indexer as UNUSED.