Commit Graph

11497 Commits

Author SHA1 Message Date
a554a031f1 bump to version '2.67a' 2013-05-18 08:47:34 +00:00
d3a6c0c834 Smoke simulator: Add flow subframes and ability to set custom particle size.
Previously it was nearly impossible to have fast moving objects emitting smoke or they would just leave behind a row of smoke poofs instead of continious stream of smoke. Now it's possible to set number of subframes for each smoke flow.

Another new thing is ability to set size of smoke flow particles instead of using closest smoke cell. This also works with my earlier "full sample" commit, so no more blocky particles either. :)

For more info check my blog post: http://www.miikahweb.com/en/blog/2013/05/17/blender-smoke-subframes

This commit also includes couple of fixes I spotted while testing:
* Fix: dissolve was applied at different time for low res and high res simulations.
* Fix: full sample setting didn't get copied with domain.
2013-05-17 17:45:37 +00:00
e2f58d817a Bug fix, own collection.
Shapekey drivers were executed for every call to derivedmesh, which shouldn't happen.
It now only runs on the object_update() function, once for every depsgraph change.

Error was found while testing preview render in viewport. On each render, the
animsys sent a 'changed data' because of the shapekey drivers being called,
causing eternal re-render loops (without showing anything).
2013-05-17 13:15:43 +00:00
Lukas Toenne
a8964d865f Fix #35388, grouped nodes not editable in properties ui.
The issue here was that the "active" material node depends on the editor context. Previously (< 2.67) there was only 1 edited node group possible globally throughout Blender, so the active material in the context could be resolved more easily. The solution now involves the active_viewer_key variable (first introduced for compositor viewer nodes in r56271, naming is a bit awkward but hard to change in DNA). This key defines the "last modified" node tree to resolve ambiguity of active context items. For single editors the result is the same as in 2.66, if multiple editors are used with different node groups the last modified tree is used.
2013-05-16 15:06:18 +00:00
65dcc6ad4f use bool arrays rather then char for weight paint lock/select arrays 2013-05-15 15:52:48 +00:00
bea14e8aaa Fix slow resizing of ID property arrays with more than 1619 items, it incorrectly
reverted to sizing with by 1 each time. This was slowing down painting long strokes
with small brush radius.
2013-05-15 14:36:58 +00:00
a5dd469a06 Fix #35354: dyntopo - materials and UI display issues
Textured dyntopo draw was leaving 2d textures enabled when it shouldn't.

Root of the issue was figured out by Campbell, actual place where
2D textures left enabled found by self.

Also, simplified fix is suggested by Campbell (mine was 2 lines longer! :)
2013-05-15 12:33:28 +00:00
9c510330d9 Move sculptsession functions implementation from object.c to paint.c
This functios are declared in BKE_paint.h header and using
SculptSession structure which is also declared there.

Anyway, does not make sense such a splitting of header and
implementation files, better be consistent here.
2013-05-15 08:54:05 +00:00
4fcd44d389 Fix #35362: using dyntopo gives wrong render results
Made it so dynamic topology will flush changes from
SculptSession->bm to Object->me.

Used the same approach as sculptsession_bm_to_me does,
but instead of using DAG_id_tag_update used in-place
DerivedMesh release. Otherwise this lead to some
update issues resulting in missed object after render.

Also fixed multires modifier not being applied for
render when rendering from dyntopo sculpt mode.

P.S. Apparently sculpsession_bm_to_me was declared
     in BKE_paint.h but implemented in object.c.
     Rather confusing and better make it so this
     functions are declared and implemented in
     consistent files. But will solve this in a
     separate commit.
2013-05-15 08:25:42 +00:00
8ef3c42f80 Fix #35347: constraints with vertex group targets were not using the vertex group
weights, it assumed all weights were 1. This gave very different results with the
new bevel modifier due to slightly different vertex group interpolation.
2013-05-14 16:22:53 +00:00
bbea18f8c1 bridge tool: fix for error in recent commit. missed NULL check for example face. 2013-05-14 10:56:18 +00:00
cfbf9c324b style cleanup 2013-05-14 06:58:35 +00:00
d4c6ac9a60 Cleanup and small improvements to libmv
- Added const modifiers where it makes sense and
  helps keep code safe.
- Reshuffled argument to match <inputs>,<outputs>
  convention on parameters.
- Pass values to ApplyRadialDistortionCameraIntrinsics
  by a constant reference.
  This will save lots of CPU ticks passing relatively
  heavy jet objects to this function when running
  bundle adjustment.
2013-05-13 14:39:06 +00:00
682da3ac98 Apply scale on scene reconstruction when applying scale on camera
This means when you've got reconstructed scene assigned to a
3d camera (via camera solver constraint) and applies scale on
this camera from Ctrl-A menu, scale will be applied on the
reconstructed scene and reset camera size to identity.

