Commit Graph

364 Commits

Author SHA1 Message Date
Brecht Van Lommel
b39090bb5a Fix #33752: UV Orco coordinates were wrong for Cycles (and other external
render engines). Replaced generating orco_index by filling the UV loop data
directly which is easier and all that needed to be done anyway.
2013-01-10 17:37:17 +00:00
Campbell Barton
ceb9701507 don't store bevel weights or edge crease customdata layers in editmode unless they are needed.
configurable in 'Geometry Data' panel, will be added when running crease edges transform for example.
2013-01-10 04:43:31 +00:00
Sergey Sharybin
252d0c6c5b Workaround for textured display with dynamic topology enabled
This will only make object display with proper shape in textured
view, but all materials and textures will be replaced with default
gray color. There's currently no better way to deal with textured
display when dynamic topology enabled because of all UV/tfaces are
clearing when enabling dynamic topology sculpt.

Anyway, better to display gray object with proper lighting in this
case rather than not update object's shape during sculpt.

Proper solution will be possible once CD layer will be preserved
by BMesh log.
2013-01-06 08:28:45 +00:00
Campbell Barton
27343d0732 fix own regression in cdDM_drawFacesTex_common() when drawParamsMapped isnt available. 2013-01-04 02:14:31 +00:00
Campbell Barton
ec1681fae7 style cleanup 2013-01-02 01:49:07 +00:00
Nicholas Bishop
22c02c9d3a Code cleanup: rename BLI_pbvh to BKE_pbvh 2012-12-30 18:31:31 +00:00
Nicholas Bishop
d342e3ef0f Use GPU_Buffers to draw wireframe when in dynamic-topology sculpt mode
This adds an override to the CDDM edge drawing function that switches
to GPU_Buffers drawing for PBVHes of type PBVH_BMESH.

Within the GPU_Buffers code, glPolygonMode() is used to draw lines
instead of faces.
2012-12-30 18:30:13 +00:00
Nicholas Bishop
bbaeac3bf8 Update DerivedMesh for dynamic-topology sculpt mode
* Build bmesh PBVH in CDDM when dyntopo is enabled

