Commit Graph

11497 Commits

Author SHA1 Message Date
39c078202d Added BKE_freestyle_lineset_delete() by generalizing FRS_delete_active_lineset(). 2014-05-11 17:57:40 +09:00
c88e65da61 Code cleanup: comment typos 2014-05-11 16:22:05 +10:00
78918995a4 Replace inefficient use of strstr with STRPREFIX macro 2014-05-10 09:29:35 +10:00
6f71491d61 Fix T40108: Copying materials leaves a shared Action datablock in nested
bNodeTree blocks.

This was broken by rB6e99fb0 (own commit). I expected the `do_action`
argument to be of no importance in this case due to node trees using
material animation, but this is not the case.

Anyway, this patch adds back a do_action to the BKE_libblock_copy_nolib
function as well to restore the previous behavior.
2014-05-09 15:02:21 +02:00
31849cafc2 Fix for random crashes when grabbing (rmb-drag) NLA strips
Although these crashes were quite sporadic, they seemed to happen most when
rmb-dragging strips randomly in quick succession. The most likely cause seems
to be a null check I accidentally took out during one of my commits yesterday.
2014-05-10 00:19:07 +12:00
164841e30e Code cleanup: style 2014-05-09 18:29:42 +10:00
11d98718bc Indentation fix. 2014-05-09 12:19:27 +09:00
732bc8fcae Clarification of UI messages:
Show that modifier may not be supported in dyntopo rather than sculpt
mode in general. This is useful information since users may confuse the
two. Multires for instance is surely supported in sculpt mode, but not
in dyntopo.
2014-05-08 19:25:46 +03:00
0d85be5950 Fix T39950, part 2.
Warn when a modifier does not support optimal drawing and mask/hidden
parts display.

User report was that hidden parts became visible after adding a new
modifier subdivision. Subdivision was added with the Ctrl+number keys.
First part of the fix was to make sure we add a multires instead of the
subsurf modifier in sculpt mode with the PageUp/Down Ctrl+number keys.

We can't really stop users from having added a subsurf modifier already.
We could be "smart" and convert subsurf to mulrires upon entering sculpt
mode maybe but that can easily backfire - or users may actually want
that. For now, just warn that the modifier won't support Hiding/Masking
and optimal drawing.
2014-05-08 19:15:46 +03:00
5a8d7af642 Fix T40074: Autosmooth option causes assert failure when selected.
No need to call `dm_ensure_display_normals()` when using loop normals,
poly/vert ones have already been computed!
2014-05-08 17:48:00 +02:00
bbf6db0c0c Fix regression from 2.70:
Multires did not support hiding in zero level. It's a case of PBVH not
being used in drawing due to code reporting active modifiers being used.

However multires level zero can be treated as effectively no modifier
and we can use mesh PBVH.
2014-05-08 17:58:55 +03:00
75d49b7f55 Removed a Freestyle hack for DAG updates introduced in commit rBae58968e0a61.
Now that Freestyle employs a separate Main, this workaround is no longer necessary.

Reviewers: sergey

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D513
2014-05-08 18:42:47 +09:00
56df85b227 Bugfix T40082: NLA Meta strips were no longer evaluating correctly
It seems that since the changes to how new NLA strips are handled, accumulating
these in a temporary buffer and then trying to combine the results didn't
work that great anymore.
2014-05-08 21:01:32 +12:00
88e5705a3f Code Cleanup: remove unused m_contactProcessingThreshold 2014-05-08 14:22:47 +10:00
d964bad67b Fix for crash when userprefs fails to read. 2014-05-08 06:36:43 +10:00
79c345acc2 Fix T40033: Jumping between versions can lead to loss of node storage
data.

Saving a file with a new blender node that uses bNode->storage data and
then loading that in an older version will make the node undefined, but
still retain the original type identifier (in case it is defined later).

If the file is then saved over and loaded again in the newer version,
where the node type is defined, it won't have a valid storage struct.
To handle such cases gracefully, check if storage data is expected but
doesn't exist when initializing node types. User then at least get a
chance of fixing the problem manually.

Suggested fix by @brecht.
2014-05-07 11:46:30 +02:00
5e55fc21b7 Fix T40051: Inconsistent dupli vert/face handling of group member types 2014-05-07 17:11:33 +10:00
77d11a52b3 Fix T40052, Grid Particles Crash due to invalid empty mesh verts access
for bbox calculation.
2014-05-07 07:58:35 +02:00
2e07109feb Code cleanup: naming.
Prepend BKE_ to the functions moved in blenkernel for recent bug fix.
2014-05-07 02:59:23 +03:00
20f7aaf6be Fix issue discovered while investigating T39950:
Sculpt mode drawing fails after deleting a subsurf modifier
in sculpt mode and undoing.

