Commit Graph

1876 Commits

Author SHA1 Message Date
Brecht Van Lommel
15eb4ebbe4 Mesh Deform Modifiers
=====================

Tweak for somewhat improved results with dynamic binding, and added
a rt value (527) for debugging mdef accuracy.
2007-12-08 18:46:44 +00:00
Brecht Van Lommel
e60580935b Accidentaly left in a line of debug code, which broke deform modifiers
after e.g. subsurf.
2007-12-07 12:05:12 +00:00
Joshua Leung
be7192c0bd == NLA - Scale Related Fixes ==
* Old files now get initialised with the correct scale. The wrong calculation was being used

* Added a new tool to Alt-S menu: "Apply Scale"
This tool causes all the keyframes in the active strip to be moved to their NLA-scaled times, the scale to be set to 1.0, and the frame ranges recalculated accordingly (to remove any nasty weird errors)

* Scale field now draws red when the action-range is < 1, and the tooltip in this case instructs the user how to fix this (by using "Apply Scale").
2007-12-07 10:50:02 +00:00
Joshua Leung
ab02e9140e == NLA - Scale Setting for Strips ==
NLA-Strips now have a new setting: Scale. 

It determines how much the action-range is scaled for each repeat, instead of the scaling being implicitly determined based on repeats + strip-length. 

One of the instant benefits of this, is that when increasing the number of repeats, the strip length increases by the right amount. Thus, increasing the number of repeats retains a constant speed.

Hopefully we can prevent weirdly scaled actions this way. (i.e.  0.00001 frames long action * 10000 or so)

