Added a callback instance_init() so that any particular instance of a
texture plugin can initialize data. Updated the clouds2 and tile example
plugins to have a (dummy) call back.
- 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.
UV edit option 'constrain to rectange' didn't restore correctly on ESC.
(note, on ESC it doesn't undo the constrainting, in case the edited face
was not a quad).
Also:
- The UVs pulldown in Image window was far too large, moved the scripts to
an own sublevel menu
- Previous commit in vpaint.c had warnings
- SHIFT+K in weightpaint+faceselect combo crashed (caused by my commit for
real undo in painting)
- weightpaint+faceselect combo didn't draw correct anymore (caused by
commit for custom mesh layers)
==========
Bugfix #4951: This might be a serious change for python script writers.
-- ob.getMatrix('localspace') did not return the correct matrix when the object
had a parent; this has been corrected.
-- ob.setMatrix(m) did not work predictably (more correctly, in an easy-to-
predict manner) when an object had a parent. The method has been changed
so that if thee is a parent, it ASSUMES the matrix is "localspace",
relative to the parent. The documentation now states this.
-- ob.mat and ob.matrix are now read-only attributes, while ob.matrixLocal
(which calls Object_setMatrix() ) is now read-write.
Ton is not thrilled (is that a fair summary, Ton? ;-) with this method since
the ob->obmat is calculated from the loc/rot/size attributes of an object.
I'll let him speak on this, but I believe his desire is for this method to be
deprecated in the future and replaced with something else.
Bake-render:
Quad faces still didn't get handled properly, error visible for vertex
color or UV textures.
Also: added error meny when a Bake cannot work because there are no Images
or no Images with buffers
Random seeding is still not perfect in render, especially lack of good
thread support still.
- VectorBlur node was calling seed for each exec, causing other nodes to
get fixed random too.
- added seed in non-OSA main loop for render
- use BLI_srandom, is better than BLI_srand
CurvePaths: if the path has vector handles, or when it's a Poly curve, the
amount of interpolated points on the path was too limited (6 actually).
Now the 'resolu' of the curve defines the amount of interpolated points.
This enables motionpaths or deforming with sharp corners.
3D window, preview panel, didn't give correct specular for Ortho.
The view-vector was flipped negative then, so more view-depending
code (like tracing) would go wrong then.
2006/11/19 00:07:32 CET
Fix for bug #5250: inaccurate conversion between edit and pose mode bones.
Two very bad bugs:
- replacing atan() with atan2() should also remove the M_PI correction!
This is the equivalent:
angle=atan(x/y); if(y<0) angle+=M_PI;
angle= atan2(x, y);
- the new NormalizedVecAngle2() call was negating an input vector, causing
calling code to screw up. All arithb.c calls should not alter input.
Yesterday's commit from Brecht broke armature editmode, damaging armatures
in a way you cannot rescue. This rewinds the main changes. After commit
I'll try to find the error...
Just a minor little code cleanup that I partially started in another one of
my commits.
The implementation of the showsliders stuff was pretty ugly with exported
globals (correct terminology?) used to store whether sliders were shown
in the action editor for shapes. This is now a flag in SpaceAction, so the
visibility status of markers is now saved in files.
This appears as a new 'Cameras' menu in the 3D View's View menu, containing a
command to set the active object as active camera, and a list of the available
cameras in the scene to choose from.
Temporarily disabled game engine for scons and Makefiles (nan_definitions?), this to upgrade to Bullet 2.x
scons for Darwin, Linux, BSD3, SunOS5, Win32, and Makefiles should not compile game engine right now.
CMake and MSVC needs still disabling of game engine.
- Curve/Nurbs/Font/MBall now all draw arrays.
- had to flip abgr to rgba in shaded drawing
- Mesh drawing can't be easily done; the indices for faces are not in
in one chunk. Also need a way to gether trias/quads, per material.
Speedup results are mixed. Something between 2-4 times. Especially for
text it seems to help.
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!
The epydocs are now updated to have idproperties;
all the modules that have bindings for ID properties
now has docs for them. E.g Materials have a .properties
members, Image, Texture, Scene, Object, NMEsh, and Mesh.
I realized that .properties was already taken in
Objects, so I renamed it to .idproperties. There was
also a nasty little problem with an example inside
Object.getType; the entire example was being pasted inside
the return field. I fixed it by just moving the return
definition to after the example, like it should be.
- After making a Group, internal socket values are now copied to the
group node, so an execute will give identical results
- After ungrouping, the cyclic dependency tagging didn't work well in
all cases, showing a red noodle line and giving composite errors.
For time being solved by calling the NodeSort twice.
- Viewer nodes now get previews updated always (used to be only the active)
Note: this is not for previews inside of groups!
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
This adds the ability to restrict an individual object from:
- being visible in the 3D View
- being selectable in the 3D View
- being renderable
with 3 columns of buttons in the outliner.
These restrictions are further down the hierarchy than layers, so for example if an object is in an invisible layer, it will be invisible regardless of whether the object's own visibility setting is on or off. This works on a different conceptual level than layers, being better for more quick interaction (like temporarily making a mesh unselectable while you're posing its armature), rather than so much for scene organisation.
The 3 columns of icons can be turned off in the Outliner View menu.
Along with this is some small cleaning up in interface_icons.c and outliner.c.