bf-blender / Windows & Linux (2005/05/02)

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/05/02)

Post by gabio »

Hi all. Here is a fresh update on the state of the CVS. New stuff ahead. The release is comming in a short period. I suggest trying to do a project just to test it out ;)
Done with MSVC 7 and scons for windows
GCC 3.4.5 with scons for linux
Relevant feature:
-The zblur plugin (aka as DoF) integrated in render
-Make view translation and zooming 'smooth' in the uv editor.
-New IPO methods. New IPO methods(), Ipocurve.delBezier()
-Restored traditional Turntable for view rotation, and without the error of previous code.
-Add bracket matching to text editor.
-To please the stats-junkies: the "tech stat" drawing now displays all values that change during transform().
- Added menu in header for orientation of manipulator widgets.
-New methods for Image module: .getPixel() .getMaxXY()
-Dependency graph patch, provided by Jean-Luc Peuriere.
-Added baking for softbodies.

The zblur plugin (aka as DoF) integrated in render. Compared to patch
submitted by Alexander, changes/improvements are:

- Moved to new Panel in Scene buttons "Post Effects". Together with other
postprocessing options, such as Edge render. It is also not called DoF,
this because that's a bit pretending too much then. It's a zblur still!
- Made it render Alpha as well
- Made it use and deliver float buffers
- Huge cleanup of zblur.c code, was very messy. It was alling things in render
code without need even (win matrices, transform faces, etc)
- Fixed errors in using Z values (zbuffer is signed int)
- Removed very weird gamma corrections for front/back half
- Tweaked gaussian table, allow variable 'Sigma' to be set for gauss curve
- Didn't copy 'auto focus' yet. Use of this is very limited, and gives
false expectations, nor works for rendering anims with deamons well.

Main issue remains: it's not a very advanced feature... I still doubt
very much if this deserves to be released. Spent 2 days on trying to get
the key issues solved, with not much results.

- gauss filter code has weird side effects on large blur size
- having unsharp (blurred) in front also blurs what's around in back.
only blurred in back with sharp in front works a little bit
- severe aliasing errors... also due the code splitting in 2 halves
- doesnt work with unified yet
- won't work for halos, spot halos or transparant faces

Anyhoo... It was promised to be committed, so now artists can play with it.
Who knows it's useful after all, or some fixes can be implemented. :)

Toying a bit with MMB behavior:
MMB click with no constraint selects a constraint right away (the axis selector doesn't flash on screen)
MMB click with a constraint removes the constraint
MMB click-drag in both case (with and without a constraint) uses the axis selector.

stopConstraint didn't remove the CON_SELECT flag, so cancelling transform while selecting a constraint and then reentering transform was funny. Fixed

Make view translation and zooming 'smooth' in the uv editor. Power-of-two
zoom levels can be found in the View > View Navigation menu. Also Ctrl+MMB
zooming was added.

Added the E-key, LSCM unwrap popup back again.

Reflecting the discussions on Transform Manipulators...

Here you can see the notes and pictures: ... 548.0.html

The alternative rotate widgets are still under rt=2 and rt=3.

Still enough work todo here, but hope it's a good step forward!

New IPO methods.
Ipo.delCurve( curve_name ) deletes named curve from IPO.
Ipocurve.delBezier( int ) deletes point at index from Ipocurve.

Contributed by Ken Hughes (khughes). Thanks!

Bug #2467

For non-uniform scaled + rotated objects, the normal aligned Manipulator
got deformed (on multiple selected faces) or pointed wrong. Needed the
famous Transpose of Inverted Matrix trick here.

cleaned up parameter list for SoftBodyDetectCollision(...)
SoftBodyDetectCollision() is handeling the case
'user wants to prevent self intersection by declaring SB object a deflection target'
ahh .. yeah .. i can see the bug reports on that
(me shrugs .. never promised that to work)

Bug fix #2469

Apparently DXF allows layers to be read too... this went wrong in 2 ways;

- object->lay was not equal to base->lay
- if DXF has layer info, but not readable, it set object->lay to 1 instead
of using 'current layer'.

Built in an escape from sbObjectStep() if transform() is used. Has to be
done for lattices... these keep calling this during transform, causing
the lattice itself and its children (if soft) to remain static on same

Real solution has to be 2-fold:
- store deformed lattice points in Lattice, as a "DispList"
- usage of proper depgraph :)

There's also the idea to keep simulating softbody during a transform, to
give feedback on what softbody does... later.

Small fix for envmap rendering + threads... not sure if it fixes linux and
windows for it... will be tested!

Fix was that the envmap cube side images (6) were stored in tex->ima, which
is shared data by other thread.

Fix #2472 for rotate edges. Somewhere along the line edge h flags were being wiped out. This addition now saves those flags and restores them

Fix for reported (thanks Jens Ole!) error in rendering UV map textures.
Caused by making threadsafe envmap render...

Commit in convertblenderscene.c is just replacing constant with define

Restored traditional Turntable for view rotation, and without the error
of previous code which slanted after a while.
Patch provided by John Aughey, thanks!

(John will send me the additional diff for a correction when going from
trackball to turntable)