Todo:
- Transform code needs to be able to set the scale setting (it doesn't yet)
- Add a new option to "apply scaling", to fix up problems with old files that have really bad scaling. Situations when this is needed could get indicated in the interface too... (red background for "Scale" field?)
2007-12-07 04:24:02 +00:00
Brecht Van Lommel
51322964f4 Particles
=========

- Normalize strand coordinates over the length of the strand, not
  cut off when with e.g. length texture control.
- Weight paint and particle mode x-mirror now works with deformation
  and shape keys active.
- X-ray is now disabled in particle mode, messed up depth tests.
2007-12-06 17:43:47 +00:00
Joshua Leung
1e45289f91 Constraints Bugfix:
IK-constraint "flush_targets" function was causing segfaults on debug builds from certain MSVC compilers. 

The cause of this, is that ct is freed in the SINGLETARGET_FLUSH_TARS macro already, but ct is accessed in the following line to get the next target (ct= ct->next). Caused by brecht's commit for the pole-target stuff for IK-constraint.

Now the SINGLETARGET_FLUSH_TARS macro, and the SINGLETARGETNS_FLUSH_TARS macro will correctly advance the location that ct points to.
2007-12-06 10:20:03 +00:00
Brecht Van Lommel
26b8892c9c Bugfix for mysteriously disappearing left eyeball. Bounding boxes
used for clipping were being stored in the mesh, but modifiers
can result in two objects with the same mesh having a different
bounding box. Solution is to store bounding box in the object.
2007-12-05 21:50:23 +00:00
Brecht Van Lommel
b3c1e458b4 Particles
=========

- Added texture control for child particle roughness.
- Fix some use of uninitialized variables in particle texture code.
2007-12-05 15:48:49 +00:00
Brecht Van Lommel
29d87d64ca Particles
=========

- Texture orco coordinates for particles are now actual orcos instead
  of just the vertex positions, which means they are the same under
  deformations and the same as the ones on the mesh.
- Particle distribution now uses these orcos to get consistent
  distributions independent of deformation.
- This required changing the way orco's are computed for meshes. Now
  instead of generating an orco derivedmesh separately, the derivedmesh
  is generated alongside the regular one and stored in an orco custom
  data layer.
2007-12-05 12:40:54 +00:00
Joshua Leung
5c13e82140 Two transform tweaks:
* [Peach Request] AutoIK now respects axis locking (rotation locks).
- Temporary DOF-Locks are turned on for those bones that are part of an AutoIK chain while transforming. These locks get cleared after transforming.
- This works for all bones except the root bone of the chain, which doesn't seem to be able to be locked.

* Limit Location constraint can now optionally affect Translations too (i.e. NKEY panel values won't change). 
- LimitRot,LimitScale support (for their respective transforms) will be done at a later date
- This only works if the constraint is using World/Local space (the other spaces are not supported yet).
- I've added a temporary button in the LimitLoc panel to enable this option (it is disabled by default). This button will be properly assigned a place in that panel sometime.
2007-12-05 11:19:36 +00:00
Brecht Van Lommel
32a8b4f8e6 Particles
=========

- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
  Amount. The render amount particles are now only distributed and cached
  at render time, which should make editing with child particles faster.

- Two new options for diffuse strand shading:
	- Surface Diffuse: computes the strand normal taking the normal at
	  the surface into account.
	- Blending Distance: the distance in Blender units over which to
	  blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
  grass. This is a work in progress, and has a number of known issues,
  don't report bugs to me for this feature yet.

More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
2007-12-04 13:57:28 +00:00
Brecht Van Lommel
ebfedd20b2 Mesh Deform Modifier
====================

Bugfix for mdef + groups. The mdef modifier treated the cage object as
a sort of parent, which meant that transforming the cage object also
transformed the mesh. However, this behaviour is different from e.g.
armatures, where transforming the armature object has no effect for
the modifier, but instead this transform is taken into account by the
fact that the armature is usually the parent of the mesh.

For groups and duplis, this basically lead to the parent transform
being applied twice. So, now transforming the cage object will have no
effect, except if you make the cage object the parent of the object.
2007-12-04 12:39:27 +00:00
Ken Hughes
3e544d04b5 Tools
-----
Make FFMPEG image save use PNG format instead of JPEG.
2007-12-04 05:53:32 +00:00
Ken Hughes
62e28f52da Tools
-----
Bugfix #7831: fix image filename extensions on saved files.  Make FFMPEG save JPEG images by default, allow JPEG images to have either ".jpg" or ".jpeg" extension.
2007-12-03 23:37:33 +00:00
Campbell Barton
a2d6623689 bugfix, curve radius would display incorrectly when there were single point's before a curve. now allow the bevel list to have zero point BevList's to keep in sync with curve->nurb as was expected in a few places. 2007-12-03 22:42:48 +00:00
Ton Roosendaal
71e4b3ce22 Another Proxy Armature bugfix:
- Library referencing didn't add the new local Ipo for constraints
- Proxy command didn't set the driver object in constraint ipo to be 
  the new proxy object.
2007-12-02 18:33:14 +00:00
Brecht Van Lommel
6a9c6674ca Particles
=========

Bugfix for crash with disabling the particles system and saving/loading
files, the way it detected if the mesh had changed could not work correct.
2007-12-02 15:54:54 +00:00
Campbell Barton
1e32ec2000 minor update, "Draw Handles" wasnt working when disabled everywhere and replaced some magic numbers 2007-12-01 23:25:00 +00:00
Campbell Barton
141e279d70 wizard_curve2tree.py - bounding twig mesh didnt work if it had some transformation.
buttons_shading.c - premul button was overlapping movie buttons
2007-12-01 22:00:09 +00:00
Brecht Van Lommel
475cf46d61 Bugfix:
Duplicating or separating objects with a particle system could crash.
2007-12-01 20:08:31 +00:00
Ton Roosendaal
45c41ffb69 Two fixes:
- new option for Local Constraint Ipos did not set user counter in
  Ipo at file reading, causing data to get lost (not saved).

- Driver feature: the channels "Loc X Y Z" now also use the result
  of constraints, but transformed back into local space, as if it 
  was action X Y Z. Nice stuff for those who understand this... 
  it means you can drive something with a bone that has constraints.
2007-12-01 10:48:33 +00:00
Campbell Barton
6b88141fda dupliFaceScale wasnt being initialized for new objects, added Python api access 2007-11-30 14:10:36 +00:00
Brecht Van Lommel
0bcc5e8b8d Bugfix:
Another one in the particle distribution, the last particle could be
placed on faces with zero weight.
2007-11-30 13:45:23 +00:00
Brecht Van Lommel
11c2a6754b Bugfix:
Random particle distribution did not normalize weights properly,
could give particles on invalid faces.
2007-11-30 13:28:33 +00:00
Campbell Barton
a4c17c7c88 anim.c, buttons_object.c, readfile.c, BKE_blender.h - dupliFace scale option, needed for leaves.
modifier.c, BKE_modifier.h - flag for modifiers to say they use pointcache, also new func modifiers_usesPointCache
renamed //pointcache to //blendcache_blendfilename so blendfiles in the same dir dont conflict, and other to show this dir isnt limited to pointcache only (nodes way want to use this)
wizard_curve2tree.py - better defaults for pretty tree's
2007-11-30 10:38:59 +00:00
Janne Karhu
04a009b047 Point cache was reset in many updates where it shouldn't have been reset.
Preview render crashed with "only render" children.
2007-11-30 07:41:22 +00:00
Janne Karhu
e893c9d739 Fix for bug #7846 2007-11-29 22:04:07 +00:00
Janne Karhu
9ff9a5cdca 2nd try at committing to trunk (instead of particles branch) :)
Fixes for bugs in #7833
- Hair softbody cache was reset on rendering.
- When Alt-a playback is synced to audio frames are skipped. This caused dynamics caching to go crazy. Now the first loop of playback goes through all frames if there are non cached dynamic systems.

Invalid point caches weren't cleared when new systems were created. This caused messed up shapes when softbody was added.
2007-11-29 21:09:16 +00:00
Brecht Van Lommel
18e5f7b50b Shape Keys
==========

- Added a Mute button for shape keys, useful for debugging the influence
  of driven shape keys.
- Bugfix for the shape keys relative to others keys, was hanging in
  an eternal loop when deleting the other key.
2007-11-29 19:35:30 +00:00
Matt Ebb
2a4f31e2a5 * Fixed stub for the changed RE_database_baking function 2007-11-29 01:41:20 +00:00
Brecht Van Lommel
561319989e Render Baking
=============

A new "Selected to Active" option in the Bake panel, to (typically) bake
a high poly object onto a low poly object. Code based on patch #7339 by
Frank Richter (Crystal Space developer), thanks!.

Normal Mapping
==============

Camera, World, Object and Tangent space is now supported for baking, and
for material textures. The "NMap TS" setting is replaced with a dropdown
of the four choices in the image texture buttons.


http://www.blender.org/development/current-projects/changes-since-244/render-baking/
2007-11-28 22:21:12 +00:00
Ton Roosendaal
ce52384e9f Small material assigning feature:
in EditButtons, panel "Links and Materials", there's now a browse button
to directly assign a material to selected faces. It does:

- check if material was already in one of the 'slots' of the object
- if so, then use this as index to assign
- if not, then add a new slot, and assign the new index
2007-11-28 18:43:09 +00:00
Ton Roosendaal
7154e84ee1 Images now have option to be tagged "convert to premul".
Option available in the Image (properties) panel.
2007-11-28 12:32:25 +00:00
Ton Roosendaal
36f7da7046 Tiny feature, but loadsa code, and big impact for the Blender riggers:
-> Constraint Influence Ipo now can be local, linked to constraint itself

You enable this in the IpoWindow header, with the Action icon to the left
of the Ipo Type menu. The button tooltips give the clue as well.

Tech note: the Ipo now can get directly linked to a constraint, and is
being called during regular pose constraint solving.
Actions (and drivers in actions) are being calculated *before* pose 
constraint solving. Result of actions then is written in bones, which
then solves the entire pose.
This means you can have a driver on both the constraint, as on the action
channel for the constraint! Not that I'm going to debug that easily :)

Additional fix: Joshua added a copy/paste IpoCurve feature, but he broke
the functionality to be able to paste in an empty ipo channel. That now
works again
2007-11-28 12:11:06 +00:00
Brecht Van Lommel
d53f147b7b Particles
=========

- Fix for bug in emission from vertices.
- Fix for undo/redo refresh glitch.
2007-11-27 16:16:47 +00:00
Brecht Van Lommel
64ef57c666 Particles
=========

- Fix crash with the cut tool and child particle drawing.
- Make the "Col" option to use material colors work for
  the path/hair visualisation type.
2007-11-27 14:12:56 +00:00
Brecht Van Lommel
da3c35db47 Particles
=========

- Bugfix: synchronize modifier enable with particle enable flag to
  prevent crash.
2007-11-27 12:34:59 +00:00
Brecht Van Lommel
01e2395e05 Particles
=========

- Fix for bug #7840: adding particle system to nurbs, curves crashes.
  Now simply doesn't allow to add a particle system to a non-mesh
  object, the current code does not support it.
- Fix for bug #7834: deleting vertices of an object with a particle
  system crashes. Fixed by disabling particle display for objects in
  editmode.
- Fix for the particle add brush on subsurfed objects.
2007-11-27 11:17:52 +00:00
Brecht Van Lommel
e39b5f790d Particles
=========

- Fix for bug #7832: boids physics crashed.
- Bugfix for child particles not getting orco texture coords.
- Allow smaller strand sizes in blender units.
- Fix for a common but harmless uninitialized value warning in
  valgrind, in the event queue.
2007-11-27 09:59:18 +00:00
Brecht Van Lommel
7da56f4a9b Particles
=========

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.
2007-11-26 22:09:57 +00:00
Ton Roosendaal
a8aaec6f21 Bugfix #7573
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)
2007-11-22 20:25:59 +00:00
Joshua Leung
00762be141 Patch #7779: Make the 'Hold' option work with NLA action modifiers
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
2007-11-21 04:49:13 +00:00
Ton Roosendaal
b7e0da6c3a Another feature request from the animation dept:
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. :)
2007-11-20 16:58:25 +00:00
Ton Roosendaal
0ec5942521 Tiny group-proxy update:
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.
2007-11-20 15:01:44 +00:00
Ton Roosendaal
1199744188 Revamp of multi modifier option!
- 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
2007-11-19 18:00:48 +00:00
Ton Roosendaal
7accd3a662 Long outstanding feature request: "Multi Modifier"
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...
2007-11-16 15:46:59 +00:00
Juho Vepsalainen
fd3764f9a4 = Fix for softbody collision mode selector =
This commit makes all softbody collision modes work as they should.

Thanks to Genscher for noticing the issue.

bjornmose, please check this commit.
2007-11-16 12:23:00 +00:00
Ton Roosendaal
33e5520ab3 Proxy fix:
Armature Proxy: the 'free pose channel' didn't restore the custom shapes
when reloading file.
2007-11-15 12:15:28 +00:00
Andrea Weikert
a219d6e238 - fix for crash with MSVC compiler, global array constraintsTypeInfo overwriting caused memory corruption
Aligorith: please check, I think fix is quite obvious though.
2007-11-14 21:19:49 +00:00
Matt Ebb
a1c5b3b51d * New feature on compo scale node: "Scene Size %"
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.
2007-11-13 23:53:58 +00:00