Page 1 of 2

bf-blender / Windows (2005/04/02)

Posted: Sat Apr 02, 2005 9:04 pm
by gabio
-look at the new subsurf algo. testing is a must!
-Try the new transform mod: Push/Pull (aka: non proportionnal resize) with shift-p
-Brought back Subsurf toggle with Shift-O. I missed it.
-Integration stage of Softbody project, now you can try it!

-Made with MSVC 7 and scons
Relevant feature:
-it is possible to rotate with MetaBalls in edit mode now
-Made proportional edit in Mesh editmode use connectivity to clip the area where proportional editing is allowed.
-Incremental subsurf calculation is now enabled.(speedup)
-raised max frame to 30000.
-Push/Pull (aka: non proportionnal resize) new tranform mod
-Brought back Subsurf toggle with Shift-O
-Integration stage of Softbody project.

- fix shadedisplist to use derivedmesh
- also a bug fix! Made subsurfs now use tface colors when shading

- added drawFacesTex function to DerivedMesh with implementations
- switched drawmesh.c to use new functions
- WHEE! This is last such function that has to be written for the time
being, and also effectively marks the end of DL_MESH! DispListMesh still
hangs around as a kind of interchange format but should also die once
DerivedMesh provides more intimate mesh access.

DL_MESH (the displist type for DispListMesh) is still used to hold
the DispListMesh, but that will die as soon as new subsurf switches to
using a bonafide DerivedMesh implementation. There is also one silly
usage for the decimator that is easy to kill.
- Oh, and I also made potatoe mode draw mesh vertex colors - seemed to
be more uniform behavior.

- simplify extverts handling

- it is possible to rotate with MetaBalls in edit mode now

- added Mesh->derived and Mesh->decimated DerivedMesh pointers
- removed DL_MESH displist type!!!! Now store a DerivedMesh directly.
- May still be some issues left having to do with releasing this
at the right time (old code just splashed free_displist all
over the place).

Prop mode goodie;

- Made proportional edit in Mesh editmode use connectivity to clip the
area where proportional editing is allowed.
Uses some kind of manhattan distance for clip area still, so is slightly
too large for diagonals. Will be worked on!

- Fix; in constraint code, using (0 0 0) delta caused NaN.

- remove free_displist_by_type
- free derived mesh on freedisplist_object... bit of a hack but
just to be safe. oh dependency graph where are you!

- made some DerivedMesh drawing functions more generic (take callback
to determine if element should be drawn and to set draw options),
which meant some could be combined - eases implementation of new
DerivedMesh types and keeps more app specific logic out of DerivedMesh

- strange drawing bug, wierd vertices were showing up (wrong
DerivedMesh call)

- fix silly bug in mesh DerivedMesh tex drawing func (only was drawing
first face.
- change DerivedMesh callback prototypes to help eliminate errors

- fix another minor use of wrong mface bug

- initial commit of a real (as in not just copying the DispListMesh)
DerivedMesh implementation of CCGSubSurf. Only used in editmode at
the moment, and does not draw smooth normals correctly.
- Just in its own this brings a rather large speedup for editing

Bug in new drawing code; hack with storing stuff in editvertex->prev did
not get restored OK. :)

Fix for centered submenu (for example py export script) also worked
when menu didn't open to left/right but on top/bottom. Caused errors...