Add bracket matching to text editor.
#2437 from the Patch Tracker.
Contributed by Ricki Myers (themyers). Thanks!

Highlight color is set in UserPref theme colors.

To please the stats-junkies: the "tech stat" drawing now displays all
values that change during transform().
For the rest drawing sticks to actual selection, making the view quite
less cluttered. Hope this gets approval. :)

Added menu in header for orientation of manipulator widgets.
Also slightly tweaked threshold for drawing text in menu buttons. The text
was clipped just too quick.

Made circle select listen to the event queue nicely, so it doesn't keep
selecting after releasing a mouse button :P

Made "Centre" in mesh editmode listen to the "Around" setting, so it can
now use centroid as well (instead of only bounbox-centre)
It doesn't do "cursor" though... it's centering for object center, right?

Two fixes in one commit.

- The ortho render recode had a weak method to calculate the Z value of the
render coordinate ([2]). Worked OK for normal render, but not in
unified, giving big errors in Ortho Unfied render.
Solved with proper math, using face equation a*x+b*y+c*y=d. Dunno why I
didn't do it in first place. :)

- Bug fix #2493. Edge render gave much different result for Ortho. This
was due to overflows in the integer math filtering zbuffer values.
Cleaned it op properly, preventing any integer overflow now.

More stats-junk stuff!

Added in Nkey panel (transform properties) option to show in editmode
at choice the global or local coordinate values.
Same option works for the "Tech draw" options. :)

Manipulator with "normal alignment" now aligns to edges too (if no faces
selected) and to vertex normals. Only issue is that vertexnormals are not
updated on each editing command (it's a bit too much overhead...) so use
a TAB+TAB for now to enforce proper vertexnormals.

- file sizes > 4 GB were not correctly displayed in the file window. It
still was using int for calculus... made it using 64 bits ints.

- The "disk free" indicator in the header didn't work for OSX, due to
a missing #ifdef __APPLE_

Bug #2497

The CTRL+LeftMouse Lasso option was accidentally also invoked in Image
Window. Wasn't supposed to work anywhere but in 3d window.

New methods for Image module:
.getPixel( x, y ) returns float list of [r, g, b, a] for pixel
.getMaxXY() returns image size as float list [x, y]

Contributed by Austin Benesh (mchs3d). Thanks!

also ran code thru indent.

Error in the clipping plane for drawing rotate-widget.
On zoom out or zoom in, this clipping went more narrow or wider... should
be fixed.

Removal of old transform() <sob> part one.

- added in new transform the (not so useful but yah) old feature that
does scrollwheel zoom during transform
- had to change transform call arguments for uv-window/sequence/oops to
match new transform for mouse callback

TODO (for martin?)

- pulldown menu support to call with local axes compliant as for pressing
it with hotkey
- mirrormenu() still uses old transform stuff...

Dependency graph patch, provided by Jean-Luc Peuriere.

Works like a charm... well it now replaces the old base-sorting hack. :)
Next stage will be to define how to further integrate it. Plus some
minor code cleanups... static/internal functions versus external, etc.

Error in combo of Spothalo + normal halo over sky, with OSA + gammacorrected
adding. :)

Missing gamma correction...

Local axis constraint external call. Had to do it in a very hackish way which highlight a design problem in the code. To solve it (and would solve other problems too), we'd have to split off the initialisation function. Not terribly hard to do but I'm overwhelmed with work...

Push/Pull had a problem with constraints enabling/disabling. Fixed

Restablished infinite line for constraint draw (when not using manipulator) as discussed in meeting.

Added baking for softbodies.

Works as follows;
- press the 'show bake settings' button (no space left... :)
- define start/end frame for bake, and an interval step.
The baked result interpolates nicely (Bspline, 4 keys) so in general a
step size of 2 or 3 still gives OK results.
- Press "BAKE". This will do a full animation + playback. Press ESC if it
you don't want it.

Once Baked, the BAKE button becomes a FREE BAKE. As reminder the softbody
buttons get blocked with error() menu.

This saves OK in a file. Renders any frame, including fields and moblur.
You can also set a "Timeoffs" for the softbody. And yes, this should be
in the NLA once... :)

NOTE! With this commit, files saved with the old (first commit) version by
Jens Ole won't read the settings back... he stored all sofbody variables in
Object, which was moved to a new struct when I did my first commit on SB
(over a month ago)

Also note that I moved particle deflecting & softbody to a new include.
A new build is available
Last edited by gabio on Thu May 12, 2005 2:28 am, edited 3 times in total.

Posts: 4
Joined: Thu Oct 17, 2002 9:39 pm

Post by Zsolt »

Great, softbody baking!!!
I can already see all the cool new features of 2.37 making the front pages of 3D graphics sites :)

BTW: what is the Tech stat drawing, and how do I turn it on?

Posts: 0
Joined: Sun Jan 09, 2005 10:30 pm

Post by LeeQid »

I toyed around with the modificator a bit. I find the normal alignment quite useful. Now is it possible to have this also availible through pressing the x y or z key three times when beeing in one of the translation modes? (Like pressing x twice switches to translation along the global x axis, pressing x three times switching over to translation along the normal x axis?)

