Commit Graph

8744 Commits

Author SHA1 Message Date
Campbell Barton
00f48914f3 code cleanup: missed r54603, arg reordering. 2013-02-17 04:35:50 +00:00
Campbell Barton
2e0017efd4 code cleanup: change order of args in void BKE_object_where_is_calc_time_ex() so extra arg is at the end (loose convention for *_ex() funcs). also some style cleanup. 2013-02-17 03:57:20 +00:00
Sergej Reich
500bc0c5e9 rigidbody: Fix [#34277] Deleting a copied bullet scene crashes blender.
Copying scenes didn't handle rigid body worlds previously.

Since we use groups to keep track of objecs in the rigid body sim it's
tricky to do the right thing here since groups aren't duplicated.
One option would be to create new groups and add the duplicated objects
into those but that has other drawbacks.
So the rigid body world isn't copied for now.

TODO find a better way of handling this.
2013-02-16 19:24:52 +00:00
Sergej Reich
86f7916767 Code cleanup, remove redundant function wrapper 2013-02-16 19:24:50 +00:00
Sergej Reich
fda8927d01 rigidbody: Further fix for background scenes
Since rigid bodies need their world to be be updated correctly we now
pass it alongside the parent scene in scene_update_tagged_recursive().

Add BKE_object_handle_update_ex() as well as other object functions
that take a RigidBodyWorld for this.

Ideally this shouldn't be needed but we'd have to restructure scene
handling for that. It's not a small taks however and definitely not
something that can be done before release.

Thanks to Campbell for review.
2013-02-16 16:17:45 +00:00
Sergej Reich
6072322312 rigidbody: Avoid unnecessary simulation updates
Now we flag the world for update on frame change and only call
BKE_rigidbody_do_simulation() when needed.
2013-02-15 23:48:36 +00:00
Brecht Van Lommel
bc29b766df Fix part of #34239: crash with cycles textured draw mode + dynamic topology sculpt. 2013-02-15 16:56:42 +00:00
Joshua Leung
4d32e9a49e Bugfix [#33970] Background Scene does not show animation of rigid body objects
This was caused by multiple instantiations of the same basic problem. The
rigidbody handling code often assumed that "scene" pointers referred to the
scene where an object participating in the sim resided (and where the rigidbody
world for that sim lived). However, when dealing with background sets, "scene"
often only refers to the active scene, and not the set that the object actually
came from. Hence, the rigidbody code would often (wrongly) conclude that there
was nothing to do.

For example, we may have the following backgound set/scene chaining scenario:
"active"  <-- ... <-- set i (rigidbody objects live here) <-- ... <-- set n

The fix here is a multi-part fix:
1) Moved sim-world calculation from BKE_scene_update_newframe() to
scene_update_tagged_recursive()
    + This is currently the only way that rigidbody sims in background sets will
get calculated, as part of the recursion
     - These checks will get run on each update. <--- FIXME!!!

2) Tweaked depsgraph code so that when checking if there are any time-dependent
features on objects to tag for updating, the checking is done relative to the
scene that the object actually resides in (and not the active scene). Otherwise,
even if we recalculate the sim, the affected objects won't get tagged for
updating. This tagging is needed to actually flush the transforms out of the
RigidBodyObject structs (written by the sim/cache) and into the Object
transforms (obmat's)

3) Removed the requirement for rigidbody world to actually exist before we can
flush rigidbody transforms. In many cases, it should be sufficient to assume
that because the object with rigidbody data attached has been tagged for
updates, it should have updates to perform. Of course, we still check on this
data if we've got it, but that's only if the sim is in the active scene.
   - TODO: if we have further problems, we should investigate passing the
"actual" scene down alongside the "active" scene for BKE_object_handle_update().
2013-02-15 11:49:22 +00:00
Campbell Barton
c6b3e0f8e4 style cleanup 2013-02-14 23:49:30 +00:00
Sergej Reich
10305de3ac Fix "Origin to Center of Mass" not working well with ngons
Now we do simple triangulation and calculate signed area of triangles to
account for concave polygons.

This only works correct for planar polygons but gives better results
overall.
2013-02-14 17:35:46 +00:00
Sergej Reich
e3944f5bfa Divide by 3 instead of multiplying by variations of 0.333
Fixes small precision problems.
2013-02-14 17:35:43 +00:00
Antony Riakiotakis
59a2ed19df Fix: Tiled image painting in image editor was broken for float canvas.
The mask was initialized using texture values, while it needed to be
opaque.
2013-02-14 15:44:09 +00:00
Ton Roosendaal
f5398f0fac Bug fix #34230
Error since July 2005, when DerivedMesh was introduced.