- Claims of speed improvement last night were slightly
overrated. Turns out there was a bug in recalc code where
in editmode mesh was getting reevaluated all the time (because
ob->disp doesn't get built in editmode). This should fix.
- Fix some normal calculation/backwards face drawing

Different floodfill method for PET connected with mesh. More accurate but needs two temporary scratch arrays to keep vectors and nearest element pointers.

Will comment the code more later tonight, I'm a bit pissed at the moment (stupid errors right in your face. grrrr)

- removed USE_CCGSUBSURF define (always on now)
- added G.editMesh->derived pointer... idea is to use this
for mesh derived from editmesh instead of Mesh->derived (as the
derived mesh tends to vary depending on what it came from).

This part could be cleaner, also there may problems with it not
being invalidated correctly.

- And most importantly: In case people were beginning to worry all
these edits were just crazy zr stuff, the big point comes about:
Incremental subsurf calculation is now enabled. This gives massive
speed improvements when editing a large mesh.

For the eye-candy happy: try setting G.rt==52 before entering editmode
and the edges and vertices (in optimal mode) will switch to displaying
visually the age since a region has last been calculated. Lots of

- fix warnings for gcc
- some subsurf settings not correctly changed in editmode

- disable overriding color (to show aging) during selection drawing

- switch to drawing aging in and out of optimal mode
- switch to not using arena allocator in editmode for ccgsubsurf (memory
doesn't get freed during incremental)

- potential fix for crash on amd64

Changing hard codec max frame release for a define (in blendef.h with the other maximums).

Tried to change it everywhere, hopefully I didn't miss any.

Also raised max frame to 30000 (maintainer of that code can safely modify it back since it is in one spot now ;) )
Needed that limit for a marketing video contract, might as well commit it.

Transform fixes

Connected PET for mesh had an infinite loop in some case. Fixed an made a bit faster.
Renamed the numinput flag.
Corrected a conflict in TransInfo flags. This was a crash waiting to happen.
NO_CONSTRAINT flag now correctly used to disable MMB and constraint hotkeys when needed.

Added check for the manipulator flag when drawing them before applying transformation matrix. Was really weird when doing MMB with rotation.

Push/Pull (aka: non proportionnal resize, original idea by Robert Tiess) slipped in my last commit a bit, so might as well finish it.

Accesible with Shift-P (was free), the behavior is much like Shrink/Fatten. Pull mouse toward you to pull toward center, push away to push away. Constraint and PET works with it too, of course.

Sacre bleh another bugfix!

Mesh Connected PET was acting weird on geometry that curved on itself (reported by Desoto). Turned out the part of the floodfill working on verts already connected was just doing one case out of the two useful ones (little drawings helped :P).

- take out compile time conditional behavior of creasing for ccg
subsurf (always on)
- bug fix, creasing wasn't evaluated properly after incremental change

- apply spike crease bug fix to ccgsubsurf

Removed casting warnings from transform_manipulator.
PET is now checked as a transform flag during transform. Much cleaner that way for NOPET context (extrude, duplicate)
Added Sphere as a new PET falloff mode (icon and all) and reordered them around in a more logical fashion (IMHO).

Also brought back Subsurf toggle with Shift-O (was supposed to be for PET object mode but that was canned).

- bug fix for old subsurf, crash when using meshes with free vertices

Median center with PET was wrong (reported by JMS).

Was dividing running sum of vectors by the total number of elements, not by the number of selected elements, as it should have.

Integration stage of Softbody project

User level notes are in Wiki here; ... Softbodies
And will be added in CMS later.

Tech level notes are still pending, but here's the most relevant ones;

- made ob->soft struct SoftBody to hold all settings, and read/save in
- added (temporal!) conversion for the old settings. So: read old files
with softbody experiments now, and save over!
- cleaned API calls for softbody, which are only 5 of them now:
sbObjectStep() (animation steps)
sbObjectToSoftbody() (full re-initialize data)
sbObjectReset() (only reset motion)
- API calls accepts time in frames now, within softbody.c it converts

Further, internally code was cleaned some (missing tabs etc). Also tried
to keep a well defined structure with hints how to add support for more
objects. Can write notes about that...

Added signal OB_SB_REDO for ob->softflag to force a recalc.
Now used after weight painting, so it updates immediately.

A little housekeeping:
Object.c - expand evil 1 character name. nicer error msg.
doc/ - clarify Object.getData() doc

- mesh was drawing edges underneath selected edges in optimal mode,
waste of time!
- made solid face drawing respect hidden faces
- made selection work for hidden face drawing when select visible is on

- fix for drawing of hidden edges in editmode (w/ optimal off)
kinda hacky because it is in derivedmesh implementation not drawing
logic where I would prefer it to be.

A new build is available

Posted: Sat Apr 02, 2005 9:53 pm
by lucky3
once again, great work! CCGsubsurg is really fast, i love it.
Bug found:
- CCGSubsurf doesn't apply smooth on faces in edit mode.
-other? need to be edited. I'll check it out later ;)
SoftBodies integration looks promising!

Posted: Sat Apr 02, 2005 10:57 pm
by Bellorum
Whoot! New subsurf rocks! Dramatic speed increase.

Posted: Sat Apr 02, 2005 11:22 pm
by gabio
crashed this build in less than a minute: edit mode: select a vertice, press OKEY, HKEY, GKEY.
Mean in PET mode if you try to move an hided vertice it crash.

Posted: Sun Apr 03, 2005 12:33 am
by ElBarto
Hey thanks for the new built! Looks great.

About Crease SubSurf: Rubberband and numerical input are missing

Push/Pull: has numerical input but rubberband is missing too

About new visible transform: when turning new visible transform on and pressing g,s,r the old transform functions coming up but it would be better when the mode of visible transform are changing. Example: you turned visible transform on and are in rotate mode and pressing G then it would be great when you activated Grab Mode of the visble transform and not the old grab method.

Posted: Sun Apr 03, 2005 1:09 am
by JA-forreal
Bellorum wrote:Whoot! New subsurf rocks! Dramatic speed increase.
What the what, what!? New subsurf?

Posted: Sun Apr 03, 2005 4:10 am
by venomgfx
thanks for the build gabio!!!!! :)