This is very useful feature for scene orientation, when you'll
just scale camera by S in the viewport to match bundles
some points in the space, and then you'll easiy make camera
have identity scale (which is needed for nice working moblur
and other things mentioning by Sebastian :) without loosing
scale of bundles themselves.

Behavior of apply scale for cameras without clip assigned
to them does not change at all.
2013-05-13 13:37:05 +00:00
6bd58ac967 fix [#35335] Crash when rendering a text object with a remesh modifier and a material texture 2013-05-13 07:13:28 +00:00
c961c56c64 add missing STACK_INIT, also quiet float <> double conversion warnings. 2013-05-13 02:10:59 +00:00
32faec1a53 Remplace bunch of annoying ifdefs in tracking.c with a libmv-capi_stub.cc
Makes code in tracking.cc much easier to understand and modify,
without worring to breck compulation with Libmv disabled.

It is still possible compilation will break due to libmv-capi
changes, but that's not happening so much often.
2013-05-12 22:17:37 +00:00
33651da150 Fix for keyed marker search not happening correct in some cases
Was an heuristic failure writen for cases when there's no keyframe
in desired direction. Shall all be fine now.
2013-05-12 21:57:57 +00:00
87b308fc23 Fix for "no functional changes" commit
Apparently eitehr merge conflict happened, or i had
too much depression in blood, but first camera was
just wrong after reconstruction.
2013-05-12 18:50:39 +00:00
d9ca50ff64 Refine markers position operator
This operator will run a tracker from previous
keyframe to current frame for all selected markers.
Current markers positions are considering initial
position guess which could be updated by a tracker
for better match.

Useful in cases when feature disappears from the
frame and then appears again. Usage in this case
is the following:

- When feature point re-appeared on frame, manully
  place marker on it.
- Use Refine Markers operation (which is in Track
  panel) to allow tracker to find a better match.

Depending on direction of tracking use either
Forwards or Backwards refining. It's easy: if
trackign happens forwards, use Refine Frowards,
otherwise use Refine Backwards :)
2013-05-12 16:04:14 +00:00
beb73831f6 Documentation for functions inside tracking.c
Additional changes:

- Cleaned up sources to reduce mess in some
  big functions.
- Removed unused function from libmv c-api.
- Made functions naming more consistent.
- Use bool for internal stuff in tracking.c.

Shall be no functional changes :)
2013-05-12 16:04:08 +00:00
97d2439077 Fix crash when closing blend files with no line styles 2013-05-12 14:45:15 +00:00
469979f9cb Fix material/lamp drivers not working sometimes when they were used by multiple
objects, found while looking into another bug.
2013-05-12 13:33:20 +00:00
70eaf2fe44 Image paint: 2D painting now supports texture masks and does masking more
consistent with projection painting.

Also did some refactoring of this code, moving the brush image creation code
out of brush.c and making it consistent with image updating code.
2013-05-12 09:14:13 +00:00
7b707fff56 correct assert for driver evaluation,
also add asserts for listbase functions when the list is NULL, and use noreturn attribute for jpeg_error.
2013-05-12 05:54:33 +00:00
c152913217 Couple fixes for my previous commit:
- In some cases smoke flow could have 1 cell clipped off its sides.
- Forgot to re-enable openmp for emission code.
2013-05-10 19:30:08 +00:00
2f9f3dd590 Smoke: Add new "Full Sample" option to high resolution smoke panel.
This is hopefully the ultimate solution against smoke blockiness near emitter.

Previously high resolution flow/emitter voxels were generated based on the low resolution ones. So if you had 32 resolution and 4 division high resolution, it still used smoke flow generated from those 32 resolution voxels. Now I introduced a new sampling method called "Full Sample" that generates full resolution flow for for high resolution domain as well.

Read more about it in my blog post: https://www.miikahweb.com/en/blog/2013/05/10/getting-rid-of-smoke-blockiness

