===========================
Camera sensor size changes:
- Now blender camera has got vertical sensor size property
and setting to control how FOV is getting calculated
(depending on aspect ratio, using horizontal sensor size or
vertical only).
- Made changes in game engine and uv project modifier as well
- Presets should be updated (don't have settings by hand right now
and the internet in debalie is really fails this year)
===========================
Fixes for codereview issues pointed by Brecht:
- Replace use_default_clip with use_active_clip setting for
motion-tracking constraints.
- Removed unneeded Clip panel from toolshelf when no clip is opened.
- Put options in Display panel in one column.
Don't want properties region be wider and it should also be
a bit easier to find option you need. Maybe additional re-shuffle
would be good here.
- Reversed order of items in Clip menu
- Re-ordered selection operators in clip editor Select menu to
match 3d viewport order.
- Share common part of sensor/shift and so detection between
object_camera_matrix and Follow Track constraint.
- Fixed typos in translate mode caused by copying files.
- Movie clip angle output is now in radians. Transform node now
accepts rotation in radians too.
- Use scale-rotate-translate order for transformation node and
stabilization data.
Also makes sense when using transform node for non-tracking goals:
image would stay centered when applying only rotation and scale.
Think it's nicer.
- Fixed compilation error caused by recent node-update commit.
===========================
- Added space_view3d.background_images.add() function to add new background
image from scripts.
- Added operator to set current clip in clip editor as background in 3d viewport.
- Do not show reconstruction if camera hasn't got camera solver constraint.
- Added button to convert tracking-related constraint to fcurves.
vecs = Camera.view_frame(scene)
returns 4 points for the camera frame, without this its very hard to know if a point is in the camera view or not, without rewriting blenders internal logic in python.
===========================
- Bundles and camera path should be displayed correct
when there are several solved cameras in the same scene.
- Added option to use clip from active camera as background
in 3d viewport.
- particle.c wasn't setting all components of the vector when reading cache and setting dummy velocity values.
- some functions incorrectly took a float[3] argument when the 4th value was set.
- remove a few redundant lines of code.
===========================
Changes into sensor size use case.
There was problem with vertical sensor size which can't actually
affect on things due to we've got fixed image resolution. So
as soon horizontal size gets defined, both of sensor height
and vertical FOV is known and exposing it into UI makes things
difficult to understand.
That's why vertical sensor size was dropped.
Also added pixel aspect to camera settings fo clip editor.
Solver will sue this value rather than value from display
aspect ratio.
This pixel aspect would be copied to render settings after solving
so things should match now between footage, solving anf footage.
This fixes bug #26764 and several others like it, where modifier
properties (and others, but most visibly modifiers) would not do
anything when animated or driven, as modifier properties require the
RNA update calls to tag the modifiers to get recalculated.
While just adding a call to RNA_property_update() could have gotten
this working (as per the Campbell's patch attached in the report, and
also my own attempt #25881). However, on production rigs, the
performance cost of this is untenatable (on my own tests, without
these updates, I was getting ~5fps on such a rig, but only 0.9fps or
possibly even worse with the updates added).
Hence, this commit adds a property-update caching system to the RNA
level, which aims to reduce to the number of times that the update
functions end up needing to get called.
While this is much faster than without the caching, I also added an
optimisation for pose bones (which are numerous in production rigs) so
that their property updates are skipped, since they are useless to the
animsys (they only tag the depsgraph for updating). This gets things
moving at a more acceptable framerate.
===========================
Commiting patch #24427: Editable camera sensor size (meaningful focal length units)
Thanks to:
Matt Ebb (author of original patch)
Ejner Fergo (porting patch through versions)
Brecht Van Lommel, Dalai Felinto, Campbell Barton (patch review)
Cant't commit changes to addons (they aren't branched, so some of them
could be broken now)
===========================
Previous solution to make bundles work for parented camera
wasn't very nice. It could totally confuse depsgraph and it's
quite slow.
Now i've implemented function where_is_object_mat which makes
almost the same as where_is_object_time, but it:
- Does not applies constraints.
- Assumes matrices for all dependencies are valie already
(handles by depsgraph).
- Doesn't make any changes to object itself or it's
dependencies.
Vertex parents were not requesting the original index layer, now do this as
part of depsgraph building, and make constraints with vertex groups use the
same system. Fix is based on patch by Campbell, but with some changes.
- making local object data - Curve/Mesh/MBall lost references to linked materials.
- joining a linked mesh object into a local one lost the link.
As well as these reported bugs, checked all local functions for consistency/correctness and found other cases which would also fail.
- making local metaball didn't ensure unique ID name.
- make_local_armature() was missing check for object users - main body of code would never run.
- local particles didn't set the dupli-group or textures to extern.
checked all local functions for consistency/correctness.