Commit Graph

10808 Commits

Author SHA1 Message Date
Kent Mein
86278584f3 Tweaks I needed to get blender compiling on my new macbook running leopard.
Kent
2007-11-05 17:27:11 +00:00
Kent Mein
9c33c9522f Tweak for MSVC2005 people:
http://www.blender.org/forum/viewtopic.php?t=12408

Kent
2007-11-05 16:46:48 +00:00
Brecht Van Lommel
1b9d661eca Mesh Deform Modifier
====================

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.
2007-11-04 22:00:24 +00:00
Ton Roosendaal
044ae7f82f A different approach for the new driver option: it now uses pose-space
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?
2007-11-04 19:41:21 +00:00
Ton Roosendaal
f996607632 New driver option for the poor suffering riggers:
"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!
2007-11-04 17:14:39 +00:00
Chris Want
034138b597 Bug fix to handle extruding with a mirror modifier, now that axes are
specified with a bitmask rather than only operating on a single axis.
This is a reworking of the fix done in blender 2.42 that was mentioned
in the sixth on item on this page:

http://www.blender.org/development/release-logs/blender-242/mesh-tools/
2007-11-04 02:25:32 +00:00
Joshua Leung
5baf3bd490 Typo fix for my previous commit... wrong-sized array was being allocated, but somehow this still managed to work fine last night. 2007-11-02 03:00:35 +00:00
Martin Poirier
c3cc13e71b == utils ==
New listbase functions:
	void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink);
		- corrolary to insertlinkbefore
		
	BLI_sortlist(struct ListBase *listbase, int (*cmp)(void *, void *));
		- simple in place sorting method. NOT optimized, so use for small lists only. Uses a variant of insertion sort (I was lazy, people should feel free to rewrite).
2007-11-01 21:44:41 +00:00
Brecht Van Lommel
0ca5c98f23 Hinge Bone Transform
====================

This changes the way hinge bones are transformed when their parent bones
are also selected. Before it just disabled transform for these, now they
are rotated and scaled as well, but without influencing the transform
center, which gives behaviour as if they were regular bones.
2007-11-01 12:55:47 +00:00
Brecht Van Lommel
c5d2be76d7 IK
==

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.
2007-11-01 12:40:46 +00:00
Joshua Leung
aa7c13c9a0 Bugfix - Ipo-Editor Scaling:
When scaling all the control-points in the IPO Editor with negative scales, the control-points would end up "sticking together", and cancelling/undo would not help.
2007-11-01 11:40:56 +00:00
Joshua Leung
1b4ca6d1bd Bugfix #7639: Visual Rot keyframing not working properly
When using targetless-ik, the offset in rotation of the final transform from the rest-position was being incorrectly calculated. 

Now, visual-rotation keyframing uses the space-switching code I wrote for constraints, to calculate the value to keyframe. So far, it seems to work quite well. 

