From BlenderWiki

Jump to: navigation, search

[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.

[edit] Further Information