* Disable all modifiers when dyntopo is enabled
2012-12-30 18:29:41 +00:00
Campbell Barton
99433a3466 minor bmesh improvements
- use 2 omp sections for vert -> (edge, face) selection flushing.
- dont use face-loop iterator for cddm_from_bmesh_ex conversion to give some speedup (some modifiers use this).
- use float(*)[3] for functions that return coords.
2012-12-21 07:28:14 +00:00
Campbell Barton
a6bee579e9 move pbvh into BKE, it used many BKE bad level includes.
now blenlib/BLI doesn't depend on any blenkern/BKE functions,
there are still some bad level includes but these are only to access G.background and the blender version define.
2012-12-15 15:59:25 +00:00
Campbell Barton
7c2e4e28ba bpy.ops module/caller classes incorrectly had __keys__ rather then __slots__.
also added comments about texface drawing when theres no origindex.
2012-12-06 03:09:06 +00:00
Campbell Barton
3ec39706b4 fix [#33394] Skin modifier doesn't show generated skin mesh in EditMode with Texured Solid draw option 2012-12-03 09:08:53 +00:00
Campbell Barton
e3d3ffe746 fix [#33303] face selection masking for painting does not work with mesh with n-gon
caused by own change to how origindex is used, now if mpoly's CD_ORIGINDEX array is missing its assumes that its the original mpoly array.
2012-11-26 10:15:32 +00:00
Campbell Barton
5716762c02 fix for changes in own recent commit:
selected linked in face mode was crashing. (needs bmesh operator flags)

also some style edits, remove unused includes and change triangulate modifiers use_beauty to a flag.
2012-11-19 23:52:24 +00:00
Antony Riakiotakis
e174c6a47f Triangulate modifier
Useful for bump map baking where a consistent triangulation should be enforced when baking/exporting/importing, to avoid artifacts caused by a different triangulation of the mesh by that which was used for baking by internal/external tools. 

documentation is here http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.65/More_Features

Will probably add some pictures too to demonstrate the issue that is solved more clearly.
Currently using the skin modifier icon, will soon change that.

Review by Brecht, thanks!
2012-11-19 20:40:08 +00:00
Campbell Barton
66b488acc3 style cleanup 2012-11-11 11:00:55 +00:00
Ben Batt
a9eb610473 Fix #32398: Mirror modifier with "Merge" enabled producing pairs of faces
sharing the same set of vertices.

Modified the CDDM_merge_verts function (currently only used by the Mirror
modifier) to skip faces using all merged vertices.
2012-11-11 04:53:20 +00:00
Campbell Barton
6cdb555e6e bmesh refactor - rename some of the BM_****_share_****_count() functions to BM_***_share_check()
some of these were only returning a boolean, others returned a count even though only a boolean was needed.

split some of the functions in two as well where check/count are both needed.
2012-11-09 14:52:05 +00:00
Campbell Barton
617a73c573 code cleanup: unused defines & some formatting. 2012-11-08 06:46:10 +00:00
Bastien Montagne
c9307ec6a3 Fix for [#32992] Switching language does nothing under Windows.
Our current intl build for windows is quite old (don't know the exact version), and does not have the new setlocale overwrite. Problem is, new windows dll have no more the gettext_putenv helper, which is currently mandatory to make it work for this OS.

So back for now to the ugly long_locales for win. Best fix is probably to build our own static version of libl, but this is not trivial and will require some time. :/

PS: I had a look over i18n/translation in wxWidget, Qt and boost: all implement their own system, even though wxWidget and boost use po/mo files...
2012-11-02 20:03:15 +00:00
Campbell Barton
5dfe20d87b fix for asserts caused by own recent commits to use customdata typemap. 2012-10-31 15:17:35 +00:00
Campbell Barton
c85488ff9e fix for crash in own commit r51773. drawing VBO's used the wrong origindex. 2012-10-31 11:05:32 +00:00
Campbell Barton
00b8c2afa1 style cleanup 2012-10-31 10:09:06 +00:00
Campbell Barton
00acdb6292 remove CD_POLYINDEX customdata layer:
reported as [#29376] BMESH_TODO: remove tessface CD_ORIGINDEX layer

for a single mesh there could be 3 origindex mappings stored, one on the polygons and 2 on the tessfaces.
(CD_POLYINDEX and CD_ORIGINDEX).

as Andrew suggests, now tessfaces (which are really a cache of polygons), using origindex to point to polygons on
the same derived mesh, and polygons only store the original index values.
2012-10-30 19:20:17 +00:00
Bastien Montagne
b4e484e211 Fix for own r51737.
Refactoring of draw code showed another problem: The MCol we want to draw may change without dm rebuild (e.g. when enabling solid textured option)! Also, choosing which MCol layer to use in GPU code is stupid, different draw modes use different layers/order of precedence!

Solved this by adding a new colType parameter to GPU_color_setup, and removing any 'color choosing' code from gpu_buffers.c.
2012-10-30 11:00:06 +00:00
Bastien Montagne
f139377a1a Complete fix for [#33002] Wrong vertex color.
Appart from the color glitch, there was several problems with vpaint:
* "fast_update" mode was never on, because of wrong testing code;
* drawing refresh during stroke in "fast_update" (i.e. no dm rebuild) mode was broken in VBO mode, because updated (tess data) mcol wasn't moved to colors GPUBuffer.

Solved the later point by adding a new DM_DIRTY_MCOL_UPDATE_DRAW flag to DerivedMesh dirty var, which is set each time vpaint stroke directly update me->mcol, and forces GPU_color_setup() to refresh the gpu's colors buffer.

Also got rid of the uggly GPU_color3_upload(), which basically did the same thing, but with an additional intermediate buffer !
2012-10-29 16:26:18 +00:00
Campbell Barton
2de2acc681 add CDDM_from_bmesh(), avoids using BMEditMesh in modifiers. 2012-10-24 07:24:11 +00:00
Sergey Sharybin
6e62491c5a Fix #32522: Object's diffuse color not showing in Sculpt Mode
Added option to display object's diffuse color multiplied by sculpting
mask. This option could be found in Options panel of toolshelf when in
sculpting mode.

Thanks to Nicholas and Brecht for reviewing the patch!
2012-10-22 17:33:53 +00:00
Campbell Barton
f3ece5a108 style cleanup: trailing tabs & expand some non prefix tabs into spaces. 2012-10-21 05:46:41 +00:00
Campbell Barton
aaafa0c2fe code cleanup: move file string defines into BLI_path_utils.h, BKE_utildefines is now unused but keep incase we want to add defines there later. 2012-09-03 22:04:14 +00:00
Campbell Barton
e9caa21830 fix own error in recent smoothview cleanup, also correct some cross references in bmesh docs. 2012-08-17 14:43:20 +00:00
Campbell Barton
c42d0189e5 resolve glitch in the image space where mask editing and UVs would conflict.
now UV editing overrides mask.
2012-07-31 14:16:27 +00:00
Campbell Barton
8f6197bd08 support for curve orco uv's as UV's in cycles.
ideally these would be used as generated coordinates, but this is tricly because cycles calculates its own orco's and doesnt know about curve settings.
2012-07-31 13:43:26 +00:00
Campbell Barton
8f32070e9d fix incorrect assert for mask face checking, also correct own bad spelling 2012-07-18 11:01:23 +00:00
Sergey Sharybin
8a9d1c0a79 Fix #31021: Render settings are not taken into account for curves
Refactored code a bit to make naming a bit more clear and added a
function to create mesh from given display list rather than from
object's displist.

Tested using plain curves (which doesn't imply using derived meshes)
and curves with constructive modifiers (which are using derived meshed).
2012-07-14 17:30:49 +00:00
Sergey Sharybin
4b4bf11469 Fix #31172: applying boolean removes uv maps
The issue was caused by CDDM_tessfaces_to_faces not dealing with CD layers.

There was already function BKE_mesh_convert_mfaces_to_mpolys which converted
mfaces to mpolys with converting all CD layers. Made it a bit more general so
it might work with given arrays of faces/polys and re-used it from CDDM module.

Checked with UV and sculpt data from Blender 2.61 and it loaded nice, so
hopefully there's no regressions in loading older files.
2012-06-04 12:10:38 +00:00
Campbell Barton
b33f0ef0e3 style cleanup 2012-05-27 19:40:36 +00:00
Campbell Barton
5b8cbbe3fd code cleanup: fix possible use of uninitialized value and remove dead initializations. 2012-05-23 21:39:39 +00:00
Campbell Barton
3289628610 fix [#31489] EdgeSplit modifier prevents All Edge to be work correctly since 2.63
bmesh regression where the edge-draw flag was cleared when bmesh modifiers were used.
2012-05-22 07:26:45 +00:00
Campbell Barton
2d2d36fe3b code cleanup:
- style - multi-line ifs move braces onto new lines.
- iterators - convert some to macros, other split up and move brace.
2012-05-20 19:49:27 +00:00
Campbell Barton
ed679693c9 style cleanup: whitespace/indentation 2012-05-19 13:55:54 +00:00
Campbell Barton
af3e348430 code cleanup: use TRUE/FALSE rather then 1/0 for better readability, also replace do prefix with do_ for bool vars. 2012-05-19 13:28:19 +00:00
Campbell Barton
599d213115 style cleanup: line length and ensure some macros error when not ending with ';' 2012-05-17 07:59:25 +00:00
Campbell Barton
305d341ec2 code cleanup: use vector math function minmax_v3v3_v3() and other minor vector function edits. 2012-05-13 11:05:52 +00:00
Campbell Barton
ce17c35240 style cleanup: mainly sculpt/whitespace 2012-05-11 08:05:47 +00:00
Nicholas Bishop
f95f558a8c Add access to mesh vertex customdata to the PBVH. 2012-05-10 20:33:36 +00:00
Campbell Barton
ffed654ff2 style cleanup: blenkernel 2012-05-06 17:22:54 +00:00
Campbell Barton
c91cee2bb9 code cleanup: naming - BKE_mesh_* 2012-05-05 21:28:12 +00:00
Jason Wilkins
a0ce240de9 Renamed "fake" OpenGL identifiers.
Any identifier that looks like an OpenGL identifier, but isn't, causes a false alarm by the glreport.py tool.  Most of these were in comments so I just rephrased the comments.  There were a couple of static functions/macros that were easy enough to rename.  Only the glTexco and glIndex fields of the DMVertexAttribs struct was public and had non-local uses.
2012-05-04 11:50:11 +00:00
Sergey Sharybin
cb99062ebc Style cleanup: spaces around operator 2012-05-01 12:51:17 +00:00