Commit Graph

5395 Commits

Author SHA1 Message Date
f6733d90e5 bugfix [#25523] Face extrude will crash Blender if array and subsurf modifier are added to mesh object
test_index_face() failed to fix indices like (6,0,0,6), making it (0,6,6,0).
2011-02-09 03:49:59 +00:00
5e1eb9b4d3 SVN maintenance. 2011-02-09 03:48:40 +00:00
3e8ddef8e5 move validation into blender kernel so it can be called by internal modifier funcs more easily. 2011-02-09 02:28:11 +00:00
f56d1a5e2c Old animation conversion code cleanups:
- Tidying up some inconsistent formatting
- Names of old IPO blocks are now included in the names used for new
actions. These are included after a "CDA:" prefix, (i.e.  "_C_onverted
_D_ata _A_ction:"), which makes it easier to browse through these
actions later.
2011-02-09 01:16:11 +00:00
aff23c92cc Bugfix [#25990] backward compatibility with ShapeKey Actions :: 2.49
-> 2.50

Actionified ShapeKey IPO-blocks (i.e. "Shape Key Actions") would have
an action channel with the hardcoded name, "Shape", and this action
would be assigned to Object level (although ShapeKey blocks had their
own IPO-block slot, only Objects could have actions, so actionifying
ShapeKey IPO-blocks would wrap a ShapeKey block's IPO's to an Object-
level action).

Hence, the path conversions code would wrongly interpret this action
channel as referring to a Pose Channel instead, thus creating some
invalid paths with a 'pose.bones["Shape"]' prefix wrongly getting
tacked on. To ensure that the converted animation can work out of the
box, a 'data.shape_keys' prefix is now used instead so that these
actions can still be Object-rooted while still being able to correctly
control the Shape Keys. This is because there's no easy way to
identify and then shift such action from Object-level to ShapeKey-
level within the conversion code. The consequence though is that such
converted ShapeKey actions CAN ONLY BE USED THROUGH OBJECT LEVEL (i.e.
via Action NOT ShapeKey editor).

Secondly, the Action/ShapeKey editor version patching code has been
modified so that if a ShapeKey editor view was active when loading an
old 2.4x file, the action gets cleared from the view. This is because
of this didn't make semantic sense: the ShapeKey editor is for
ShapeKey-rooted actions, while the Action Editor is for Object-rooted
actions. The converted files though let Object-level actions be shown
in either one.
2011-02-09 00:51:30 +00:00
Lukas Toenne
24db3d17aa Per-type node labels and customizable names. The label displayed in the node header is now by default the node type string. A custom label callback can be implemented to display more detailed information. This is currently used by group nodes, which display their internal tree name, and math, vector math, mix and filter nodes, which use their internal operation sub-type. Also the node tree selection/naming box for groups is now displayed only on open groups, to make it clearer that this is the internal type of the group and get a cleaner main tree. 2011-02-08 12:54:32 +00:00
Lukas Toenne
37f55ec194 Group node type info is now also initialized with helper functions. 2011-02-08 09:14:18 +00:00
Lukas Toenne
803c7fb4d4 Finished the node type definition cleanup started in r34682. All static node types should now use the node_type_* definition helpers to initialize their bNodeType structs. 2011-02-08 09:02:16 +00:00
9d6f9e74d4 Bugfix [#25814] ChildOf constraint: double transformation in object
mode with drivers

ChildOf constraints added using the PoseBone.constraints.new() method
via Python scripts instead of using the operator (this latter method
is still the preferred/recommended method) were not getting some
critical flags set, causing errors arising from space conversions
being performed more than once.
2011-02-08 05:51:20 +00:00
0242a96f3b Change in behavior to shrinkwrap modifier's offset value with negative enabled.
- negative ray casts would invert the offset direction.
  this meant if positive and negative were enabled at once and the mesh was slightly inside & outside the object it wrapped,
  the offset would be applied in opposite directions.
  This way the offset is always along the vertex normal.

- allow negative offset from RNA, could be useful and no benefit to disable.
2011-02-08 02:09:59 +00:00
98268ba40f fix [#25801] Shrinkwrap Offset problems with Project mode.
The positive result from the previous ray-cast is used again, inadvertently negating the offset from the first hit (acts as if no offset is applied).
2011-02-08 01:43:16 +00:00
1befe8ba4a un-initialized flag used with commit r34695. 2011-02-08 00:18:00 +00:00
0d8416acc7 minor edits, no functional changes.
- BGE was getting MCol array and not using it.
- use list lookup functions for getting constraint from pose bone.
- use const char * in more places.
2011-02-07 22:48:23 +00:00
5c421c328e Todo/feature request
When using masks or other simple 3D elements in composites, doing
a layer re-rendering on a node is a bit clumsy all the time.

This commit does two things to help:
- new hotkey "Z" in node editor automatically finds render layer
  that changed and re-renders it + composites
- option "Auto Render" does same, but then after every transform
  edit in 3D window

The latter is experimental; real & proper system for this requires
full threaded render support (like previews). But it works!

Demo file:
http://download.blender.org/demo/test/auto_composite.blend

Important fix:
After any render, all the render layers were tagged "changed", which
caused any edit to first totally recomposte everthing. Now it only
composites changes.

Implementation notes

- DAG scene flush now sets 'changed' flags in render layer nodes
- Added notifier for 'transform finished' to trigger the update,
  this is temporarily.
2011-02-07 16:41:57 +00:00
bd023c443b remove mat_nr from MVert struct, saves 4 bytes per vertex.
used to be used for halo's
2011-02-07 13:02:44 +00:00
926f168e44 AnimSys Todo: Scene/CompoNode Driver Hacks
Drivers for Scene, World, and Compositing Nodes now "work" (well,
sort-of)! Previously they were strictly restricted to object-
accessible data only; now they can function across the board (give or
take some weak spots).

Although there is still no depsgraph support so that these properties
update properly when their source controls are changed (this will
probably require a lot more work), they can still update under other
circumstances (i.e. frame change and/or manual refresh flushing via
mouse movement, etc.)

As the depsgraph tagging support is lacking, these just get always
executed for now, which might potentially be quite sluggish, though it
is hoped that there are so few of these top-level datablocks with
drivers hooked up that this is barely an issue in practice. At least I
haven't noticed any substantial slowdowns for animation playback, so
it should probably be fine.
2011-02-07 12:28:04 +00:00
44fb6bd1fa Hair ui simplification:
* There were a lot of settings in the particle panels that made no sense for simple hair and only cluttered up the ui.
* Now these settings are hidden by default unless "advanced" hair options are shown.
* Without advanced options the particle velocity controls are replaced by a simple "hair length" value, which actually corresponds to the grown hair length in blender units.
* Some hair effector options that are actually very useful were not shown in ui. These are now found in the "field weights" panel.
2011-02-07 11:43:33 +00:00
cddaa815d6 Fix for [#25955] Hair paths under force field influence look jagged
* Effectors were applied wrong for hair.
2011-02-07 10:54:55 +00:00
Lukas Toenne
2070356a32 A simplified way of defining bNodeType structs. Instead of doing full struct member initialization for each node, this uses a couple of helper functions now. This will make it easier to change and extend the bNodeSocket interface in the future. Two examples (normal and mapping shader nodes) included, the rest should be converted too. 2011-02-07 09:33:36 +00:00
ad8c79405a Type checks for internal ID-Property UI min/max/tip & use defines to get values from ID-Props.
Probably wouldn't cause a problem but manually editing these types through python could easily crash blender.

also changed cmake, stub-makefile default build dir to be lower case and leave out architecture string, easier for documentation.
Use ../build/linux/ rather then ../build/Linux_i686/
2011-02-07 05:05:41 +00:00
a018bfba9a comment unused var 2011-02-07 01:45:52 +00:00
216f9af08e Two in one:
- Bugfix #25937
  Child-of constraint now behaves like regular parent-child
  relationship when all options are set. This prevents the 
  errors that can happen when decomposing non-uniform matrices.

- Todo item
  The area corner hotspots for splitting/merging were far too
  narrow. Now it uses a circular distance to detect whether
  the hotspot is active. Also cleaned up drawing code for it.
2011-02-06 17:36:42 +00:00
0ea9271f43 Bug fix: Particles in dupligroups were mostly drawn properly in 3d view, but rendering them was a real mess.
* After countless different bugs particles should now render correctly inside dupligroups.
* Only particles with metaball visualization are still problematic, this is mostly due to the ancient metaball code.
* I'll also add a test file for some of the situations, so that hopefully these cases stay fixed :)
2011-02-06 15:50:00 +00:00
dbce60448f This fixes: [#25608] Video Sequence Editor: problem using cut on a strip with a custom proxy file. 2011-02-05 15:11:29 +00:00
04299657a7 Raytrace modifications from the Render Branch.
These should not have any effect on render results, except in some cases with
you have overlapping faces, where the noise seems to be slightly reduced.

There are some performance improvements, for simple scenes I wouldn't expect
more than 5-10% to be cut off the render time, for sintel scenes we got about
50% on average, that's with millions of polygons on intel quad cores. This
because memory access / cache misses were the main bottleneck for those scenes,
and the optimizations improve that.

Interal changes:

* Remove RE_raytrace.h, raytracer is now only used by render engine again.
* Split non-public parts rayobject.h into rayobject_internal.h, hopefully
 makes it clearer how the API is used.
* Added rayintersection.h to contain some of the stuff from RE_raytrace.h
* Change Isect.vec/labda to Isect.dir/dist, previously vec was sometimes
  normalized and sometimes not, confusing... now dir is always normalized
  and dist contains the distance.
* Change VECCOPY and similar to BLI_math functions.
* Force inlining of auxiliary functions for ray-triangle/quad intersection,
  helps a few percentages.
* Reorganize svbvh code so all the traversal functions are in one file
* Don't do test for root so that push_childs can be inlined
* Make shadow a template parameter so it doesn't need to be runtime checked
* Optimization in raytree building, was computing bounding boxes more often
  than necessary.
* Leave out logf() factor in SAH, makes tree build quicker with no
  noticeable influence on raytracing on performance?
* Set max childs to 4, simplifies traversal code a bit, but also seems
  to help slightly in general.
* Store child pointers and child bb just as fixed arrays of size 4 in nodes,
  nearly all nodes have this many children, so overall it actually reduces
  memory usage a bit and avoids a pointer indirection.
2011-02-05 13:41:29 +00:00
90cf78eb54 Fix bones moving when changing between editmode and posemode.
Patch #25901 by Tobias Oelgarte.

Bone transformations would be converted back and forth between different
representations when changing modes, which due to numerical errors could
lead to bone transformations slowly changing as you edit the armature.

Now the editmode head, tail and roll values are stored in bones and used
directly when entering edit mode. Head and tail were already there but
now we ensure they are the exact same value, roll was not yet there, so
we have a version patch for it.

The sub version was incremented to 1 for the version patch.
2011-02-05 13:19:14 +00:00
4925581820 Fix #25933: Drag Dog stroke method uses Jitter if set for other stroke method, but no jitter available.
Manually disable jitter usage for anchored and drag dot brush stroke metdhods.
Jitter slider is hidden in UI for this strokes so users can't set it to 0 by hand
and even if this slider would be visible in UI jitter gives wierd result for
this stroke methods.
2011-02-04 16:10:30 +00:00
4e8a8d1e8f Improvements for particle grid distribution:
* Particles that aren't shown are now actually deleted (huge memory savings for flat objects).
* Grid distribution for flat objects is now done on the surface object surface without offset.
* Invert grid option wasn't in ui and it didn't work for non-volume grids.
* New parameter to randomize the grid point locations.
* Resolution soft/hard limits changed to even 50/250.
2011-02-04 15:48:13 +00:00
c57cd7c5bd bugfix for setting the worldspace matrix of an object which used quaternion rotation and deltas, was subtracting the values rather then multiplying by the inverse.
effected 'Apply Visual Transform' & pythons obj.matrix_world = mat
2011-02-02 01:01:01 +00:00
95df65f1b5 - some parts of the code to remove rotation were not removing axis/angle rotation (only functional change of this commit).
- use BLI_math functions for removing rotations from objects and pose channels.
- add unit_axis_angle() to avoid setting the Y axis inline anywhere rotation needs removing.
2011-02-02 00:40:55 +00:00
bc36e39c23 fix issue #2 raised by report: [#25894] Problems with properties across files 2011-02-01 21:24:59 +00:00
ffe7bde02c correct fix for bug #23871, __main__ module was being overwritten in nested functions, so on returning from calling operators the __main__ module could be cleared and imported modules turn into None
calling
  bpy.ops.wm.read_factory_settings()
... would clear a scripts namespace if running directly, not in a module.


Fix by backing up and restoring the __main__ module.

Also found BKE_reportf wasnt printing all reports in background mode as BKE_report() was doing.
2011-02-01 12:37:53 +00:00
6fcc13a786 disable assert [#25877] Driven shapekeys: incorrect assertions in depsgraph.c 2011-02-01 00:41:15 +00:00
329e2d8037 Todo issue: sculpting on deformed mesh
Used a crazyspace approach (like in edit mode), but only modifiers with
deformMatricies are allowed atm (currently shapekeys and armature modifiers only).
All the rest modifiers had an warning message that they aren't applied because
of sculpt mode. Deformation of multires is also unsupported.

With all this restictions users will always see the actual "layer" (or maybe
mesh state would be more correct word) they are sculpting on.

Internal changes:
- All modifiers could have deformMatricies callback (the same as deformMatriciesEM but
  for non-edit mode usage)
- Added function to build crazyspace for sculpting (sculpt_get_deform_matrices), but it
  could be generalized for usage in other painting modes (particle edit mode, i.e)

Todo:
- Implement crazyspace correction to support all kinds of deformation modifiers
- Maybe deformation of multires isn't so difficult?
- And maybe we could avoid extra bad-level-stub for ED_sculpt_modifiers_changed
  without code duplicating?
2011-01-31 20:02:51 +00:00
14d8921fff Total displacement levels should be set in multires_topology_changed 2011-01-30 17:55:48 +00:00
d5da54e1e6 bugfix #25867
fix for objectspace bumpmapping
2011-01-30 16:24:23 +00:00
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
c709524dc9 new bumpmapping options for the renderer
oldbump -> original
newbump -> compatible
 *new*	-> default (3tap)
 *new*	-> best quality (5tap)

the latter two have an option to apply bumpmapping in 
 viewspace - much like displacement mapping
 objectspace - default (scales with the object)
 texturespace - much like normal mapping (scales)
2011-01-29 11:56:11 +00:00
73f48ef3f8 Fix for [#25843] Multiple Scene Strip in Sequencer, bad scrubbing for armatures in viewport
* Sequencer didn't restore the scene properly after drawing a frame other than the current frame.
2011-01-28 13:14:01 +00:00
53b83262c5 Fix for [#25713] VSE shows and renders wrong straight alpha gradient even after convert to premul is checked
* Caching of the start and end stills were just referencing the original imbuf (which got premultiplied after the caching), so as a result most of the time the premul was applied twice.
* Now the start and end stills are stored in the cache as duplicates of the original (non modified) imbuf.
2011-01-28 00:59:42 +00:00
a68a44817a More logical ordering of Empty draw types. Made Plain Axes default for
new empties
2011-01-27 21:05:01 +00:00
ba9dacbd3d Silly mistake in own previous commit, now we have particles again! 2011-01-27 17:29:22 +00:00
ce7f7d6e5f r34526 removed a line which had an unused return value but still needed to run. 2011-01-27 12:36:48 +00:00
8fa9a91639 Fixing some clang reported issues in particle code.
* Not really bugs, but some code cleanup and clarification.
2011-01-27 12:21:14 +00:00
18aece4424 Bugfix [#25823] When objects are parented to the same objects that
they have some rotation-affecting constraint (i.e. Track To and Copy
Rotation) targetting, transforming the objects (directly, using GKEY
-> grab) becomes unreliable.

This was caused by a typo in some code checking for some
OB_NO_CONSTRAINTS under "flag" instead of "transflag"
2011-01-27 01:29:40 +00:00
50e09b15a9 Bugfix [#25707] / Todo Item: "Local Space" for Object constraining
For Constraints, there's now a working "Local" Space for Objects
without parents. This is defined as relative to the object's rotated
set of axes which results from rotation that gets set via "rotation"
transform properties.

I'm not sure whether this different behaviour between parented and
unparented objects will be too confusing (and thus require separate
settings + a round of version patching), so I'll wait until we get
proper testing from experienced riggers first.
2011-01-26 23:33:08 +00:00
0fb785aaa7 Removing some old stuff from old animation system that isn't needed
anymore (shapekeys stuff)
2011-01-26 22:01:51 +00:00
307c10486d Fix for [#25797] Hair partcle crash when vertexgroup length enabled
* Rounding errors could give vgroup weights of slightly over 1.0 to particles in some cases.
2011-01-26 13:02:47 +00:00
0f375d8980 Fix for [#25781] Bake cache for particles fails at end , ALT + A not
* Missing check for info frame (frame 0).
2011-01-25 17:08:43 +00:00
1bd0db59f4 use cmake defined names for jpeg, png, zlib and python libs, building on *nix with non-standard libjpeg/png/zlib locations was broken.
in the case of python this makes it easier to move to find_package(PythonLibs) when 3.x is supported.
2011-01-25 14:43:13 +00:00