Also changed "quick smoke" operator default voxel data interpolation mode to "Cubic B-Spline" to smoothen out it even more.
2013-05-10 16:18:00 +00:00
4392fc6f1d Optimize BKE_mesh_calc_normals(), gives approx 25% speedup.
- no need to allocate polygon normal array.
- no need to use BLI_array_ functions (realloc's).
- reduce some of the looping.
2013-05-10 10:07:01 +00:00
7a547e441b avoid customdata lookups for selection test/enable disable.
also add uvedit_face_select_set, uvedit_edge_select_set, uvedit_uv_select_set - since quite a few areas where setting based on a boolean.
2013-05-10 06:46:32 +00:00
4f5f97254c Reconstructed scene scale ambiguity improvement
Made it so reconstructed scene always scaled in a way
that variance of camera centers is unity.

This solves "issues" when different keyframes will
give the same reprojection error but will give scenes
with different.scale, which could easily have been
considered as a bad keyframe combination.

This change is essential for automatic keyframe
selection algorithm to work reliable for user.
2013-05-09 16:38:43 +00:00
2ad8ec5eaf Changes to footage information panel
- Display additional information about channels
  and buffer type (float/byte).
- Don't show frame number beyong sequence length.
- Also fixed issues with footage length calculation,
  so it's pronbably will be needed to reload some
  of existing footages.
2013-05-09 14:57:20 +00:00
2e0f741d01 can't use alloca in inline functions (fills up stack - I thought compiler would be smart here).
also reserve the exact number of vert/face/edge/loops when creating a bmesh during undo.
2013-05-09 11:42:24 +00:00
278240f4b0 bmesh: avoid using BLI_array macros for every face when converting to bmesh, replace with alloca 2013-05-09 10:44:38 +00:00
1e784c54cd bmesh speedup: skip free-realloc while running CustomData_bmesh_merge() when nothing is changed (happens quite often that there is nothing to do). 2013-05-09 10:41:05 +00:00
c1f408c058 Partial revert of own commits r56604 and r56603:
* Reverted the changes to code comments, as suggested by Campbell. It makes it more hard to follow.
* Only keep changes to actual UI messages.
2013-05-09 10:03:38 +00:00
e0edac4952 UI naming consistency:
* ShapeKey -> Shape Key. Was called "Shape Key" in most places already.

Pointed out by Dalai, thanks!
2013-05-08 21:41:47 +00:00
9037a2d3ab Blender 2.68 release cycle begin:
* BCon1, Alpha. Let's have an awesome one!
2013-05-08 17:23:56 +00:00
Lukas Toenne
6fe753c11b Extended the draw callback API for node sockets with an explicit text parameter, instead of always using the sock->name string. This can be useful for drawing the socket values separate from the label, e.g. in the node view template. 2013-05-08 14:58:41 +00:00
Lukas Toenne
672d393517 Change to socket draw functions: instead of always only drawing the socket label for connected sockets, leave this check up to the socket draw function itself. This allows future socket types to draw buttons or other info in all cases and handle connected/unconnected state more flexibly.
The drawinputfunc/drawoutputfunc callbacks in bNodeType are pretty much empty wrappers now and should be removed at some point. This per-node differentiation should rather be implemented as a specialized socket type if necessary. The only use case for this feature that remains is the file output node in compositor, which displays shortened file format info for each socket.
2013-05-08 14:58:37 +00:00
f25e7d62b3 Mask modifier for sequences
This modifier uses a mask set in the modifier settings
and multiplies strip by it. Alpha channel will also be
multiplied by mask, which makes it easy to mask some
objects on footage and alpha-over them in sequencer.

Actually, this modifier sets alpha for byte strips
directly (since byte is always straight alpha) and
multiplies float buffer by mask (flaots are premulled)
so in both cases masked strip could be easy alpha-overed
without any artifacts.

It uses own structure with only SequenceModifierData
property in to preserve both forward and backwards
compatibilities (using new structure ensures modifier
will be ignored on load in older blenders, the same
happens for mesh modifiers actually).

Request from Pablo Vazquez.
2013-05-08 14:20:57 +00:00
a07dcd67eb Fix #35240: command line -t number of threads option did not work for cycles.
Now it works for blender internal, cycles and other multithreading code in
Blender in both background and UI mode.
2013-05-08 13:23:17 +00:00
8ac2fee57a minor speedup for bmesh - add CustomData_bmesh_free_block_data(), use
when the block would be immediately allocated again.
2013-05-08 13:00:25 +00:00
f554c264da speedup for freeing bmeshes, skip calling free on every
vert/edge/face/loop if there are no free functions for the customdata
layers.
2013-05-08 12:59:56 +00:00
a9fb183901 rename BLI_ghashIterator_notDone() -> BLI_ghashIterator_done()
was renamed fairly recently but other similar iterators not negated
	like this, would prefer to keep it as it was
2013-05-08 12:58:11 +00:00
df664fa6d5 use bool for customdata functions. 2013-05-08 12:57:18 +00:00
76b1e8bc09 code clenup: rename BKE_mesh_poly_calc_angles -> BKE_mesh_calc_poly_angles 2013-05-08 12:56:51 +00:00
7fac200080 remove unused define CLAMPTEST, move INPR to
collision_compute_barycentric(), only place its used.
2013-05-08 12:56:02 +00:00
89c8de1f48 add matrix multiply for projection that outputs 2d values. 2013-05-08 12:55:36 +00:00
8238cd6992 use unsigned int, for mask rasterizer. 2013-05-08 12:54:47 +00:00
5c4f96af2c code cleanup: use 'const float[2]' where possible. 2013-05-08 12:54:33 +00:00