bf-Blender / Windows - linux (2005/07/04)

User-contributed CVS development builds. Please test and give feedback!

Moderators: jesterKing, stiv

Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke

bf-Blender / Windows - linux (2005/07/04)

Post by gabio »

Welcome to this first cvs build of the very exciting 2.38 release. Now testing mean a lot, but please read log carefully to know what's not finished and what is a bug.

Relevant feature:
-rewrite of the text object, new stuff!
-Animation recode part 1.

With no objects in scene, press F (ALT+F) for faceselect crashed.
Bugfix #2755

Bug #2751

Recurring issue, but also bug in 2.37/37a: OSA sample amount versus AO
sample amount conflict... if AO and OSA amounts were exact equal it gives
black spots. Solution not optimal yet... but at least looks good.
Still think it's useless to sample fewer than AO level 8 (64), but
nevertheless. :)

Adding Jiri's manipulator path. This makes Normal orientation align to meta element's rotation (in edit mode, obviously).

My patch to BPy's curve module (applied by stivs) had a small mem leak. Fixing now.

Some of the setattr functions created a tuple to pass to the set* functions and didn't decref'ed it properly, "leaking" memory.
Commit approved by stivs.

Initial commit for new text object.

Important notes:

- Full compatibility with old text objects not fully restored
(word spacing will be 0.0, need to set it manually to 1.0), will
either need version upgrade to 238 or a hack. Will check.

- lorem.c (about to be committed) contains BF copyright notice, but as
BF did not exist a few hundred years ago, probably best to remove it :)

- If you notice any cross-platform issues (especially beloved windows),
please report

- A few tiny warnings left, I will fix those issues still.

The rest has been said already - so have fun testing. And please do!

=== Reminder:
=== Documentation at ===

- Fix a few warnings

- Improved text editing for justified ('Flush') text: Line will not
be filled up until it is completed (wordwrap or Enter)

- Fixed waitcursor flickering in displist.c

Compatibility code for 'Word spacing' value, old files will now load
with Word spacing set to 1.0 instead of 0.0.

Fix drawing of text frames inside editmode, stupid error.

Attempt at providing the best possible flexibility and usefulness with

- There are now two modes, "Flush" and "Justify". Justify only flushes
a line when it is *terminated* either by wordwrap or by Enter.

- "Flush" *always* flushes the line, also when it's still being entered.

This mode can be used for things like this:

..while "Justify" would not flush the second line.

- Fixed "Flush" squeezing all characters on the same spot if the textframe
was set to 0 width

- Copy buffer is preserved across editing multiple text objects
- Potential memory leak with selection drawing fixed
- "Copy Attributes" menu (CTRL-C) now copies all fonts (Plain/B/I/BI)

- fix strange declaration of adduplicate that just used matrix argument
as flag... confusing and weird.

Segfault waiting to happen. This is way old code that I did, I blame my rusty C skills from back then (and the fact that lazy evaluation would make it work correctly). :)

- bug fix, vertex normal calculation during incremental update was not
correct (although fairly unnoticable).
- bug fix, vertex normal calculation didn't normalize face normals before
summing... silly mistake

p.s. perhaps the Crystal Space bla bla naming conversation is not most
appropriate for the commit list?

- bug fix, crash with edges with no face in subsurf

The overlapping curves/material indices problem got a bit out of control.

- For avoiding the 'overlapping character problem' in Text objects, I had
changed the sorting code for filling nurbs to use nu->charidx (a new
variable incremented with each new character) instead of nu->mat_nr
(which used to work for material indices inside a 2D Curve).

- This broke material indices in normal 2D Curves completely, thus:

- nu->charidx is now not only used for seperating
characters in text objects for filling, but also for normal 2D curves
when they contain material indices. In fact, charidx is just set to
the material index.

- There's compatibility code in readfile.c that sets nu->charidx to nu->mat_nr
when reading curves from files that are not text objects