An alternate approach may be via using the alt and ctrl modifier keys in the translation modes. So ie ctrl + x switches to global coordinates and alt + x switches to normal coordinates and back. (pressing each of which twice puts you back into local mode)

On another sidenote, it would be useful if the individual gadgets would get hightlighted as soon the mouse is over for better distinction which one is active.

Thanks for your efforts.
(Note: This is not a feature request, just a humble suggestion of mine - feel free to ignore it)

Posts: 0
Joined: Thu Oct 21, 2004 3:56 am

Post by MikeMLP »

I've been waiting for something like Normal Alignment. This feature is awesome!

I love the global and local co-ordinate system buttons in the transform properties menu.. it would be neat if there was a way to have a "normal" button as well.

also it would be quite cool if there was a way to create and save your own arbitrary co-ordinate system on some strange angle relative to the global co-ordinate system. I could really see this being useful if you wanted to, say, preserve a certain normal co-ordinate system for the purpose of having the grid-snapping, the axis constraints, etc. on some funky angle to the global or local systems on which you might want to, say add some complicated detailing to the surface of an existing mesh that happens to be quite out of alignment with the local and global co-ordinate systems. If you were able to "save" a normal axis, or create your own, it would be really easy to create multiple versions of the detailing and swap it in and out quickly without having to use a time-consuming script like axis rotation copy.
Last edited by MikeMLP on Tue May 03, 2005 12:25 am, edited 1 time in total.

Posts: 0
Joined: Thu Oct 21, 2004 3:56 am

Post by MikeMLP »

Along the same vein, perhaps something could be done with the view alignment to selection. (shift+V). It seems more logical to have alignment of the side and front conform to the normal x and y axis, with the normal z axis, and the other axis (x or y, depending on the case) would orient themselves perpendicularly to the top and side of the current viewport, similar to the "regular" front, top, and side view selections for global co-ordinates. This would make much more sense than the current method. I'm not sure how it is done currently, maybe something to do with the global system? it seems rather arbitrary to me...

Also, perhaps once the view is aligned to selection, the numpad keys 4, 8, 6, and 2 which are used to rotate the view could do so aligned to the normal axis, rather than the way it is now, which is probably done with the global system.

Posts: 0
Joined: Fri Jun 11, 2004 3:24 pm
Location: Berlin

Post by ElBarto »

Great, great, great! Oh i love the new behavior of the UV image editor. Seems this build will be a big break through.
Thanks for Softwbodies, transforms, text editor etc. too.

Blender Feature Proposal:

Posts: 0
Joined: Thu Oct 21, 2004 3:56 am

Post by MikeMLP »

Hey, I'm just full of ideas today :)
I remember someone mentioned that they thought it would be cool if the edge length data could be used as a way of changing the lengths of edges. I just thought of an implementation of that. Perhaps, upon entering scale mode, one could push the L-key (that would be L for length) and enter a number, or use the mouse to change that number. This would be used in conjunction with the current method that allows you to scale a selection by a percentage.
If you have, for example, a rectangle selected, and you do an extrude, scale inward for the purpose of adding more detail, due to the current percentage scaling method, if you did a uniform, or planar-constrained scale, the longer edges would "inset" a smaller distance from the original rectangle than the shorter edges. With the edge-length implementation, the scale would depend on the edge length rather than the overall percentage, allowing for an 'inset" tool in blender. This could also be applied to all of the current constraints.

This probably isn't the right place for this, but I wanted to get it out there before it disappeared from my head.

Posts: 0
Joined: Wed Oct 27, 2004 9:47 pm

Post by -efbie- »

nice !
is there any plans of porting the "optimize stretch" feature from tuhopuu ? It works really well !

Posts: 0
Joined: Tue Nov 23, 2004 7:31 pm
Location: Poland

Post by kxs »

There`s something wrong with the linux build link. Or the build itself. It contains blenderplayer only.

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

Post by JoOngle »

kxs wrote:There`s something wrong with the linux build link. Or the build itself. It contains blenderplayer only.
Yep - I only got the "Blenderplayer" on my slackware linux as well.

Posts: 0
Joined: Wed Apr 20, 2005 4:08 am

Post by RRuiz »


The bake for the SB is excelent!!!!!

Thanks to all!!!!!

Un Saludo

Posts: 0
Joined: Thu Mar 04, 2004 1:28 pm

Post by SamAdam »

i get a bad softbody think.

the object seems to swell and bounce strangely.

try this blend:

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

Post by gabio »

JoOngle wrote:
kxs wrote:There`s something wrong with the linux build link. Or the build itself. It contains blenderplayer only.
Yep - I only got the "Blenderplayer" on my slackware linux as well.

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

Post by JoOngle »

Thanks Gabio! :D

(PS: is something done to the render engine, or am I just hallucinating better IOR antialiasing?)

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

Post by gabio »

JoOngle wrote:Thanks Gabio! :D

(PS: is something done to the render engine, or am I just hallucinating better IOR antialiasing?)
Maybe you changed your screen recently :lol:

Post Reply