Commit Graph

7212 Commits

Author SHA1 Message Date
Nicholas Bishop
e508c2d9e1 Add a multires function to delete MDisps.
The code was duplicated in various places, replaced with calls to
a new function, multires_customdata_delete().
2012-03-19 05:13:41 +00:00
Bastien Montagne
53b7078343 Fix [#30234] Various problems with CD layers and tesselation, related to modifiers stack.
Should also fix [#30266], [#29451], and partly [#30316].

Here are the changes made by this commit:
* It adds a "dirty" flag to DerivedMesh struct (for now, only DM_DIRTY_TESS_CDLAYERS, but more might be added as needed).
* It adds a new func, DM_update_tessface_data, which assumes tessfaces themselves are valid, but updates tessellated customdata from their poly/loop counter parts.
* At end of modstack, when valid tessellated faces are present in finaldm , but the cdlayers dirty flag is set, call that function (instead of recomputing the whole tessellation).
* Edits to the codes concerned (UVProject, DynamicPaint, and Subsurf modifiers).
* Also add to subsurf dm generation code the creation of a CD_POLYINDEX layer (mandatory for DM_update_tessface_data to work well, and imho all tessellated dm should have one).

Note: some pieces of old code are just #if 0’ed, will clean them later.
2012-03-18 22:06:57 +00:00
Janne Karhu
709ca0ece9 "Fix" for [#30098] Particle rotation wrong / explode modifier
- The main problem was that in order to be accurate all particle
  rotations have to be calculated incrementally so the only working
  solution is to store rotations to the point cache (previously
  this was only done for dynamic rotations). This can nearly double
  the point cache size so it's not ideal to have this as a default
  as in many cases you don't care about particle rotations.
- Particle rotation panel now has a new "enable" checkbox that
  enables rotation calculations and the storing of rotations to
  point cache.
- Old files will have rotations enabled via do_versions so that in
  the worst case old files will only get bigger point caches, but no
  sudden loss of particle rotations.
2012-03-18 21:33:00 +00:00
Peter Schlaile
90bc26631c == Sequencer ==
Small fix for the last fix. Mixed up x and y scale... oh dear.
2012-03-18 19:32:26 +00:00
Thomas Dinges
24ea793c27 Release cycle
* BCon3: Beta. Ongoing module work, bug fixes and polishing features.
2012-03-18 16:01:11 +00:00
Peter Schlaile
450685b156 == Sequencer ==
Fix for:
[#29758] Sequencer `Image Offset` error with render percentage

also:
* make preprocess parameters completely independent from render resolution
  (they are always relative to *final* resolution now)
* fix yesterdays fix for proxy resolution rendering (the case of unbuild
  proxies wasn't handled correctly)
2012-03-18 11:13:28 +00:00
Campbell Barton
4f19c1a995 spelling cleanup 2012-03-18 07:38:51 +00:00
Campbell Barton
e56f714000 ngons draw with uniform normals in object mode now, I had this code disabled for speed (it was being called when it didnt need to), but for CDDM meshes without face normal layers this should still be called. 2012-03-18 06:49:32 +00:00
Campbell Barton
3633858fdb code cleanup:
* replace 2D vector copy with copy_v2_v2().
* use puts rather then printf for single strings.
* style cleanup for drawobject.c indentation.
2012-03-18 06:01:33 +00:00
Campbell Barton
b786d0d47c better not to use rgb_float_to_uchar() from last commit (comment as to why) 2012-03-17 23:37:14 +00:00
Campbell Barton
b0c0626cb0 fix for weightpaint color with recent loopcolor abgr --> rgba conversion. 2012-03-17 23:26:25 +00:00
Campbell Barton
91580c0929 swap BMLoopCol r/b color, requires subversion bump.
old mesh MCol 'r' was blue, 'b' was red, but theres no reason to keep this for bmesh with MLoopCol.

Loading old files works, saving legacy format works too.

What wont work is loading a file after this revision and loading it in an older revision since the bmesh merge.
(it wont crash but the blue and red will be swapped on vertex color layers).
2012-03-17 20:39:28 +00:00
Peter Schlaile
8bf1615ce3 == Sequencer ==
Bugfix: [#28159] sequencer strip crop values on proxy not scene render size

Also: IMB saturation change moved into imbuf-module.
2012-03-17 19:31:28 +00:00
Bastien Montagne
7bc693d107 Big step forward nodes UI translation:
*Add menu is now translated.
*Nodes' title is now translated.
*Nodes' sockets' labels are now translated.

However, about the last point, and unless I’m mistaking, we’ll have to add the "i18n tag" N_() to all sockets' names, in the input/ouput templates declaration, in all nodes' files, as those sockets are collections created at runtime, I think po-generating script has no way to access that from bpy.types... Quite a piece of (borring) work. :/
2012-03-17 14:42:44 +00:00
Bastien Montagne
1f6ae5e4fb Minor UI messages fixes, and enabling i18n for all modifier_setError() error messages. 2012-03-17 14:27:46 +00:00
Bastien Montagne
788b47b788 Fix for yesterday i18n own commit (r44924): we now need to define WITH_INTERNATIONAL everywhere TIP_/IFACE_ macros are used (else, we get non-international, dummy NOP macros instead!).
Also fixed in main CMakeList file, when no addon dir found, we want to disable WITH_PYTHON (I guess, certainly not WITH_INTERNATIONAL ;) ).
2012-03-17 12:07:58 +00:00
Bastien Montagne
1fc345cd32 Make grumpy gcc happy again! :p 2012-03-17 10:23:44 +00:00
Nicholas Bishop
3d87c23f4f Reduce poly map memory usage (used by sculpt smooth brush.)
Changed the create_vert_poly_map function to return a more compact
structure. Memory saved will vary depending on the mesh, but typically
it should be about one third of the old size.
2012-03-17 04:41:36 +00:00
Sergey Sharybin
d110ae7791 Allow merging two tracks in cases when they've got overlapping tracked/keyframed
frame ranges using average position of both tracks as position/
2012-03-16 14:06:43 +00:00
Sergey Sharybin
d6339e94fe Fix #30561 Modifiers with use_apply_on_spline = True do not work on curve with shapekeys 2012-03-16 11:46:08 +00:00
Campbell Barton
eab24df950 bmesh: being back bevel modifier from 2.62 stable.
this is no big improvement but at least its not a regression.

using the new operator for the bevel modifier can be enabled again be uncommenting a define.
2012-03-15 23:56:46 +00:00
Bastien Montagne
c9d0de49b9 mesh_validate code for bmesh (i.e. polys/loops).
Everything seems to work well (many tests making random changes over various meshes went good), but the code is a bit complex and hard to follow, due to the various possibilities of invalid poly/loop combinations… Code also makes more operations than previous tri/quad faces version (hence is a bit slower), but I don’t think we can do otherwise, it’s just the price for bmesh flexibility. ;)

Note: added the py script I used to make the tests, under source/tests/...
2012-03-15 20:10:07 +00:00
Nicholas Bishop
7081abf51f Remove unused parameter from multires_dm_create_from_derived. 2012-03-15 04:08:57 +00:00
Sergey Sharybin
930f43bd96 Fix crash on edge extrude from textured view
Issue was caused by MFACE layer adding for even DM without tessellated faces
which lead to adding new layer but with NULL data. This causes issues when layer
with faces (after extrude) was attempting to add because currently CD only checks
if layer type exists but does not check for size of the layer.

Solved by not adding MFACE layer if there's no tessellated faces.
2012-03-14 14:09:56 +00:00
Jens Verwiebe
639cf31f8a Avoid a sigsev after 44830 when reports is empty, clang compile work 2012-03-14 12:03:49 +00:00
Nicholas Bishop
b37a355c8e Copy hidden flag to vertices when applying multires modifier. 2012-03-14 06:32:13 +00:00
Nicholas Bishop
521e724edd Skip hidden elements in PBVH iterator, raycast, and drawing. 2012-03-14 06:32:03 +00:00
Nicholas Bishop
8717e35db3 Add DerivedMesh.gridHidden and CCGDM implementation. 2012-03-14 06:31:49 +00:00
Nicholas Bishop
82840ef94b Add MDisps.hidden bitmap.
Updates SDNA, customdata functions, and file read/write. Also adds
accessor functions to BKE paint.
2012-03-14 06:31:38 +00:00
Nicholas Bishop
0c91821364 Add new CCG accessor functions.
ccg_gridsize() converts a level into gridsize, ccg_factor() is for
converting coordinates between different multires levels.
2012-03-14 06:31:24 +00:00
Nicholas Bishop
7f2acc173e Add BKE mesh function to update edge/poly hidden flags from verts. 2012-03-14 06:31:14 +00:00
Nicholas Bishop
38d4848020 Don't wait for sculpt stroke to create PBVH.
This idea is borrowed from the multires modifier, which already
checked if the object was in sculpt mode and, if so, created the
PBVH. That check is now moved higher up the chain into
mesh_build_data(), so that it occurs for CDDerivedMesh too.

This also replaces an assert in cdDM_getPBVH for tesselated mesh faces
with a call to create them if missing.
2012-03-14 06:30:55 +00:00
Nicholas Bishop
99f72dfbfc Add 'level' field to struct MDisps, companion to 'totdisp'.
Gets initialized when loading old files and updated at the same places
totdisp is updated. Saves having to do log+sqrt to extract level from
totdisp.
2012-03-14 03:10:18 +00:00
Sergey Sharybin
f34c3580ac Fix possible usage of NULL function reported by clang 2012-03-13 10:31:42 +00:00
Nicholas Bishop
dfc9a57b3e Code cleanup: replace multires update function pointer with direct call.
Renamed the multiresModifier_update() function to
multires_modifier_update_mdisps() and made it visible to subsurf_ccg.c
so it can be called directly. No functional change, just a bit simpler.
2012-03-12 22:52:20 +00:00
Sergey Sharybin
e0a2e79f4d Fix #30406: Hooks ignore Automatic handles setting in curves
Update handles positions after applying modifiers which seems to be expected behavior.
The only currently unsolved issue is about updating aligned handles because this needs
to determine in which order handles need to be recalculated which currently depends on
selection flags and which is quite tricky to do when running modifiers and animation data,
so currently just not update their positions for now.
2012-03-12 14:55:56 +00:00
Sergey Sharybin
a527e3ea25 Fix #30496: Bugs and crashes about "make links modifers" function.
Was missed check for if modifier is available for particular object type
which ended up with unpredictable results when modifier which isn't supported
yet for some object type as linked to that object type.
2012-03-12 14:35:07 +00:00
Brecht Van Lommel
b53cbb4e01 Fix #30512: external render saved render result after reporting error. 2012-03-12 11:32:23 +00:00
Campbell Barton
b330abc290 remove Object member from BMesh struct - was only used for undo and BMEditMesh already stores an object pointer.
also fix for own mistake with mesh conversion refactor, shape key index was off by 1 when switching editmode.
2012-03-11 19:58:56 +00:00
Campbell Barton
c21c58f44c style cleanup, also remove unused externs. 2012-03-11 19:09:01 +00:00
Campbell Barton
19400d418d fix for debug assignment left in from own commit r44778
also removed private face normal update functions - they were same as public.
2012-03-11 15:27:08 +00:00
Sergey Sharybin
78941c1676 Remove remained part of debug code. 2012-03-10 17:14:50 +00:00
Sergey Sharybin
c175ed8b9b Forgot to remove code used for debuggning in previous commit. 2012-03-10 16:55:09 +00:00
Sergey Sharybin
be9aa6eada Finally 2D stabilization auto scale factor should be calculated perfectly 2012-03-10 16:31:12 +00:00
Campbell Barton
6fef7f1c32 style cleanup: unit code 2012-03-10 14:20:55 +00:00
Nicholas Bishop
2932ab8761 Fix an infinite loop in get_levels_from_disps().
This is called when adding a multiries modifier. BMesh MDisps have
only one loop's displacements rather than a full face's, so don't
multiply by number of corners here.
2012-03-10 12:26:32 +00:00
Campbell Barton
702e85ef84 picky changes to mouse cursor text selection behavior, previously as soon as the mouse was before a character it would select the previous, even if the cursor was closer to the space between the next 2 chars.
now find the closest point inbetween both chars.
2012-03-09 23:10:07 +00:00
Campbell Barton
4dc35836ad code cleanup: remove unused variable assignents and added bmesh submodule links, doc correction reported by dfelinto. 2012-03-09 21:23:15 +00:00
Campbell Barton
89a963fb7f style cleanup: comment blocks 2012-03-09 18:28:30 +00:00
Sergey Sharybin
0c68f0eee8 Previous fix for stabilization autoscale actually broke stabilizaiton itself
(median point was sliding a bit from it's original position)

This happens because of how transformation for stabilization calculates:
image is scaling around it's center, so image translation should be recalculated
after scale was changed, but scale also depends on translation. That's where
tricky things happens. It's still not ideal for case of rotation, but before
fixing this issue better to figure out usecase and see if it's indeed
so needed to scale around image center (it might only be helpful to use
stabilization parameters in compositor nodes).
2012-03-09 13:37:42 +00:00