Blender Git Commits

Blender Git "master" branch commits.

Page: 5338 / 5574

August 28, 2005, 12:23 (GMT)
Integration of new IK lib features in Armature Poses.
Best is to forget yesterday's commit and old docs. New docs are underway...

Here's how IK works now;

- IK chains can go all the way to the furthest parent Bone. Disregarding
the old option "IK to Parent" and disgregarding whether a Bone has an
offset to its parent (offsets now work for IK, so you can also make
T-bones).
- The old "IK to Parent" option now only does what it should do: it denotes
whether a Bone is directly connected to a Parent Bone, or not.
In the UI and in code this option is now called "Connected".
- You can also define yourself which Bone will become the "Root" for an IK
chain. This can be any Parent of the IK tip (where the IK constraint is).
By default it goes all the way, unless you set a value for the new IK
Constraint Panel option "Chain Lenght".
- "Tree IK" now is detected automatic, when multiple IK Roots are on the
same Bone, and when there's a branched structure.
Multiple IK's on a single chain (no branches) is still executed as usual,
doing the IK's sequentially.
- Note: Branched structures, with _partial_ overlapping IK chains, that don't
share the same Root will possibly disconnect branches.
- When you select a Bone with IK, it now draws a yellow dashed line to its
Root.
- The IK options "Location Weight" and "Rotation Weight" are relative,
in case there's a Tree IK structure. These weights cannot be set to
zero. To animate or disable IK Targets, use the "Influence" slider.
- This new IK is backwards and upwards compatible for Blender files.
Of course, the new features won't show in older Blender binaries! :)

Other changes & notes;

- In PoseMode, the Constraint Panel now also draws in Editing Buttons, next
to the Bones Panel.
- IK Constraint Panel was redesigned... it's still a bit squished
- Buttons "No X DoF" is now called "Lock X". This to follow convention to
name options positive.
- Added Undo push for Make/Clear Parent in Editmode Armature
- Use CTRL+P "Make Parent" on a single selected Bone to make it become
connected (ALT+P had already "Disconnect").

On todo next; Visualizing & review of Bone DoF limits and stiffness
August 27, 2005, 23:04 (GMT)


Bugfix; the IK solver would crash if there were 0 DOF's in the chain.
August 27, 2005, 18:44 (GMT)
patch #2911 - tp_getset for Lamp module.
A nice juicy chunk of new style attribute handling from Ken Hughes.

Thanks, Ken.
August 27, 2005, 17:04 (GMT)
IK work-in-progress commit;

- Removed old convention that only allowed one "IK" connection for Bones
in a joint. Was highly frustrating for editing trees or branches.
In a next commit, there will be a different method to define IK target
and IK root, so this option actually will become "Connect Bone" or so.

- the IK group name is gone, now is just an option "Tree IK". When IK
chains share a root they'll form a tree.
Todo is preventing conflicts here (will be for editor to define IK Root)

- Adding new IK constraint with CTRL+I activates Constraint
August 27, 2005, 14:27 (GMT)


Make IK DOF stiffness work in range 0.0-1.0, for consistency.
August 27, 2005, 13:45 (GMT)


Update SConscript.
Fix some warnings.
Merge with latest soc code.

What changed in IK lib:

Fully restructured, with components now as follows:
- IK_Solver: C <=> C++ interface
- IK_QSegment: base class for bone/segment with 0
to 3 DOF
- IK_QTask: base class for a task (currently there's
a position and a rotation task)
- IK_QJacobian: the Jacobian matrix, with SVD
decomposition, damping, etc
- IK_QJacobianSolver: the iterative solver

The exponential map parametrization is no longer used,
instead we have now:
- 3DOF and 2DOF XZ segments: directly update matrix
with Rodrigues' formula
- Other: Euler angles (no worries about singularities
here)

Computation of the Jacobian inverse has also changed:
- The SVD algorithm is now based on LAPACK code,
instead of NR, to avoid some problems with rounding
errors.
- When the problem is underconstrained (as is the case
most of the time), the SVD is computed for the transpose
of the Jacobian (faster).
- A new damping algorithm called the Selectively Damped
Least Squares is used, result in faster and more
stable convergence.
- Stiffness is implemented as if a weighted psuedo-inverse
was used.

