Age | Commit message (Collapse) | Author |
|
=========
Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:
- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.
.. and lots of other things, some more info is here:
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc
The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.
Point Cache
===========
The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.
See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint
Documentation
=============
These new features still need good docs for the release logs, help
for this is appreciated.
|
|
NLA Window, Strip blending mode "Add" didn't work at all.
It was using very bad quaternion addition. Replaced with proper code.
For devs; new is the function QuatMulFac(quat, factor) which allows to
multiply a rotation with a value (make it rotate more or less)
|
|
Patch by: Matt Ebb (broken)
Currently in Blender, NLA action modifiers can work in very wacky and mysterious ways.
If an action is being modified with a path deform, when it reaches the end of that strip, it will snap back to the original un-modified location, regardless of whether the strip 'Hold' option is on. It's very frustrating to work with, and causes all sorts of problems - if you use a path to make a character walk from point A to point B, you generally want him to stay at point B, and not jump somewhere completely different, just because the strip ended.
This patch fixes this behaviour, and makes it much more sensible and predictable. There is a chance that this will break old files that were reliant on the old broken behaviour though, but I think it's definitely worthwhile to fix this problem.
Check the demo file in Blender 2.45 vs one with this patch applied - you can see the difference in behaviour.
Demo File Link (attachment in original tracker post):
https://projects.blender.org/tracker/download.php/9/127/7779/4856/wheelsetup2.zip
|
|
Relative shapekeys now allow to define the Shape it is relative to!
(It used to be relative with respect to the first key, which is still
default).
The reason for this feature is that keys don't always add together
well when they're all derived from the same base shape. A clear
example is hard to make... will wait for someone posting it. :)
|
|
When you make proxy, the group-update tags should be set OK.
Symptom: you could not move proxy around until you set keys
in bones and advance frame.
|
|
- error fix: overall weight group value was used inverted
- added "Inv" button to make weight group work inverted
- added bigger, more clear Multi Modifier button
|
|
This allows to mix between the result of 2 modifiers, with both
using the same input state. This is useful for having a mesh deform
and armature deform working together.
However! This functionality could have been presented better...
this is actually Node editor stuff!
Now it works by adding a "MM" button, next to the "overall vgroup"
option. If MM is pressed, the input of this modifier is the same as
the input of the previous modifier.
Only the armature modifier has this option now...
|
|
This commit makes all softbody collision modes work as they should.
Thanks to Genscher for noticing the issue.
bjornmose, please check this commit.
|
|
Armature Proxy: the 'free pose channel' didn't restore the custom shapes
when reloading file.
|
|
overwriting caused memory corruption
Aligorith: please check, I think fix is quite obvious though.
|
|
This option sets the relative scaling factor to the amount set in the
scene "100%/75%/50%/25%" buttons. It's useful when you've got a fixed
background image, and want to do preview renders at a lesser
percentage, so you don't have to go and change the scale node each
time you change the %.
Also removed unnecessary use of a global from texture node.
|
|
Support for using the axes of a different object as the line of mirror
symmetry for a mirror modifier. As a nice consequence, this allows
"clipping" to arbitrary planes in editmode.
A fun example of using a couple of mirror modifiers and an array
modifier to easily make a nice flower type model is here:
http://bebop.cns.ualberta.ca/~cwant/chocolateC05.blend
|
|
just the head or tail
Patch by: Roland Hess (harkyman)
For example, a constraint can be sub-targeted at the 50% (or 31.2% or 85% etc.) point of its target bone, giving you enormous rigging flexibility and removing the need for complex contraptions to do such things as:
- A bone whose base slides only between to points on a rig (CopyLoc with a variable, animated subtarget point)
- Bones that attach to multiple points along another bone (CopyLocs, each with a different head/tail percentage)
- Bones that need to stretch to a point midway between specific spots on two other bones (old way: too crazy to mention; new way: stretch bone between points on end bones, then another stretch to the midpoint of the first stretch)
It is only used for the constraint types for which it is relevant: CopyLoc, TrackTo, StretchTo and MinMax, TrackTo, and Floor.
Notes:
- This is accessed by the Head/Tail number-slider.
- This value can be animated per constraint
- The old "Copy Bone Tail" option for the CopyLoc constraint has been automatically converted to 1.0 Head/Bone values for the affected constraints
- In the code, this value is in the bConstraint struct, so it is available for all constraints, even though only a few implement it.
|
|
====================
Dynamic binding support. This means that the mesh can move _within_
the cage and still deform correct. If the mesh goes out of the cage,
don't expect correct result. Must be enabled with the 'Dynamic'
option, because it is slower and consumes more memory.
This is useful to use e.g. the cage mesh for main deformations and
still have shape keys for facial deformation working.
|
|
be very confusing when you don't appear to have the image loaded anywhere.
|
|
(Similar to how Metaballs can be selected) for easier access then H,Shift H, V keys
|
|
It's next to the 'hinge' button, a small 'S'. No more space here... will
make it nicer inferface later. :)
Let's first see if this works as expected.
|
|
Issue with dual quaternion scaling + vertex group influence.
|
|
* made stamp filename optional
* renamed weightpaint "Filter" to "Blur"
* made the defailt weightpaint opacity 1.0 rather then 0.2 so when you select 1.0 weight you can paint it with without multiple clicks.
|
|
Mesh deform invert vertex group influence didn't work entirely correct.
|
|
Mesh deform modifier crashed when applied to lattices.
|
|
====================
Added a button to invert the vertex group influence, to make blending
between mdef and armature deform easier.
|
|
material names spelling was odd - HalveGreen -> HalfGreen
|
|
B-bones didn't work well with non-uniform scaling applied to them.
The code to solve this is not too pretty, but don't know how to do
it simpler, and at least it makes that stretchy spine work.
|
|
Dual quaternions + armature modifier vgroup didn't work together correct.
|
|
====================
The MeshDeform modifier can deform a mesh with another 'cage' mesh.
It is similar to a lattice modifier, but instead of being restricted
to the regular grid layout of a lattice, the cage mesh can be modeled
to fit the mesh better.
http://www.blender.org/development/current-projects/changes-since-244/modifiers/
Implementation Notes:
- OpenNL has been refactored a bit to allow least squares matrices to
be built without passing the matrix row by row, but instead with
random access. MDef doesn't need this actually, but it's using this
version of OpenNL so I'm just committing it now.
- Mean value weights for polygons have been added to arithb.c, a type
of barycentric coordinates for polygons with >= 3 vertices. This
might be useful for other parts of blender too.
|
|
instead of bone-space. This makes it visual easier to use. For the todo:
a large array of buttons for users to pick what kind of 'space' is used?
|
|
"Rotation Difference"
This option, for Bones, allows the angle between two Bones to be
the driver for another Ipo channel. This angle now is hardcoded
based on the Bone-space orientation (without parenting rotation).
Thanks to nathan for poking and test!
|
|
==
Solving is now done independent of scale, by scaling the chain to have a
size of about 1.0. This solves some issues with small or big chains, and
also makes the IK stretch setting independent of scale. The latter breaks
backwards compatibility somewhat, but is an improvement over what it did
before.
|
|
This changes the default behaviour in adding new objects, which has been
discussed for a long time, in person, on the funboard, and in the tracker,
and was agreed to be implemented during the 2.5 release cycle, so here it is.
They have been made default, with preferences to bring back old behaviour since
although people like myself still prefer the new default anyway, it will benefit
new users the most.
The preferences are in the 'Edit Methods' section, changing back to old behaviour
is as simple as a click of a button.
- Switch to edit mode preference
By default, now adding a new object doesn't automatically switch to edit mode.
Not only can this be annoying (most of the time when setting up scenes and models
I don't want to edit it straight away anyway), but it's a major hurdle in the learning
curve that new users have had to deal with at a very early stage.
Blender's different modes are an important part of understanding how the software works
and should have clear behaviour. The problem is that when a user selects something from
the add menu, he's not telling Blender to change modes, he wants to add an object.
But Blender then goes ahead and changes modes underneath him anyway, something that was
never explicitly asked for, something that's unrelated to the mental task at hand, and
fundamentally important to the operation of the software.
We observed plenty of people struggling with this during the training sessions that
we ran during Project Orange, and there's also no shortage of "why can't I select
other objects" questions on the forums.
- Aligned to View preference
Now by default, adding a new object doesn't rotate it so it's aligned facing the view,
but rather, it's remains unrotated in world space. This is something that's more of
a convenience issue (allowing people like me to stop the 'Add->Tab->Alt R dance),
but also makes things easier for new users, especially when doing things like rigging.
For a lot of tools in Blender, like curve deform, path cycling, constraints, it's necessary
for your objects' local axes to be aligned. This requirement isn't that obvious, and I've
had to debug rigs a few times from the animator in our studio, who has everything set up
correctly, but he just happened to be in a different vie at the time he added the object,
so they're misaligned and causing problems. Having all objects get created aligned to
worldspace, by default, makes a lot of these problems go away. It's much more understandable
when rotations are caused by something you've done explicitly, rather than as a side effect
of the software.
For convenience as well, most of the time, when I'm working in context and I decide I need a new object,
particularly working on production scenes that involve more than just one model, an Alt R
is almost always required after adding, since I don't want to have to disrupt the current
view of the scene by switching to top view, just to add an object. It's a bit arbitrary,
the view from which you want to look at your objects isn't usually the way you want them to
be looking at you.
|
|
Weightpaint drawing now allows to define your own range of colors;
using a ColorBand, available in the User settings.
Log:
http://www.blender.org/development/current-projects/changes-since-244/animation-features/
|
|
Now the Copy Scale Constraint also has the Offset functionality that Copy Loc/Rot have.
== Copy Rotation Constraint ==
Also, fixed the tooltip for the CopyRot Offset button.
Note: when working with pose-bones, and using offset, setting both owner+target spaces to pose-space should cancel any unwanted rotations visible.
|
|
Copy Rotation constraint now has ability for the owner's rotation to be added on top of the copied rotation (i.e. an 'offset' like for the Copy Location constraint).
|
|
Copy+Paste error, wrong prefix used. Patch provided by Malcolm Tredinnick (malcolmt)
|
|
Missed a case where I converted set_constraint_target incorrectly. This resulted in mancandy "exploding" on loading proxy-linked mancandy files.
|
|
This commit adds a new node, crop, to the compositor. This node can be used to
crop input image. It has two modes of operation. It can either crop image
size (Crop Image Size option) or crop while retaining original size of the
image. This latter mode can be used to preview the crop.
Use X1, Y1, X2, Y2 controls to manage the area to be cropped.
Note that I added a check for image preview min and max values to node_update.
This is because it could give inappropriate values in certain cases when
Crop Image Size option was toggled (values such as x1=0, y1=0, x2=60, y2=0 would
result in eternal loop due to bad min and max (min bigger than max!)). The check
makes sure that min and max values are always valid.
|
|
uninitialised vars.
|
|
images)
separated stamp metadata and stamp draw functions.
|
|
This was caused by an error I made when converting old code during the constraints recode 2. As a result, constraint subtargets got cleared, messing up proxies.
(set_constraint_target didn't use to clear the subtarget of a constraint when passed NULL for the subtarget argument)
|
|
* glare
* tonemap
* lense distort
* fast gauss blur
http://projects.blender.org/tracker/?func=detail&atid=127&aid=7505&group_id=9
made fast gauss blur an option for the blur node rather then a separate node.
|
|
|
|
(aparently this can corrupt the value in some cases)
Fixed problem where hidden curve handles could still be transformed.
|
|
==================
This adds an extra target to the IK solver constraint to define the
roll of the IK chain.
http://www.blender.org/development/current-projects/changes-since-244/inverse-kinematics/
Also fixes a crashes using ctrl+I to set an IK constraint on a bone
due to the recent constraints refactor.
|
|
When using non opaque background, some overlap lines appear
due to filling some pixel lines twice. Before it did not matter
as only opaque bg was allowed, and it even compacted the text
a bit. The fix spreads a bit the lines to overcome the issue.
As a plus no text should touch the top edge ever (slashes did,
for example).
Compare:
http://www.infernal-iceberg.com/blender/stamp-alpha-overlap.png
http://www.infernal-iceberg.com/blender/stamp-alpha-cleanup.png
|
|
The list of changes (some are fixes):
- Properly horizontally centered tags in all fields (bug?).
- File area does not have trailing space and has leading "File " at
start instead (probably a bug).
- Small separation between to time related fields, space saving.
- Removed colons, for consistency and space saving again.
- Frame field is zero aligned for higher visual stability.
- Marker name shows a rarer name, "<none>" (using <> is typical for cases
in which there is nothing: <none>, <empty>, <blank>, etc).
- Top area for misc info that can be really long (file, note and render date).
- Bottom area for more constantly changing but short ones (marker, SMPTE,
frame, camera and scene).
- Only render date moves a line (when note field is not used), and frame one
moves if no SMPTE (still in same line, so no big jump), for extra visual
stability (marker is fixed, assuming most people would show frame and or
SMPTE).
- ISO 8601 date format for render date, localization independant.
Comparision images:
http://www.infernal-iceberg.com/blender/stamp-original.png
http://www.infernal-iceberg.com/blender/stamp-cleanup.png
|
|
I've finally traced down the causes of several of the bugs which caused PyConstraints to work incorrectly (or not at all).
* Freeing is now done using BLI_freelistN inside the pycon_free function, instead of looping through the targets ourselves. This fixes all of those Memblock free: pointer not in list errors.
* BPY_pyconstraint_update now correctly creates/frees the constraint's targets as needed. Previously, it was creating/removing the wrong number of targets. Also, pyconstraints no longer get disabled when using armatures (not bones)
* The panel drawing was also not working right, as there were still some offset issues.
|
|
|
|
normals - the fact that the generated model was being set to double sided helped hide this.
To test for this in Blender, just add text, TAB out of edit mode, then convert to mesh ( ALT+C ), and press P for the game engine. Alternatively select Textured Draw Mode. You'll notice that the text is only visible from the back. This patch reverses this, to be more correct.
Based on discussions on IRC, I'm now trying to fix another aspect of the extrude code - the fact that the faces at the front and back of the extruded curve face the same way ( ie one of them will be wrong ). I'll keep working on this, but if someone can help out, feel free!
|
|
Caused in Joshua's work on constraint, committed yesterday.
|
|
|