This was quite difficult to spot. Main cause was that mesh data was not
synchronized properly between undo and sculpt code because we generated
a pbvh on derivedmesh invalidation without really refreshing the rest of
the data. This could result in undo and drawing operating on different
data.

To solve this and avoid bad level calls I had to move quite some code
around. Crazyspace is now moved to blenkernel, as did some sculpt calls
that make sure sculpt data are properly refreshed.
2014-05-06 23:44:06 +03:00
af704c6d88 Style cleanup 2014-05-07 06:11:28 +10:00
182179a44b Cleanup: redundant NULL checks 2014-05-07 04:35:55 +10:00
63a66478f5 Over-optimized stuff in the previous commit, sorry. 2014-05-06 16:56:24 +02:00
45b4506c0d Cleanup a bit of the locked shape keys painting
It's still gives some slowdown when painting a locked
key in the solid view, but since shape key is now longer
being re-used by DM.

but this change should still give some degree of speedup
propagating delta onto the keyblock if i remember the
code correct.
2014-05-06 14:49:50 +02:00
312d3edee5 Hidden PBVH nodes:
Set hidden when rebuilding the PBVH tree if all primitives are hidden.
2014-05-05 22:24:13 +03:00
9a1c47de44 Attempt to solve T39950,
Avoid filling up buffers when total buffer triangles are zero.

Better still would be to tag a node as hidden when doing recreation of
the PBVH tree by checking for any visible elements. Original bug report
probably has to do with OpenGL doing something funky but hidden nodes
should be tagged as hidden to completely avoid iterating for painting.
This is to be done in a later commit.

Also some naming cleanup for consistency, GPU_build_pbvh_mesh_buffers to
GPU_build_mesh_pbvh_buffers.
2014-05-05 21:13:27 +03:00
91f90f61d3 NLA Eval Bugfix: Influence settings on active action didn't work
* The automatically calculated influence was overriding the value we were passing
  into the dummy strip, making this seem like it doesn't work

