- 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.
Also:
- I have added the Mat4MulVec3Project() function to BLI_arithb.h; this
function converts a 3-dimensional vector to homogeneous coordinates
(4-dimensional, with the 4th dimension set to 1), multiplies it with the
given matrix, then projects it back to 3 dimensions by dividing through
with the 4th dimension. This is useful when using projection matrices.
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.
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!
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
All data layers, including MVert/MEdge/MFace, are now managed as custom
data layers. The pointers like Mesh.mvert, Mesh.dvert or Mesh.mcol are
still used of course, but allocating, copying or freeing these arrays
should be done through the CustomData API.
Work in progress documentation on this is here:
http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData
Replaced TFace by MTFace:
This is the same struct, except that it does not contain color, that now
always stays separated in MCol. This was not a good design decision to
begin with, and it is needed for adding multiple color layers later. Note
that this does mean older Blender versions will not be able to read UV
coordinates from the next release, due to an SDNA limitation.
Removed DispListMesh:
This now fully replaced by DerivedMesh. To provide access to arrays of
vertices, edges and faces, like DispListMesh does. The semantics of the
DerivedMesh.getVertArray() and similar functions were changed to return
a pointer to an array if one exists, or otherwise allocate a temporary
one. On releasing the DerivedMesh, this temporary array will be removed
automatically.
Removed ssDM and meshDM DerivedMesh backends:
The ssDM backend was for DispListMesh, so that became obsolete automatically.
The meshDM backend was replaced by the custom data backend, that now figures
out which layers need to be modified, and only duplicates those.
This changes code in many places, and overall removes 2514 lines of code.
So, there's a good chance this might break some stuff, although I've been
testing it for a few days now. The good news is, adding multiple color and
uv layers should now become easy.
mode with a single slider. (Doesn't seem likely the user is going to want to
scale in one axis differently from another.) Additionally, the new slider
works correctly in Tile mode in addition to 3D mode. In Tile mode, the slider
value is considered pixel units.
In the process, found and fixed a few sculptmode bugs
* When loading a file that is already in sculptmode, initialize sculptdata
as soon as the first sculpt/partial-visibility operation occurs
* Bug in the undo_push code; reading from free'd memory
- Weight paint options now also show in Nkey panel
- added uiNewPanelTitle() in interface API to rename panels. In use now
for the Nkey panel title.
(Note: original name is identifier, do not change that)
Bugfix: Beziers in curve didn't calculate the tilt values correctly for
the endpoint and not for all handle types. That way deforming curves didn't
extend the tilted deform either. (IRC report by Jahka)
2)
If you setup a Proxy for Armatures, the protected bones now have an error
pupup for buttons and for some of the tools in 3d window (constraint edit
mostly).
Also the Bones Panel shows a note when the bone is not editable.
a group to show when used for duplicators. Is in the Object Buttons,
"Object and Links" panel. Note that the duplicator layer itself still
defines still visiblitily of entire group.
now, others can be added later (sticky, shape keys). Beside one small fix
for knife exact vertex group interpolation, is intended to work the same
as before.
Also fixes bug #5200, related to editmode undo and vertex groups. And
corrects the editmode to faceselect mode selection conversion, that was
broken in a previous commit.
THE OBJECT PROXY
Or simple said; local control of referenced data from libraries.
Having library files with references is a very common studio setup, and
Blender did do quite well in that area. Were it not that for character
setups it was impossible to use still.
This commit will enable a full rig+character to remain in the library,
and still have - under strict control - local access for animation edits.
Full log:
http://www.blender3d.org/cms/Proxy_Objects.824.0.html
* Changed multires panel's width to the default
* Removed floating multires panel
* Made multires panel always visible (in EditButtons)
* Moved Make/Delete [multires] button into the multires panel
* Moved the two sculpt panels into tabs of the multires panel
* Removed two extra sculptmode buttons from view header
settings, rather than using the object's TrackX/Y/Z/etc buttons.
This is good for two reasons: a) having the settings over in the object buttons
before was terribly unintuitive and hidden, now it's more visible how to
control the deformation, and b) now if you have more than one curve modifier,
they can have their own settings, instead of being forced to use the object
level data.
falloff and spacing. Click the button labeled "P" next to the sliders.
Works best for opacity, other options can give poor quality strokes in
some cases. Also performance needs to be improved.
Remember, works only on X11 and Mac, no Windows support for tablets yet.
* removed get/set in favor of setsetattrs
* added an element iterator to the metaball data type.
* now accepts vectors and quat for location dimensions and rotation.
and other small changes.
Docs updated shortly at.
http://members.iinet.net.au/~cpbarton/ideasman/BPY_API/Metaball-module.html
other changes
typo in image.c
metaballs constants in buttons_editing
- Panel with Shape keys now shows for lattice too
- Supports VGroup weight value for Shapes
NOTE: this doesn't support Shape editing with linked duplicates. The
modifier system for Lattices (as for Curve/Surface) has no local Object
storage, so linked duplicates will all show identical.
In a quick glance: (temp image)
http://www.blender.org/bf/rt.png
Main reason is that Lattices are useful a lot for Armature deformation.
Lattices just provide much more precise and interesting control. However,
with only bone envelopes it's very hard to use.
Working with Lattice vertex groups is nearly identical to Mesh:
- on CTRL+P 'make parent' you can choose the deform option now
- In editmode, the buttons to control vertex groups are available
- In outliner you can select vertexgroups too
- Deforming Lattices with Armatures has all options as for Mesh now.
Note:
- No WeightPaint has been added yet. To compensate, the editmode
drawing for a Lattice with vertex group shows weight values for the active
vertex group.
- Lattice editmode doesn't undo/redo weight editing yet.
- Softbody for Lattice still uses own vertex weights
Implementation notes:
- derivedmesh weight_to_rgb() is now exported to drawobject.c
- been doing cleanups in code (order of includes, var declarations, etc)
- weightpaint button handling now is generic
I've checked on Brecht's proposal for Custom Element data;
http://mediawiki.blender.org/index.php/BlenderDev/CustomElementData
It could have been used, but that would mean the existing code for
vertexgroup handling and armature deform couldn't be re-used. I guess this
is really a later todo.
had to make some room in the "Mesh Tools 1" panel,
removed "Center" - its alredy in the "Mesh Tools" panel, and grouped the "Normal" draw buttons.
At the moment mixing modes dosnt work, we will need to review this to see if its worth attempting.
This provides a weight-paint option that only paints on vertices that have
already the weight-group assigned before. The default adds weights on all
vertices painted on.
Fixes in patch include:
- much less code
- also support for 'filter' mode
- proper code styling
a vertex group which will modulate the influence of all bones in the armature.
This commit also tidies up the height of the modifier panels; they should all
have the same size margin now.
exception of the clone tool.
One level undo for image- and texturepaint, only storing those tiles
that changed.
Test to improve texturepaint performance using glTexSubImage2D, only
enabled with 2^n sized textures and mipmapping off. Painting a 2048x2048
texture is then pretty smooth here, as long as the geometry is not too
complex.
Vertex Snapping for 'Knife Exact' tool was originally set at 75 pixels. Now its adjustable via the 'threshold' value in the editing context of the buttons window. I also changed the tooltip to reflect this.
This is a much faster and easier way to give a bevelled curve a taper, without
using taper curves. Each point on a curve now has a 'radius' value that you can
shrink and fatten using Alt S, which will influence the taper when the curve is
bevelled (either with a bevob, or with front/back turned off and a bevel dept
set). Alt S shrinks and fattens the selected points in an interactive transform,
and you can set an absolute radius for selected points with 'Set Radius' in the
curve specials menu.
See demo: http://mke3.net/blender/etc/curve_shrinkfatten-h264.mov
This can be a quick way to create revolved surfaces (eg.
http://mke3.net/blender/etc/wineglass-h264.mov ) and it would be very
interesting to use this radius value in other tools, such as a 'freehand curve'
tool that would let you draw a curve freehand, with the radius affected by pen
pressure, or even using the radius at each point to control curve guides for
particles more precisely, rather than the continous maxdist.
- ImagePaint now uses ImBuf directly, and the rect blending functions
were moved into the imbuf module.
- The brush spacing, timing and sampling was abstracted into brush.c, for
later reuse in other paint modes.
Float ImagePaint support.
Textured Brushes:
- Only the first texture channel is used now.
- Options for size and offset should be added, but need to find some space
in the panel, or add a second one ..
- Code for brush spacing and timing was rewritten, making spacing more even.
Example: http://users.pandora.be/blendix/brush_spacing.jpg
- Instead of Stepsize for regular brushes and Flow for airbrushes, there is
now Spacing for both, and Rate for airbrushes.
- Airbrush now works more like it does in the Gimp now, by maintaining the
spacing even if the brush moves faster than the painting rate.
- Some preparations to make brushes work in texture paint mode.
Curves without bevel/extrude don't react to buttons to fill front/back.
That is coded that way, so added this info to the tooltip
Bug report #4566
Creases drawing became very awkward in commit in august last year. Flipped
the drawing order so the fat lines - denoting creases - are drawn first.
That way the value of crease is visible, as well as edge selection state.
In Editmode armature, the autocomplete for bone names used the bones from
the armature itself, not the edit data.
While fixing, also found out autocomplete for vertexgroup didnt work even.
Weightpaint fix.
Weight painting was recoded in 2.40 to support all features from vertex
paint. That code uses a 'soft' brush by default, which makes it impossible
to assign exact weight values on a single click (which used to be possible)
I've made that an option now, so you can disable it for single-click setting
of values on vertices within the brush (if 'use vertex distances' is
set, of course).
- Button "relative key" was still there in Mesh Panel (is in Shape now)
- Button "Slurph" also moved to Shape panel, and gave it a tooltip.
(Slurph with value 10 will make the first vertex of a Mesh go 10 frames
earlier than the last vertex. Nice effect for making flexible stuff)