As the constraint space-switcher correctly handles hinged bones too (I think it should!), I've also removed the restriction of only allowing visual-rotation keying on bones that didn't have hinge set.
2007-11-01 11:08:07 +00:00
Matt Ebb
0edb5983ec * Two usability tweaks in adding objects, with user prefs
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.
2007-10-31 21:55:06 +00:00
Diego Borghetti
95300bac58 Fix typo in "#include" file. 2007-10-31 16:28:07 +00:00
Ton Roosendaal
10680b34f2 New feature:
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/
2007-10-31 13:56:07 +00:00
Joshua Leung
2ae5da3fc2 == Copy Scale Constraint - Offset ==
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.
2007-10-31 10:04:57 +00:00
Joshua Leung
0fb83a87b9 == Copy Rotation Constraint - Peach (Cessen) Request ==
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).
2007-10-30 11:18:50 +00:00
Joshua Leung
b617c191aa Bugfix #7685: Stamp info displays incorrect label for scene.
Copy+Paste error, wrong prefix used. Patch provided by Malcolm Tredinnick (malcolmt)
2007-10-30 05:58:25 +00:00
Joshua Leung
20905354fc Bugfix: "exploding candy"
Missed a case where I converted set_constraint_target incorrectly. This resulted in mancandy "exploding" on loading proxy-linked mancandy files.
2007-10-30 05:22:46 +00:00
Hamed Zaghaghi
ef9ead78f2 GE Patch(#7684) by Ovidiu Sabou, Speedup patch for GE in OpenGL Display Lists. 2007-10-29 19:41:25 +00:00
Juho Vepsalainen
d6db819a83 Crop Compositing Node:
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.
2007-10-29 14:37:19 +00:00
Ton Roosendaal
8a3f926938 Stampinfo: added correct redraw after adding stamp.
The issue: while renderprogress is in use, the rr->renlay has to be set
2007-10-29 13:11:42 +00:00
Campbell Barton
6405ed8d3c - handle size on last commit was incorrect at times, intended
functionality now works
- sequencer transform markers now redraws other views
2007-10-29 10:59:26 +00:00
Ton Roosendaal
13cff52e84 Small fix:
Commit I did in March (10378) tried to fix typedef callback for Group
nodes, but it missed a case, causing group node display to be wrong on
load (only first drawing was wrong).
2007-10-29 10:48:50 +00:00
Joshua Leung
e448f20db5 Routine purge of compiler warnings. Yet again, they were mostly uninitialised vars. 2007-10-29 05:59:26 +00:00
Joshua Leung
2c5287df04 Bugfix #7629:
Version patch for Constraints Refactor I was getting called for too many cases. This was noticeable in the way the StretchTo constraint got reset on loading.
2007-10-29 05:26:53 +00:00
Campbell Barton
7718b3d642 render stamp drawing is now done everywhere - (not just when saving
images)
separated stamp metadata and stamp draw functions.
2007-10-28 22:27:07 +00:00
Campbell Barton
47da2813d8 sequencer strip selection didnt work well for verry thin strips.
Improved the logic that deciedes when to select handles.
2007-10-28 16:00:23 +00:00
Joshua Leung
04be929b88 Bugfix #7674: Making proxy from linked armature ruins local armature
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)
2007-10-28 01:01:46 +00:00
Andrea Weikert
5315f368cd == imagebrowser ==
* added support for .dds image files
* added support for .int, .inta and .rgba image files

== MSVC 7.1 project files ==
* added WITH_DDS to support .dds files when compiling with the project files by default
* added the dds source files to imbuf project
* also added CMP_glare, CMP_lensdist, CMP_tonemap nodes to nodes.vcproj
2007-10-27 10:06:03 +00:00
Campbell Barton
0e94605a90 ==Python API==
layerMask access for pose bones, even though this is a Bone property, its much more convenient to add access from the poseBone, it also matches how the 
user interface works.
2007-10-26 22:38:15 +00:00
Campbell Barton
ddb8120e03 fix for msvc 2007-10-26 22:11:08 +00:00
Ken Hughes
38e7c267a6 Replace ceilf()/floorf() with ceil()/floor() to fix VC7 compilation problems
reported by Stephane Soppera.
2007-10-26 20:04:04 +00:00
Ken Hughes
135b16662d Python API
----------
Document Peter's fps_base attribute for scene rendering objects; also remove
framesPerSecBase() method (preference is to add only attributes, and he did
add fps_base attribute).
2007-10-26 19:53:55 +00:00
Campbell Barton
2a2453d3e2 nodes from eechlo
* 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.
2007-10-26 15:32:36 +00:00
Joshua Leung
83eba96db2 Whitespace commit 2007-10-26 11:37:29 +00:00
Campbell Barton
ef85f6ea21 ==Python API==
layerMask access for bone and armatures
Window.PoseMode() similar to Window.EditMode()
2007-10-26 08:19:40 +00:00
Campbell Barton
fd98d38672 fix for valgrind warning - strcpy was trying to copy to/from the same value (aparently this can corrupt the value in some cases)
Fixed problem where hidden curve handles could still be transformed.
2007-10-25 20:30:18 +00:00
Campbell Barton
5007d95572 ==Curve Editing==
Curve select lasso and border didnt work with hide handles enabled.