* Made some tweaks to prevent some potential memory-related bugs
   - nlastrips_ctime_get_strip() actually saves off references to the list of strips
     it gets, so declaring dummy_strip in an inner scope like this could potentially
     be quite dangerous
   - Prevented a potential memory leak for the early abort when there are no strips
     for whatever reason (it shouldn't occur though)
2014-05-04 16:35:12 +12:00
fd80ac4c3e Fix typo (uninitialized var) 2014-05-04 12:37:02 +10:00
ea6671a630 Fix for aligned handles in masking and curve objects
The issue has been introduced in 0985bb4, made it so curves and masks
stick to old behavior.

FCurves are still flaky, namely, grabbing both handles selected would
change the length of one of the handles which is not nice imo.
2014-05-03 21:58:02 +02:00
08d899d1e7 Code cleanup: style 2014-05-04 00:41:45 +10:00
e08db08a84 Fix T39997: Multiple boolean modifiers sharing the same right operand crashes
The issue was caused by the temporary CD layers being allocated for subsurf
meshes, same as we've got back in 881fb43.

In the long run this temporary storage is to be re-considered, but it'll also
imply re-considering of the Derivedmesh interaction as well. For now let's
use a simpler solution which is forbidding modifiers to call getArray for other
objects' derivedMeshes but use an API calls which would allocate local copy of
the data preventing race condition of shared data in DM.
2014-05-03 16:13:01 +02:00
5347c7b9db Added support for the Make Local command in the Outliner on textures in line styles. 2014-05-03 20:38:44 +09:00
308ec601b2 Fix for missing initialization and copying of FreestyleLineStyle::pr_texture value. 2014-05-03 20:38:41 +09:00
b7f085d9c1 Patch D246: Texture Marks for freestyle strokes, written and contributed by Paolo Acampora.
Reviewers: brecht, kjym3, #freestyle

Reviewed By: brecht, kjym3

Differential Revision: https://developer.blender.org/D246
2014-05-03 18:54:59 +09:00
39dc3bce30 Fix T40001: Opening a 2.66 blend file in 2.7, a bone appear "rolled but not rolled".
Looks like some sign was lost in that complex matrix algebra (always be wary of squared values!).
2014-05-03 08:52:22 +02:00
Dalai Felinto
97641a0ec9 Bake API - bpy.ops.object.bake()
New operator that can calls a bake function to the current render engine when available. This commit provides no feature for the users, but allows external engines to be accessed by the operator and be integrated with the baking api.

The API itself is simple. Blender sends a populated array of BakePixels to the renderer, and gets back an array of floats with the result.

The Blender Internal (and multires) system is still running independent, but we eventually will pipe it through the API as well. Cycles baking will come next as a separated commit

Python Operator:
----------------
The operator can be called with some arguments, or a user interface can be created for it. In that case the arguments can be ommited and the interface can expose the settings from bpy.context.scene.render.bake

bpy.ops.object.bake(type='COMBINED', filepath="", width=512, height=512, margin=16, use_selected_to_active=False, cage_extrusion=0, cage="", normal_space='TANGENT', normal_r='POS_X', normal_g='POS_Y', normal_b='POS_Z', save_mode='INTERNAL', use_clear=False, use_split_materials=False, use_automatic_name=False)
Note: external save mode is currently disabled.

Supported Features:
------------------
 * Margin - Baked result is extended this many pixels beyond the border of each UV "island," to soften seams in the texture.

 * Selected to Active - bake shading on the surface of selected object to the active object. The rays are cast from the lowpoly object inwards towards the highpoly object. If the highpoly object is not entirely involved by the lowpoly object, you can tweak the rays start point with Cage Extrusion. For even more control of the cage you can use a Cage object.

 * Cage Extrusion - distance to use for the inward ray cast when using selected to active

 * Custom Cage - object to use as cage (instead of the lowpoly object).

 * Normal swizzle - change the axis that gets mapped to RGB

 * Normal space - save as tangent or object normal spaces

Supported Passes:
-----------------
Any pass that is supported by Blender renderlayer system. Though it's up to the external engine to provide a valid enum with its supported passes. Normal passes get a special treatment since we post-process them to converted and "swizzled"

Development Notes for External Engines:
---------------------------------------
(read them in bake_api.c)

* For a complete implementation example look at the Cycles Bake commit (next).

Review: D421
Reviewed by: Campbell Barton, Brecht van Lommel, Sergey Sharybin, Thomas Dinge

Normal map pipeline "consulting" by Andy Davies (metalliandy)
Original design by Brecht van Lommel.

The entire commit history can be found on the branch: bake-cycles
2014-05-02 21:19:08 -03:00
6416979b45 Fix T39984: Interpolation errors in particle emitter animation.
Reverse child->parent order of particle emitter animation eval causes
artifacts when more than one parent level is used.
2014-05-02 09:56:51 +02:00
d303556afb Code cleanup: remove file handling headers where they arent needed 2014-05-02 05:37:11 +10:00
95b93b5d46 Add BLI_compiler_compat.h to help with portability 2014-05-02 01:14:15 +10:00
fa25d7cf7b Code cleanup: remove defines no longer needed on windows 2014-05-02 00:55:54 +10:00
73ad0dfbae Fix first part of T39956
show diffuse option not correctly calculated on opening a file.

Make sure we call pbvh_show_diffuse_color_set after building the pbvh so
vertex data are available to it.
2014-05-01 02:12:02 +03:00
af86b008b2 Include removal gave problems with windows, ifdef some back in for windows only 2014-05-01 07:21:08 +10:00
cb48c0ceea Revert "Fix msvc 2013 compiler errors after the ingenious cleanup in 4ca67869cc7a."
This reverts commit a47a4ef82f.
2014-05-01 07:20:46 +10:00
a47a4ef82f Fix msvc 2013 compiler errors after the ingenious cleanup in 4ca67869cc. 2014-04-30 23:16:12 +02:00
d2a3260763 Add PBVH debug display, where we can see the PBVH node bounding boxes.
To enable enter debug value 14.
Leaf nodes are green while container nodes are red.
2014-04-30 23:43:19 +03:00
d50f8832e3 Fix T39969: Make single user object looses custom-tx-bone 2014-05-01 06:07:21 +10:00
3d5ab5a496 Warning cleanup: signed/unsigned compare
also remove redundant loop in BKE_pose_copy_data
2014-05-01 05:57:01 +10:00
762a988130 Fix for copy_object_pose incrementing custom user twice 2014-05-01 05:54:57 +10:00
4ca67869cc Code cleanup: remove unused includes
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
31a7be8ed7 Spelling fixes 2014-04-30 14:30:22 +12:00