- So, the big conclusion: Instead of using material indices for creating
'filling groups', filldisplist() now uses nu->charidx, which is set
appropriately when reading old files and assigning/deleting material
indices in curves.

- This is all pretty obscure and hard to explain. If I haven't been clear,

- If it breaks anything, complain!

Patch by Martin Poirier: display normalized coordinates in image window, with
a few small modifications:
- also display normalized coords while transforming
- adapt step size & precision for button
- moved option to 'View' menu

Also made sure pixel snapping when transforming uv's is off by default.

Bug reported by Jean-Baptiste.
(Inexed 0 0 0 instead of 0 1 2

I also removed dos linebreaks.


Transform stuff

Cleanup in transform.c: removed uneeded includes and removed REPEAT experiment.

Split off manipulator init function, no need to resort on hacks to setup stuff before starting transform anymore.

Fix0r3d single axis projection for constraints. It deals with perspective correctly now (as much as planar constraints).

Forgot to transform_constraints.c to my last commit, so the fix for single axis projection wasn't there.

This commit also fixes local axis on multiple object for Grab (only worked on the X axis).

Result of 2 weeks of quiet coding work in Greece :)

Aim was to get a total refresh of the animation system. This
is needed because;
- we need to upgrade it with 21st century features
- current code is spaghetti/hack combo, and hides good design
- it should become lag-free with using dependency graphs

A full log, with complete code API/structure/design explanation
will follow, that's a load of work... so here below the list with
hot changes;

- The entire object update system (matrices, geometry) is now
centralized. Calls to where_is_object and makeDispList are
forbidden, instead we tag objects 'changed' and let the
depgraph code sort it out
- Removed all old "Ika" code
- Depgraph is aware of all relationships, including meta balls,
constraints, bevelcurve, and so on.
- Made depgraph aware of relation types and layers, to do smart
flushing of 'changed' events. Nothing gets calculated too often!
- Transform uses depgraph to detect changes
- On frame-advance, depgraph flushes animated changes


Almost all armature related code has been fully built from scratch.
It now reveils the original design much better, with a very clean
implementation, lag free without even calculating each Bone more than
once. Result is quite a speedup yes!

Important to note is;

1) Armature is data containing the 'rest position'
2) Pose is the changes of rest position, and always on object level.
That way more Objects can use same Pose. Also constraints are in Pose
3) Actions only contain the Ipos to change values in Poses.

- Bones draw unrotated now
- Drawing bones speedup enormously (10-20 times)
- Bone selecting in EditMode, selection state is saved for PoseMode,
and vice-versa
- Undo in editmode
- Bone renaming does vertexgroups, constraints, posechannels, actions,
for all users of Armature in entire file
- Added Bone renaming in NKey panel
- Nkey PoseMode shows eulers now
- EditMode and PoseMode now have 'active' bone too (last clicked)
- Parenting in EditMode' CTRL+P, ALT+P, with nice options!
- Pose is added in Outliner now, with showing that constraints are in
the Pose, not Armature
- Disconnected IK solving from constraints. It's a separate phase now,
on top of the full Pose calculations
- Pose itself has a dependency graph too, so evaluation order is lag free.


- Rotating in Posemode has incorrect inverse transform (Martin will fix)
- Python Bone/Armature/Pose API disabled... needs full recode too
(wait for my doc!)
- Game engine will need upgrade too
- Depgraph code needs revision, cleanup, can be much faster!
(But, compliments for Jean-Luc, it works like a charm!)
- IK changed, it now doesnt use previous position to advance to next
position anymore. That system looks nice (no flips) but is not well
suited for NLA and background render.


We now can do loadsa new nifty features as well; like:

- Kill PoseMode (can be option for armatures itself)
- Make B-Bones (Bezier, Bspline, like for spines)
- Move all silly button level edit to 3d window (like CTRL+I = add
- Much better & informative drawing
- Fix action/nla editors
- Put all ipos in Actions (object, mesh key, lamp color)
- Add hooks
- Null bones
- Much more advanced constraints...


- OGL render (view3d header) had wrong first frame on anim render
- Ipo 'recording' mode had wrong playback speed
- Vertex-key mode now sticks to show 'active key', until frame change


Fixing pose mode transform.
With new system, very easy to do in the end (figuring it out was less so).
No need to go down parent chains or anything of the sort, just apply parent pose and we're all set.

Ton's commit reverted back before my include files cleanup in transform, recleaning.

Also, as mentionned by bjornmose, declaration after instruction choked MSVC. Fixed.
A new build is available.
Last edited by gabio on Sun Jul 17, 2005 6:45 am, edited 2 times in total.

Posts: 0
Joined: Wed Jul 23, 2003 4:31 pm

Post by kidb » ... 704_gabio/

Updated filename to

Posts: 33
Joined: Sat Oct 19, 2002 3:04 pm

Post by jms »

note that in scipt bundle the
svg2oj .py

files was updated and send to the commiters but not yet in the cvs .
Zoo-3D.Blender, Ze French-Speaking Community SKB My french book about Blender.

Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke

Post by gabio »

kidb wrote: ... 704_gabio/

Updated filename to

Posts: 0
Joined: Wed Jul 23, 2003 4:31 pm

Post by kidb »

Hi Gabio,
how about sending me a small mail to kidbatkidbdotde?

Posts: 12
Joined: Thu Oct 17, 2002 6:08 pm

Post by lucky3 »

thanks for the build gabio.
Bug: Delay Deform in armature buttons does't work anymore. Hey that's quite impressive how fast are the armature deformation now.
Bug: Armature (bones) with ipo cannot be transformed anymore.

Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke

Post by gabio »

arf, kidb. I think I made i mistake. I uploaded linux build in windows dir. ;)
Next time I will use the the dir you created at the root anyway.

Posts: 0
Joined: Thu Jun 24, 2004 6:33 pm

Post by tommy »

Hey gabio, cudos for the build, but you got the month wrong in the title; it's July (7th) and not June (6th)! :wink:

Posts: 0
Joined: Wed Jul 23, 2003 4:31 pm

Post by kidb »

gabio wrote:arf, kidb.
You got mail.
For Gabio Builds please use: ... bioBuilds/

Posts: 0
Joined: Thu May 27, 2004 10:17 pm

Post by hagen »

I see nobody has told it yet.

But I´m very, very happy to see news about the animation recode. Great times for animators are coming.


Posts: 37
Joined: Mon Oct 14, 2002 2:38 am
Location: Here

Post by NateTG »

This is very exciting 8)


Posts: 15
Joined: Thu Oct 17, 2002 10:20 am
Location: Berlin, Germany

Post by thoro »

Wow, the armatures are much faster on my machines now. I never thought that you would be so fast rebuilding the armatures system.

What do you think, will it be possible to use the coming CVS builds to work on my current animation WIP or is it better to stay with 2.37a and wait for the next release?

Thank you very much for all the work you put in Blender - I think the next version will be a huuuge step forward...

Posts: 0
Joined: Sat Jan 24, 2004 4:12 pm

Post by JoOngle »

Thoro - make sure you have a backup (plenty of them) before you

It seem to somehow "remove" the mesh if you revert back to an
older Blender (like the previous release)...the only thing left
visible is the Eyes and the Armature...

Posts: 12
Joined: Thu Oct 17, 2002 6:08 pm

Post by lucky3 »

It seem to somehow "remove" the mesh if you revert back to an
older Blender (like the previous release)
It doesn't actually remove it, but the mesh is some kind of 'invisible'. To undo that, check the armature pose mode and rotate one bone (or you can just transform anything you want), and the mesh should appear again ;).

Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke

Post by gabio »

With such rewrite you should never work on some serious job. It's really not stable.

Post Reply