Commit Graph

10681 Commits

Author SHA1 Message Date
b00c3b801b new weight paint draw option to display unweighted vertices with the option to check on the active group or all groups.
notes:
- vertices with zero weights are considered the same as vertices outside of a group.
- currently these show black but this can be made a theme color.
- multi-paint overrides this option (noted in description)
2013-02-22 04:09:04 +00:00
20220d47e3 Dependency Graph: some refactoring which should have no user visible impact
besides performance in some cases.

* DAG_scene_sort is now removed and replaced by DAG_relations_tag_update in
  most cases. This will clear the dependency graph, and only rebuild it right
  before it's needed again when the scene is re-evaluated.

  This is done because DAG_scene_sort is slow when called many times from
  python operators. Further the scene argument is not needed because most
  operations can potentially affect more than the current scene.

* DAG_scene_relations_update will now rebuild the dependency graph if it's not
  there yet, and DAG_scene_relations_rebuild will force a rebuild for the rare
  cases that need it.

* Remove various places where ob->recalc was set manually. This should go
  through DAG_id_tag_update() in nearly all cases instead since this is now
  a fast operation. Also removed DAG_ids_flush_update that goes along with
  such manual tagging of ob->recalc.
2013-02-21 19:33:04 +00:00
c84e4da7dd code cleanup: move 2d bevel list into its own function. (as with 3d bevel) 2013-02-21 17:16:51 +00:00
2f0eec488c rigidbody: Properly handle constrained objects not having rigid bodies
This is a pretty rare case that can be triggered by switching rigid body
and constraint groups before simulation was validated.
Code checked for existing physics objects but was missing else block.
2013-02-20 00:45:53 +00:00
3e5f6293b6 rigidbody: Don't run simulation if cache is baked
In rare cases this would allow the simulation to run before being
initialized (if cache is baked and reading cache fails after undo or
loading a file).
2013-02-19 20:04:08 +00:00
7f1ae2497b fix [#34275] Text autocomplete cuts words with accents or special characters
autocomplete is now unicode aware, using python api's checks for now. eventually we should have our own.
2013-02-19 16:13:41 +00:00
04d628a5b5 Another huge bunch of new UI translations (some reported by Leon Cheung, thanks!)... 2013-02-19 15:45:56 +00:00
e5a135e0b2 Fixes for alpha mode do_versions code
Before this change only old flag "Premultiply" was used to
detect alpha mode, which is not enough actually.

Now the logic here is:

- If "Premultiply" was enabled it is likely float image with
  straight alpha, which shall be premultiplied before usage.

  In this case image/sequence Alpha Mode is set to Straight.

- Otherwise use default alpha mode for image format based on
  an extension. This could fail in some cases like TIFF, but
  this wasn't handled fully correct in older blender anyway.

Initial discovered issue was that EXR images saved in older
Blender versions were set to Straight alpha mode, which is
obviously a straight way to lots of headache.
2013-02-19 08:37:08 +00:00
Alex Fraser
4e73ff0d63 Fix for [#34099] Particles leaking from moving meshes
This was caused by a floating point precision error. During collision detection, Newton-Raphson iteration is used to find the exact time of the collision. But when using subframes, the initial Newton step was too small. Now the initial step is given in absolute units. When subframes = 0, this should behave almost the same as before.

Thanks to Janne Karhu, Lukas Toenne and Ton Roosendaal for their help with this patch, and to AutoCRC for funding.
2013-02-19 02:24:52 +00:00
167dcc88c7 Force movie clips always use default alpha mode, before this straight
alpha was used for them which doesn't work for cleaned footage stored
in EXR file format.

Perhaps we need to support configurable alpha mode for clips, but
that's for later (maybe even after release),
2013-02-18 19:34:14 +00:00
5cc377022b Correction to r54600
Calculate dependent area based on distortion model rather than
using 15% of image resolution for this.

Some assumptions here:

- We're assuming real-life camera calibration is used here
- Maximal undistortion delta would be achieved on frame boundary
- Distortion fully goes inside frame

This makes it possible to approximate margin for distortion by
checking undistortion delta across frame boundary and use it
for dependent area of interest.

We do not use any formula-based equation here because we're likely
support other distortion models and in that case it'll be stupid
to try detecting formula here.
2013-02-18 10:12:44 +00:00
3e0725854c rigidbody: Fix regression in background scene fix
Since BKE_object_where_is_calc() might be called outside of
scene_update_tagged_recursive(), we need to fall back to the scene's
rigid body world.
2013-02-17 19:38:08 +00:00
c524b47912 Another huge bunch of UI translation fixes, mostly reported by Leon Cheung, Sv.Lockal, Gabriel Gazzán and Satoshi Yamasaki, thanks! 2013-02-17 13:56:49 +00:00
00f48914f3 code cleanup: missed r54603, arg reordering. 2013-02-17 04:35:50 +00:00
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
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
86f7916767 Code cleanup, remove redundant function wrapper 2013-02-16 19:24:50 +00:00
92436c94d3 Merged changes in the trunk up to revision 54594. 2013-02-16 18:38:03 +00:00
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
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
bc29b766df Fix part of #34239: crash with cycles textured draw mode + dynamic topology sculpt. 2013-02-15 16:56:42 +00:00
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
c6b3e0f8e4 style cleanup 2013-02-14 23:49:30 +00:00
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
e3944f5bfa Divide by 3 instead of multiplying by variations of 0.333
Fixes small precision problems.
2013-02-14 17:35:43 +00:00
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
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
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
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
a867fbf026 check for divide by zero for dynamic paint modifier. 2013-02-11 15:43:09 +00:00
5da828317a error in own recent commit 2013-02-11 15:35:38 +00:00
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
1647725913 Fix: smoke simulator flow sometimes produced NaN values, causing fire to disappear from the simulation. 2013-02-11 13:28:18 +00:00
30a18589e2 fix [#34200] Metaball Tessellate error 2013-02-11 13:07:26 +00:00
25c9b56c5a Suppress more uncommon units. 2013-02-11 07:12:15 +00:00
0ac2f6e7d7 fix for own bug - memory leak when cancelling weight gradient tool 2013-02-11 04:43:49 +00:00
971fca48ca supress Hectograms from being used when displaying weight units since they are not so common. 2013-02-11 01:14:45 +00:00
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
ac9ec06ec1 Merged changes in the trunk up to revision 54421.
Conflicts resolved:
release/datafiles/startup.blend
release/scripts/startup/bl_ui/properties_render.py
source/blender/SConscript
source/blender/blenloader/intern/readfile.c
2013-02-10 10:17:59 +00:00
4479d13236 rigidbody: Fix force field changes not invalidating cache 2013-02-09 10:04:27 +00:00
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
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
95bca1c6bc Small UI annoyance: proxy build progress could is incorrect in some cases 2013-02-07 14:15:30 +00:00
296444e1dc style cleanup: some warnigs & spelling. 2013-02-06 14:02:19 +00:00
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
441c7fb79a fix for crashes running some operators in background mode and some divide by zero errors. 2013-02-06 02:48:03 +00:00
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
48cfe610db Tracking settings for new clip didn't match default reset 2013-02-05 13:10:26 +00:00
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
9ddf928dbd remove stringify macro from alloc's 2013-02-05 09:42:40 +00:00