Hiding handles was using the scene->selectmode variable, but looking at this now, I see there are places where selectmode is compared with 
SCE_SELECT_VERTEX, EDGE, FACE etc. as well as being.
Better to use a global flag, same as G_DRAWFACES.
This is not good since anyone using this in the few days will have an invalid selectmode variable. simple way to fix is to change modes, so do_versions shouldnt be needed.
2007-10-25 15:23:52 +00:00
Brecht Van Lommel
a9590ffaa7 Fix for pole target commit, broke blenderplayer compile. 2007-10-25 15:19:06 +00:00
Campbell Barton
86b38473a1 checkers being drawn as many glRects is slow when zoomed in, use
glPolygonStipple draw checkers.
2007-10-25 09:37:52 +00:00
Campbell Barton
cbcaa31909 ==UV/Image Window==
nice alpha grid drawing. dont follow image.
2007-10-24 21:51:49 +00:00
Martin Poirier
16637204fd [#7531] Linked Flat Faces doesn't work anymore
Modifier checks weren't done properly, so it fell into edge_flip instead.
2007-10-24 19:25:34 +00:00
Campbell Barton
6c54cd87ce * Changing images in the UV view didnt work properly - reported as bug 7467 (own error, broke on UV in editmode conversion)
* when setting the face, images with alpha's will set the texface's alpha option. 
* added a draw even to redraw view3d and uv/image view - so the Draw Faces button redraws properly.
* made a macro for checking if the object will draw with textures
* textured meshes in editmode only draw a selected face overlay (otherwise the entire mesh would get a plue tint wich isnt 
nice for viewing textures), the selected highlight is still there, this is how Face/UV mode looked.
* Alpha clipping STILL had a case where it wasnt disabled and the interface had its alpha clipped, this should be fixed now.
2007-10-24 18:58:26 +00:00
Brecht Van Lommel
30be716fc8 Pole Target for IK
==================

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.
2007-10-24 14:58:31 +00:00
Campbell Barton
7922496183 ==Sequencer==
added an option to reload selected strip data (Alt+R - same as reloading images in the imaeg 
viewer)
made the sequencer max memory limit 16gig for 64bit's.
2007-10-24 13:12:07 +00:00
Matt Ebb
a9110ee033 * Adaptive QMC AO feature - "Adapt from speed vectors"
This is a new feature that can make using AO a lot more attractive when rendering 
animations with vector blur. It uses the speed vector info calculated in the 'Vec' 
speed vector pass, in order to reduce AO samples where pixels are moving more 
quickly. There's not much point calculating all those AO samples when the result is 
going to be smeared anyway, so you can save a bit of render time by doing 
a more noisy render in those areas.


You can use this with a new slider in the Adaptive QMC settings 'Adapt Vec'. The 
higher the value, the more aggressively it will reduce samples. 0.0 means no 
reduction, and 1.0 reduces one sample per pixel of average displacement for that 
pixel. 0.25 or so generally gives decent results, but it depends on how fast things 
are moving.

Here's a demo (compare the final blurred result, and render times):
http://mke3.net/blender/devel/raytracing/adapt_speed_off2.jpg
http://mke3.net/blender/devel/raytracing/adapt_speed_on2.jpg

And a less contrived example, a short clip from macouno's 'petunia' bconf animation:
http://mke3.net/blender/devel/raytracing/petunia-adaptvec-noblur-h264.mov
http://mke3.net/blender/devel/raytracing/petunia-adaptvec-blur-h264.mov
2007-10-24 12:42:08 +00:00
Campbell Barton
14bbff61fe set the alpha value of text, so stamps are always visible in RGBA
images, (reported by basse)
2007-10-24 11:16:48 +00:00
Joshua Leung
2339eacce8 PyConstraints Bugfixes (again!):
Files saved with PyConstraints with multiple targets crashed on load, as the targets didn't actually get saved.
2007-10-24 10:03:19 +00:00
Campbell Barton
f25629932a ==Unfolder python script update==
Patch from Matthew Chadwick (celeriac) [#7603] fix for bug#7520
Replaced overlap detection code with code using Geometry.LineIntersect2D
2007-10-24 09:02:58 +00:00