Commit Graph

9520 Commits

Author SHA1 Message Date
Campbell Barton
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
Campbell Barton
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
Sergey Sharybin
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
Sergey Sharybin
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Thomas Dinges
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
Thomas Dinges
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
Thomas Dinges
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
Sergey Sharybin
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
Brecht Van Lommel
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
df664fa6d5 use bool for customdata functions. 2013-05-08 12:57:18 +00:00
Campbell Barton
76b1e8bc09 code clenup: rename BKE_mesh_poly_calc_angles -> BKE_mesh_calc_poly_angles 2013-05-08 12:56:51 +00:00
Campbell Barton
7fac200080 remove unused define CLAMPTEST, move INPR to
collision_compute_barycentric(), only place its used.
2013-05-08 12:56:02 +00:00
Campbell Barton
89c8de1f48 add matrix multiply for projection that outputs 2d values. 2013-05-08 12:55:36 +00:00
Campbell Barton
8238cd6992 use unsigned int, for mask rasterizer. 2013-05-08 12:54:47 +00:00
Campbell Barton
5c4f96af2c code cleanup: use 'const float[2]' where possible. 2013-05-08 12:54:33 +00:00
Campbell Barton
6b1b20ef0d code cleanup: BKE_mesh_nurbs_displist_to_mdata(), use const bool for
'conv_polys'
2013-05-08 12:53:52 +00:00
Campbell Barton
3e4db4969c code cleanup: remove unused 'dm' arg from BVHTreeFromMesh. 2013-05-08 12:53:34 +00:00
Campbell Barton
cf3d638681 remove unneeded null check in draw_viewport_name 2013-05-08 12:53:14 +00:00
Campbell Barton
34c28e3a0e fix [#35259] Crash when enabling mesh analysis intersect. 2013-05-08 12:40:23 +00:00
Ton Roosendaal
a0800cb8b3 And here's the epic 2.67 splash and version!
Celebrating Freestyle :) Kudos to dfeveloper Tamito and Malaysian artist Mclelun!
2013-05-07 16:27:55 +00:00
Sergey Sharybin
5455928262 Fix #35122: Blenderplayer crashes when loading level
Issue was caused by ntreeUpdateTree calling for a ntree
which is not in G.main.

This lead to issues in ntreeVerifyNodes (which is called
from ntreeUpdateTree).

Made is so ntreeUpdateTree now accepts main as an argument.
Will work for the release, later we could either solve the
TODO mentioned in ntreeUpdateTree which will eliminate need
in main there or make it so context's main is used from all
over where ntreeUpdateTree is called (currently there're
still some usages of G.main).
2013-05-07 15:28:42 +00:00
Sergey Sharybin
88129ac395 Fix for crash when using 2D stabilization for float movie clips
Also removed unneeded image buffer scaling, it was only needed
for "early output" if there was no rotation. That is no longer
supported since it used to pixelate result a lot and interpolation
is always used now.

Saves quite a few of memory and CPU cycles.
2013-05-06 17:59:02 +00:00
Sergey Sharybin
9aed3f62d3 Fix missing angle zerolization when 2d stabilization is disabled.
Not sure how it wasn't noticed for so long, probably check happens
in callee as well, but better be safe than sorry here.
2013-05-06 17:24:30 +00:00
Brecht Van Lommel
62087935ec Fix #35209: cycles generated texture coordinates did not stick to deforming meshes. 2013-05-05 05:56:41 +00:00
Campbell Barton
0e27e71962 correct own recent commit, confused totloop with dm_totloop, rename vars & correct even though in this case the error was harmless. 2013-05-03 08:37:18 +00:00
Brecht Van Lommel
4a4f091155 Fix #35174: dynamic paint displacement missing in render.
A previous bugfix disabled the dynamic paint modifier for orco texture
coordinate evaluation of the modifier stack. However the MOD_APPLY_USECACHE
flag is not a good way to check if the modifier is evaluated for orcos.

Instead I've added a MOD_APPLY_ORCO flag. Also removed a bunch of
applyModifierEM callbacks, none of them served a purpose except for the
subsurf modifier.
2013-05-02 14:42:05 +00:00
Campbell Barton
29ffcf408f remove re-allocations while building weight paint color array, move button to show weightpaint below other overlay buttons in the 'Mesh Display' panel. 2013-05-02 01:49:10 +00:00
Brecht Van Lommel
d7e8356846 Fix 2D painting gave squares rather than a disk for the "Max" curve falloff shape. 2013-05-01 19:50:37 +00:00
Brecht Van Lommel
c8cf9415de Fix #35149: solidify modifier + vertex parent not working after going in and out
of editmode on the child object.