Tree structure support.

Rotation limits:
- 3DOF and 2DOF XZ segments limits are based on a swing
(direct axis-angle over XZ) and twist/roll (rotation
over Y) decomposition. The swing region is an ellipse
on a sphere.
- Rotation limits are implemented using an inner clamping
loop: as long as there is a violation, a violating DOF
is clamped and removed from the Jacobian, and the solution
is recomputed.

Convergence checking is based now on the max norm of angle
change, or the maximum number of iterations.
August 27, 2005, 13:27 (GMT)


Another file missed in IK commit.
August 27, 2005, 13:10 (GMT)
Forgot to add new files...
August 27, 2005, 12:48 (GMT)
Third and last commit for Brecht's IK work.

Full logs for changes will be added later. Worth to note now;
- support for 'tree IK' added
- DOF and stiffness per IK bone (in pose only)
- Orientation IK support (target rotates -> chain follows)

This is still WIP. Buttons might change, button ranges will change, and the
way 'IK groups' are working will change. You can play with this, but don't
expect saved files to work still by end of this day! :)
August 27, 2005, 12:45 (GMT)
Second commit for Brecht's IK work.

(Moto needs 'make install' before you can do IK lib btw)
August 27, 2005, 12:44 (GMT)
First commit of Brecht's new IK work. This only does the IK module.

Don't start compiling yet!
August 26, 2005, 17:48 (GMT)
Fixes, as reported by Basse

- Softbody Mesh didnt update when it was child of armature-posing
- Bone Stick drawing didn't draw selected in Solid + Object mode.
- WeightPaint + Subsurf (nice that it works!) didn't update on Bone
selection
August 26, 2005, 16:07 (GMT)
- tsk tsk, ll suffix for constants is not C standard, doesn't
work on msvc
August 25, 2005, 20:32 (GMT)
accidentally left in testing printf.
August 25, 2005, 18:03 (GMT)
Based on a suggestion from Zr, using line line intersection for single axis projection.
This makes perspective handling a bit better.
August 25, 2005, 13:11 (GMT)
Random() issues with rendering...

- AO and soft shadow AreaLight tables were generated without fixed seed,
causing animations to give unwanted amounts of noise.
- Made sure these tables now are calculated before render, with fixed seed
- Then found out the BLI_rand() has very bad seeding... it showed up as
patterns. After some experimenting, found a nice method using noise.c
hash tables. For compatibility with old code, named it BLI_srandom() to
use this next to the BLI_srand(). This follows libc rand() and random()
naming convention.
- Then of course threading should work... so made a BLI_thread_rand version
of the calls. Now supports up to 16 threads, comments added in .h and .c

Result is stable animation render with AO and soft shadow. But, please
test and feedback!
August 24, 2005, 21:12 (GMT)
iBug fix #2965

Switching scene in Edit Mode crashed. Accessed the DAG without it being
initialized yet.
August 24, 2005, 20:37 (GMT)
Move the settings in the Mesh Tools panel to the new toolsettings struct in Scene. These settings are now saved per scene.
August 24, 2005, 20:26 (GMT)
Making compiler happy;

- removed unused variables
- #if 0 around unused calls
- init of uninitialized vars
August 24, 2005, 20:18 (GMT)
Huge commit, but not much features... had to shuffle a lot of code around.

Main target was cleanup of editconstraint.c and removal of the ugly
ob->activecon (active constraint channel), which was set by the "Show"
button in the Constraint Panel.
Better is to introduce an 'Active Constraint' itself, which stores in
the Constraint itself. By using this setting, and by checking the active
Bone, the UI can update reliably now. This only shows now in IpoWindow
btw (for constraint ipos). The active Constraint is drawn in the Buttons
with a slightly brighter backdrop. Any action in that Panel selects a
constraint now (even click in backdrop).

So now we have pose channels & constraint channels nicely behaving. Now the
darn Action channels... :)

Further in this commit:

- interface.c: Button ROUNDBOX now does button callback too.
Button NUMSLI didn't do the callback on a click only

- Cleaned up include files in yafray, got annoyed it compiled over all the
time.

- removed unused variables from Constraint struct
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021