Vertex and Face duplicators now work for all modifiers. (not only deformers).
For example mirror and array modifier didn't work.
2013-02-14 14:01:48 +00:00
Campbell Barton
ab7ca2dc44 fix for double clicking in the text editor not working usefully (double clicking a pair chars would select 3 - one to the left). 2013-02-14 03:03:12 +00:00
Sergey Sharybin
7c3ce049ed Fix incorrect display of Sequence layer when rendering animation and
float/byte render results were mixed.
2013-02-12 11:45:16 +00:00
Campbell Barton
a867fbf026 check for divide by zero for dynamic paint modifier. 2013-02-11 15:43:09 +00:00
Campbell Barton
5da828317a error in own recent commit 2013-02-11 15:35:38 +00:00
Miika Hamalainen
203301e26e Additional smoke fix for r54464: floating point precision still sometimes produced way too high values. Now values are also clamped within correct range. 2013-02-11 15:03:22 +00:00
Miika Hamalainen
1647725913 Fix: smoke simulator flow sometimes produced NaN values, causing fire to disappear from the simulation. 2013-02-11 13:28:18 +00:00
Campbell Barton
30a18589e2 fix [#34200] Metaball Tessellate error 2013-02-11 13:07:26 +00:00
Sergej Reich
25c9b56c5a Suppress more uncommon units. 2013-02-11 07:12:15 +00:00
Campbell Barton
0ac2f6e7d7 fix for own bug - memory leak when cancelling weight gradient tool 2013-02-11 04:43:49 +00:00
Campbell Barton
971fca48ca supress Hectograms from being used when displaying weight units since they are not so common. 2013-02-11 01:14:45 +00:00
Peter Schlaile
1ba194aedd [#34013] [video sequence editor] Offset and crop of strips are wrong
Applied patch by jehan after confirming the issue.

Thanks for the patch!
2013-02-10 21:01:30 +00:00
Sergej Reich
4479d13236 rigidbody: Fix force field changes not invalidating cache 2013-02-09 10:04:27 +00:00
Sergej Reich
6738c941ff rigidbody: Relink constraints when duplicating objects
This will preserve constraint <-> rigid body realationships so
constraint setups aren't broken after duplication.

Based on a patch by Brandon Hechinger (jaggz), thanks.
2013-02-09 10:04:25 +00:00
Brecht Van Lommel
32a6a3eb63 Fix #33747: do better backwards compatibility for image transparency changes.
The use alpha option moved from the texture datablock to the image, and now it
will duplicate the image datablock in case you have one texture using alpha and
the other not.
2013-02-08 15:56:14 +00:00
Sergey Sharybin
95bca1c6bc Small UI annoyance: proxy build progress could is incorrect in some cases 2013-02-07 14:15:30 +00:00
Campbell Barton
296444e1dc style cleanup: some warnigs & spelling. 2013-02-06 14:02:19 +00:00
Ton Roosendaal
f0ce8a563d Bugfix #34046
Linked Armature with local proxy, using feature "Custom shape at other bone" stopped working
on undo/redo.

It was actually a bug in the original commit (r26600, april 2010), storing a pointer from 
the library bone into the local proxy bone.
That's strictly forbidden in Blender, but it never showed up because on every undo-redo a 
complete proxy-sync was called again. To allow undo/redo I had to disable this syncing, 
except for file load. Hence the feature got lost :)

The fix is simple; just store the pointer to its own local bone instead.
2013-02-06 12:16:53 +00:00
Campbell Barton
441c7fb79a fix for crashes running some operators in background mode and some divide by zero errors. 2013-02-06 02:48:03 +00:00
Thomas Dinges
2fc46efbd6 Compositor:
* Bump BLENDER_SUBVERSION to "10", to reflect changes in r54304. (Compositor Translate Node)
2013-02-05 15:01:08 +00:00
Brecht Van Lommel
1ca0d66bd2 Fix particle child render resolution access not working outside of the render thread,
and rename ToggleRender to set_resolution to follow RNA conventions.
2013-02-05 13:33:54 +00:00
Sergey Sharybin
48cfe610db Tracking settings for new clip didn't match default reset 2013-02-05 13:10:26 +00:00
Sergey Sharybin
fdfa5910b5 Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashes
Issue was caused by couple of circumstances:

- Normal Map node requires tesselated faces to compute tangent space
- All temporary meshes needed for Cycles export were adding to G.main
- Undo pushes would temporary set meshes tessfaces to NULL
- Moving node will cause undo push and tree re-evaluate fr preview

All this leads to threading conflict between preview render and undo
system.

Solved it in  way that all temporary meshes are adding to that exact
Main which was passed to Cycles via BlendData. This required couple
of mechanic changes like adding extra parameter to *_add() functions
and adding some *_ex() functions to make it possible RNA adds objects
to Main passed to new() RNA function.

This was tricky to pass Main to RNA function and IMO that's not so
nice to pass main to function, so ended up with such decision:

- Object.to_mesh() will add temp mesh to G.main
- Added Main.meshes.new_from_object() which does the same as to_mesh,
  but adds temporary mesh to specified Main.

So now all temporary meshes needed for preview render would be added
to preview_main which does not conflict with undo pushes.

Viewport render shall not be an issue because object sync happens from
main thread in this case.

It could be some issues with final render, but that's not so much
likely to happen, so shall be fine.

Thanks to Brecht for review!
2013-02-05 12:46:15 +00:00
Campbell Barton
9ddf928dbd remove stringify macro from alloc's 2013-02-05 09:42:40 +00:00
Sergej Reich
e9ef8d6eff rigidbody: Avoid always making passive objects kinematic
It's only needed when they're being transformed.
Also deactivate passive objects after transformation so they don't keep
acitvating deactivated objects.

Fixes issues with using "start deactivated".
2013-02-04 23:50:38 +00:00
Sergej Reich
ace88b6962 rigidbody: Fix [#34108] Rigid body with no polygons crashes blender
Fall back to using box shape in case creating shape from mesh fails.
2013-02-04 23:50:36 +00:00
Sergej Reich
ae27a548f8 rigidbody: Fix [#34106] Deleting an object with Bullet Constraint crashes Blender
Constraints are deleted before rigid bodies so need to check if constraint
exists in case both the constraint and ridid body are on the same object.
2013-02-04 23:50:31 +00:00
Campbell Barton
9d713688ba code cleanup: warnings 2013-02-04 16:20:39 +00:00
Campbell Barton
29a15f287f fix [#34098] Crash after using Decimate or Remesh modifiers
converting a derived mesh to a mesh didnt clear its selection history, which could be invalid after applying a modifier.
2013-02-04 11:28:31 +00:00
Campbell Barton
69993c5d40 style cleanup: spaces -> tabs 2013-02-04 00:18:09 +00:00
Campbell Barton
518bfbb1c9 style cleanup 2013-02-02 04:58:03 +00:00
Brecht Van Lommel
496c3e4f8f Fix #34070: set origin operator did not work for lattice objects. 2013-02-01 15:17:39 +00:00
Sergey Sharybin
7dc33e3ef8 Move opencl and reigidbody from source/blender/ to intern/
This modules does not depend on any blender-specific data
structures or algorithms and due to our policy better be
placed to intern/

Shall be no functional changes, tested CMake and SCons on
Linux, hopefully other platforms will work as well.

P.S. SVN history shall be preserved for the files.
2013-02-01 06:24:49 +00:00
Campbell Barton
b77eccf801 patch [#33985] Added FModifierEnvelope control_point add remove to API
from Peter Staples (batfinger)
2013-01-31 08:19:11 +00:00
Campbell Barton
54223ed05b Add active region for operator execution.
This means you can for example, uv unwrap in quad-view and change settings in the toolbar without defaulting back to the first quad-view region available. 

This may be displayed to the user later, for now this is set on executing registrable operators.
2013-01-30 12:22:02 +00:00
Miika Hamalainen
e9678e74b0 Fix [#34008]: Scaling Smoke Domain In Z-Axis Crashes Blender
Also as minor change skip base_res update on domain step if adaptive domain isn't enabled.
2013-01-29 19:27:05 +00:00
Sergey Sharybin
6d4a6b957c Fix #34009: multi user curves + deform modifier behavior
Issue was caused by storing BB calculated from final displist in
Curve datablock and not having Object's BB at all. This is not
clear at how could have been worked for so long.

Changed it so Curve's BB is calculated from non-deformed displist,
which matches BKE_object_min_max and BKE_curve_texspace_calc and
made it so Object's BB would be calculated from final displist.
2013-01-29 08:21:21 +00:00
Joshua Leung
004d0a3a9a Whitespace 2013-01-29 01:23:29 +00:00