Problem was that the object custom data mask was not taken into account when
rebuilding the derivedmesh in some cases, which is needed for the derivedmesh
to contain the mapping back to the original vertices. Now this data mask is
used for any derivedmesh build that will be cached.

Also problematic was that the datamask for the active object was applied to
all objects in the scene, which caused the parent object to be recalculated
when it didn't need to be. Now this datamask is only used for the active object.
2013-05-01 14:34:12 +00:00
Campbell Barton
950b4f5ec9 style cleanup 2013-05-01 02:53:45 +00:00
Campbell Barton
9e75d276e3 holding ctrl when using arrow keys in the text editor didn't navigate newlines. 2013-05-01 00:15:22 +00:00
Brecht Van Lommel
576e579925 More painting fixes:
* 2D image painting with textures that contained alpha did not work correctly,
  had been broken for a while.

* 2D image panels texture (mask) panels showed wrong buttons for texture overlay.

* Texture map mode 3D now also uses masking, like Tiled and Stencil the texture
  does not move along with the brush so it works fine.

* 2D image paint View mapping did not work correct, especially noticeable with
  Rake rotation.

* Masking is now disabled for the smear tool, this can't really work because
  the original image is constantly changing and gave artifacts.
2013-04-30 16:07:52 +00:00
Brecht Van Lommel
3b04b861bd Fix another part of #35141: there was no way to reset the stencil transform after e.g.
scaling it along one axis, now there's a Reset Transform button.

The Image Aspect button is now also hidden unless the texture is an image texture.
And also hide the color wheel for painting tools that don't use colors.
2013-04-30 10:32:02 +00:00
Brecht Van Lommel
9461af89f1 Fix #35141: stencil and 3D texture mode did not work with 2D image paint. 2013-04-30 09:59:40 +00:00
Brecht Van Lommel
63f05576b8 More image painting fixes:
* 2D image painting support for masking to limit the max contribution of a stroke
  to a pixel, to get it working compatible with projection painting. Not strictly
  a bugfix, but the inconsistency here was annoying.

* Fix python errors in Texture Mask panel in image editor, was missing overlay
  options.

* Clamp paint mask to 0..1 in case some texture exceeds it, this could give black
  pixels due to integer overflow.
2013-04-30 06:07:42 +00:00
Miika Hamalainen
511e3466da Fix [#35110]: Dynamic Paint does not paint accurately in baked "Image Sequence" on Armature-Posed-Mesh
Dynamic Paint was also being calculated during "orco" mesh generation, causing image sequence baking to use orco derived mesh instead. This likely affected vertex type surfaces too in some cases.
2013-04-29 15:02:54 +00:00
Campbell Barton
f2f113fbd3 tweak for epsilon of intersection check, was too small for some cases. 2013-04-28 22:35:08 +00:00
Campbell Barton
c3ddd1169c fix for inserting a color-curve point.
- was reading outside memory bounds checking the 'x' point.
- inserting a point to the right of the last point would add a point to the very left instead.
2013-04-28 20:25:25 +00:00
Campbell Barton
608dc78241 warning cleanup: assignment to unused vars, r56359 changes how brush falloff is used slightly but this isn't so important so just remove falloff adjustment. 2013-04-28 15:37:18 +00:00
Campbell Barton
1cc52288d5 fix for crash while drawing editmesh with weights in rare cases when the length was set but array NULL. 2013-04-27 23:42:42 +00:00
Campbell Barton
1fe4a27305 quiet warning, color blend c file was missing own include, also minor style tweaks. 2013-04-27 17:41:10 +00:00
Brecht Van Lommel
8f9150871c Fix part of #34233: bad alpha blending for 2D image painting. This is a very
old issue, the formulas here were never quite right, should all work ok now
with byte and float images.

Some differences:

* Colors with zero alpha from the background will never have an influence, so
  you don't get alpha fringes when painting over such areas. This does give
  hard edges when looking at the RGB channels alone, but there's no way to
  avoid that and fringes at the same time, same behavior as other painting apps.

* Add/Subtract/Multiply/Lighten/Darken now leave the alpha channel unchanged
  and work only the RGB channels, again same behavior as many other apps.

* Erase/Add alpha now compensates for premultiplied float images to keep the
  straight RGB colors the same.

Next: fix projection painting.
2013-04-27 12:51:23 +00:00