:shock: wow so many updates!!!

i'll use this version for modelling for sure!, but.. unfortunatelly.. if only the auto-update of the render window could be again.. like when you minimize the render window, and then maximize it again, the whole image was showed when rendering! or at least the part of the image that was rendered until that moment!

and the other thing that would be great to have again is, i don't know how to name it so look this image:

that! the mesh in weird colors heh, when you force the update of the render window, that is VERY useful!!! but in the cvs versions it doesn't exist anymore :cry:

well, the latest cvs builds are great for modelling, but i miss a lot that things, the image above and the auto-update of the render window... i want it back!! please! :(


Posted: Sun Apr 03, 2005 4:12 am
by SamAdam
scaling constraints not working in some dimensions.
x and y in the default.

Posted: Sun Apr 03, 2005 7:11 am
by theeth
ElBarto wrote:About Crease SubSurf: Rubberband and numerical input are missing
Crease subsurf still use old transform. Will be done correctly when I move it to new transform, no worries. You can't stop mentionning it everytime, it's well on my list already.
ElBarto wrote:Push/Pull: has numerical input but rubberband is missing too
By rubberband, I'll assume you mean the helpline that points to the center of transformation like in Scale or Rotate mode. Push/Pull is based on mouse motion independant of the center, like Translation and Shrink/Fatten (the new behavior) so having an helpline would be more confusing than anything.
SamAdam wrote:scaling constraints not working in some dimensions.
x and y in the default.
Works here. Can you give any more detail, or even a blend file if it's 100% reproduceable.

PS: Gabio: like I said on mailing list, segfault will be fixed ASAP.

Posted: Sun Apr 03, 2005 11:12 am
by Yfkar
The CCGSubSurf is great! Faster and uses less memory. Tested it with a subdivided cube and could do subdivision levels that weren't possible earlier. Result: The old subdivision choked my computer (Blender memory usage went up to 700MB) and I got bored after 7 minutes, CCGSubsurf did the same subdivision in less than 10 seconds and blender used around 230MB memory.

Posted: Sun Apr 03, 2005 2:05 pm
by pildanovak
The new ccg subsurf is great. It's even much faster than the simple subdiv option. Only the debug option 52 doesn't show real age of the mesh parts. Rotation of metaelems in editmode is perfect, too, great and long awaited for advanced meta modelling. softbody is a little weird, the soft parts move ok, but don't do any rotation(??).

Posted: Sun Apr 03, 2005 8:43 pm
by Kenden
Thanks for the build gabio!

The new subsurf rocks!
'Set Smooth' doesn't work in edit mode with it though.

Posted: Mon Apr 04, 2005 9:13 am
by PaicCitron
Hi, first : thx for the build

second : when using the transform widgets in optimal subsurf mode, here is what happens :


It's quite disturbing to have the widget floating like that ^^

.:: Paic Citron ::.

PS : and still the Ctrl switching for the widgets :( sniff :(


Posted: Mon Apr 04, 2005 11:48 am
by yates
gabio, thanks for all your efford and hard work you put into blender, I have always loved your builds but recently I havn't been able to download it. Do you post your builds on any mirrors.



Posted: Mon Apr 04, 2005 6:25 pm
by lusque
Wonderful build :D , thanks Gabio and all developers :D :!: :D :!:

I tried the Softbody stuff, WOW :shock: , however there is a problem with edge springs: usually it doesn't get activated at firs try, I need to play with it a little before it works. Try this file, I tried to do a yello-octagon but it doesn't work with edge-springs, only goal-springs. ... agon.blend

This one works instead, it is a worm-like structure that by having edges inside the mesh sustains itself only with edge-springs. ... a_01.blend

I don't understand why the second works and the first not. Is it a bug?
thanks and sorry for my bad english :wink: