From BlenderWiki
[edit] 2.40 Release
[edit] Modifier stack
New feature: Modifier stack - add modifier stack UI code (lives in object panel)
[edit] Mirror Modifer
[edit] TexMesh works with subsurf
New feature: TexMesh (texcomesh) works with subsurf now
[edit] Incremental Subsurf in Object Mode
The previous release introduced incremental subsurf calculation during editmode but it was not turned on during object mode. In general it does not make sense to have it always enabled during object mode because it requires caching a fair amount of information about the mesh which is a waste of memory unless the mesh is often recalculated. However, for mesh's that have subsurfed armatures for example, or that have other modifiers so that the mesh is essentially changing on every frame, it makes a lot of sense to keep the subsurf'd object around and that is what the new incremental subsurf modifier toggle is for. The intent is that the user will enable this option for (a) a mesh that is currently under active editing or (b) a mesh that is heavily updated in the scene, such as a character. I will try to write more about this feature for release, because it has advantages and disadvantages that are not immediately obvious (the first user reaction will be to turn it on for ever object, which is probably not correct).
So, modifiers in editmode are back (which means auto-mirror in edit mode works now) although still not finished. Currently no cage is computed, the cage is always the base mesh (in other words, Optimal edge style editing is off), and the final mesh currently includes all modifiers that work in edit mode (including lattice and curve). At some point there will be toggles for which modifiers affect the final/cage editmode derivedmesh's. Also, very nice new feature is that incremental subsurf in object mode returns a ccgderivedmesh object instead of copying to a new displistmesh. This can make a *huge* speed difference, and is very nice for working with deformed armatures (esp. with only small per frame changes).
[edit] Wave modifier
- added wave modifier & removed old wave effect
[edit] decimate modifier
- added decimate modifier & removed old decimate interface
[edit] modifier panel
- modifier UI update (aka, find the modifier buttons!!)
- moved back to editing buttons, where life is now cramped... switched
to constraint style foldout panes, still a WIP. In particular not
sure what buttons should be in header (and if current toggles stay
in header if they should also be in an expanded pane). Also need
new icons for move up/move down (and drag and drop would of course
be nice). Finally current plane is to make it so modifiers will
expand out in modifier pane for horizontal orientations instead of
just going down down down to goblin town.
- added support for vector icons, from user API side is just like using
a regular icon... on icon side is defined by a function in resources.c
instead of using the blenderbuttons png file. vector icons are much
easier to add and scale properly. intent is that vector icons would
be drawn in window coordinates which lets icon developers make the
most beautiful icons, but this requires some tweaking of the interface
drawing that I am not going to do atm.
[edit] acopy button
added copy button to modifier stack UI
[edit] subsurf and mirror as cage
It is now possible to have a mesh with mirror/subsurf modifiers where you can edit with both as cage. Selecting the mirror'd part works, but of course transform is flipped so it is a bit weird. Not the cleanest code in the world and I can't say I am really happy with the architecture but it works for now and supports the existing feature set.
[edit] added modifiers to outliner
modifiers added to outliner needs icon
[edit] added armature hook and softbody modifiers
- added armature, hook, and softbody modifiers, added conversion of old hooks to modifiers. Old hooks used a quirky weighting system during deformation which can't be extended to modifiers. On the upside, I doubt anyone relied on the old quirky system and the new system makes much more sense. (Although the way falloff works is still quite stupid I think).
- switch to using softbody modifier, controls enabling but does not have
variables, these are still in same place. enable button automatically
makes/enables modifier.
- update modifier interface to enforce modifiers with the require-original-
data flag to not move beyond deforming modifiers.
- enforce only one softbody modifier allowed
NOTE: Once again, no modifier stack for lattice yet means softbody for
lattice does not work atm.
- added interface option to convert a virtual modifier into a real modifier - added option to parent to lattice object or lattice with deform
- added recalc ob, recalc data options to ctrl-alt-shift-t timer
- changed modifier panel to not allow manual addition of hook or
softbody modifiers
- changed apply modifier to apply to existing mesh (fixes bug with
materials) and to warn about loss of tface/mcol/keys/dvert/sticky
for all modifier types
- changed modifier UI to not display disclosure triangle for virtual
modifiers
- changed softbody ui to allow enable/disable
- readded Subsurf "optimal" edge drawing/rendering
- added hook "cursor center" feature (sets hook center to cursor position),
gives better control over falloff
- added modifier UI access to hook "select" and "reassign" features
- enable modifiers for curve/font/surf types... a little hacked in
but should work ok. Means new features! Wave effect for curve/font/surf
and armature deform as well.
- new feature, added circle select support for FACESELECT
[edit] boolean mesh modifier
doesn't work with layered modifiers yet (just uses base mesh), although may
god have mercy on your soul if you want to run boolean on a
subsurf anyway
[edit] TODO
todo: add drawFacesTex for ccgderivedmesh
There is a display bug that already existed but is more obvious with new modifiers where parts of the pane get drawn in a different area after toggling editmode. It has to do with drawing parts of the interface using GL instead of 100% buttons. I try to keep my grubby little toes out of the interface code so this can wait for Ton to return.
After the window coordinate stuff is sorted out with vector icons it probably makes sense to move all non-photorealistic icons in blenderbuttons to vector form just so scaling goes better.
Deform weights are still stored in a pretty expensive and unnecessary
way, probably use about twice as much memory as needed, and do
way too many memory allocs.
There is a still a bug in that selection is using the wrong mesh to draw.
NOTE: Although you can turn SB on for curve/font objects at the moment it doesn't really work because they call deform in multiple steps and this confuses SB. Not sure how to deal with atm.
Still todo: TFace edge drawing is still not always correct in face mode, in particular with a mirror modifier when mesh has edges (and no preceeding subsurf). Have not yet decided how to deal with this. Best solution is probably to do switch to meshes all having MEdge's, in which case I can get rid of TFace edge flags (and need to recalc modifiers on tface selection change). Still are some inconsistencies in FACESELECT mode edge drawing to be ironed out.
- disabled incremental subsurf support (during object mode) for the
time being, misses features for texture/color drawing and I don't
have time to finish at the moment. can return once UV/colors are
incorporated into subdivision.
This exposes a bug in boolean, apparently the output is somehow random (hash on alloc'd pointer value perhaps) which is sortof lame. It also makes more apparent the desire for some level of control over dep graph evaluation during editmode (at the moment dep graph is reevaluated for a mesh object in editmode, but since mesh changes are on editmesh other objects don't really see any change, so it is a wasted recalc).
Also by the way I wrote down some notes on how curve code works, nothing spiffy but it is at:
http://wiki.blender.org/bin/view.pl/Blenderdev/CurveNotes
[edit] bug fixes
- more nurbs fixes... as it turns out, rendering of cyclic UV didn't
really work at all. Fortunately no one actually *USES* nurbs so
no one noticed. This is bug from NaN days (strubi, I am looking at
you here) which I guess says a lot (or a little) about NURBS usage.
And as usual, the correct code is shorter.
[edit] other
[edit] 2.43 Release
[edit] Modifier Stack Upgrade
The modifier stack has been upgraded to remove the "original data" constraint, where some modifiers required the base object's original data and thus could not be placed in the stack after any non-deforming modifiers.
[edit] Features
The main features of the upgrade are:
- Modifiers can now be in any order in the modifier stack
- The modifier stack has a standard framework for custom element data to be passed through the stack with mesh data (being copied and interpolated as appropriate), so modifiers can access whatever data they need
- The modifier stack code has been refactored (making it simpler and more consisten) and a number of bugs have been removed
- The EdgeSplit modifier has been added, along with the sharp edge flag and the ability to set/clear it in the edit mode Edge Specials (Ctrl E) menu
- The Displace modifier has been added
- The UVProject modifier has been added
[edit] Documentation
[edit] New Modifiers
[edit] Individual Modifier Updates
[edit] Armature
Added a VGroup input to the Armature modifier. This allows the user to specify a vertex group which will modulate the influence of all bones in the armature.
[edit] Subsurf
Now alt+shift+o only toggles the 3d view subsurf flag, rendering remains subsurfed.
[edit] Wave
Patch #5181: Option to use an object to determine the startX&Y in the Wave Modifier
This patch allows the option to use an object to determine the wave modifier's start X & Y, it also allows for animated objects giving a moving wave start X & Y.
Thanks to Michael Fox for the patch!
New modifiers
The updates listed below should probably not be listed separately in the final release notes, as the modifiers involved have not been in a released version before.
Artificer
|
[edit] Displace
New displacement direction for Displace modifier: "RGB -> XYZ". This means that vertices will be individually displaced in the X, Y and Z directions by the RGB components of the texture (R affects X, G affects Y, B affects Z). This can be used along with e.g. the colour Clouds texture for a jitter effect.
[edit] EdgeSplit
Changed the UI of the EdgeSplit modifier, based on broken's feedback from long ago:
- "From Angle" is now "From Edge Angle"
- "From Flag" is now "From Marked As Sharp"
- The "Split Angle" input is now hidden if "From Edge Angle" is unchecked
- Changed tooltips to be (hopefully) more helpful
- Rearranged buttons to accommodate longer labels
[edit] UVProject
Upgrades to the UVProject modifier:
- New perspective projection capability. If a camera is used as the projection object, the modifier detects whether to do perspective or orthographic projection based on the camera type. If any other object type is used as the projection object, orthographic projection is used.
- Orthographic projection actually works properly now.
- The projected UVs are scaled and offset so that the image is centred in the projecting camera's view.
- AspX and AspY inputs have been added to control the aspect ratio of the projected UVs.
[edit] Examples
[edit] Array
While the Array modifier was present in the last release, the modifier stack upgrade allows deforming modifiers (such as the Curve modifier) to be applied after the Array modifier in the stack. These examples demonstrate this capability.
Media:Tracktest.blend - This test file demonstrates how to use curve and array modifier to produce a simple track animation.
Media:Manual-Modifier-Array-Tentacle01.blend - A tentacle created with an Array modifier followed by a Curve modifier. The segment in the foreground is the base mesh for the tentacle; the tentacle is capped by two specially modelled objects deformed by the same Curve object as the main part of the tentacle:
[edit] Displace
Media:Footprinttest.blend - This test file demonstrates how to use Displace modifier, empties and a blend texture to produce a simple "invisible man walks on beach" animation.
Media:Manual-Modifier-Displace-Example01.blend - Three different objects created with the Displace modifier:
Media:Manual-Modifier-Displace-Slime01.blend - A slime animation created with the Displace modifier.
[edit] EdgeSplit
Media:Manual-Modifier-EdgeSplit-Example01.blend - EdgeSplit modifier output with From Marked As Sharp selected:
Media:Manual-Modifier-EdgeSplit-Example02.blend - EdgeSplit modifier output with From Edge Angle selected:
[edit] UVProject
Media:Manual-Modifier-UVProject-House01.blend - A house textured with the UVProject modifier. The cameras scattered around the scene are the projection objects. UVProject greatly simplifies this kind of texturing, by making it easy to line up textures with the model (bricks with windowframes for eg.) This is done interactively, open the blend and move the cameras around, you can also rotate and scale them.







![[]](/skins/blender/open.png)
