Hey, Well, not sure why one would want to sculpt in wireframe mode, but ok :)
In my opinion, drawing all edges in non-dyntopo mode is the way to go. Couple of reasons for this: - You don't see much details with optimal display, so it's difficult to predict what stroke would do. - It makes things consistent with dyntopo sculpt. I could ask couple of artists here who are doing quite reasonable amount of sculpting to confirm my expectations about this question. On Sun, Jul 21, 2013 at 11:07 PM, David Jeske <[email protected]> wrote: > I'm trying to fix a bug in sculpt mode display and could use some input... > > User problem... > > With edges enabled but draw-all-edges disabled, edges between coplanar > faces are hidden. In sculpt-mode, as the user-sculpts (no dyntopo), the > co-planar status of edges is not re-evaluated. This means that as edges > which started hidden remain hidden even as the sculpt brush causes them to > no-longer be coplanar. --- This is pretty undesirable, because the user > can't see their work without flipping to edit mode and back. > > Obviously the user can turn on draw-all-edges. > > If that's the only way sculpt mode visuals work, it probably makes sense to > just force draw-all-edges during static sculpt -- like is already done in > weight-paint, and dyntopo sculpt. > > If that's a good enough fix, I'll make a patch, and you can all skip the > rest of this email. > > If not, read on, as I could use some advice.. > > Why it happens and possible fixes... > > Sculpt mode (no-dyntopo) draws object wireframes with the same rules as > object-mode. This means if wireframe is enabled, but draw-all-edges is not, > it uses the ME_EDGEDRAW status to show/hide each edge. This (basically) > means that coplanar edges are hidden (see bmesh_quick_edgedraw_flag). > However, as far as I can see ME_EDGEDRAW is only setup during bulk-convert > of a BMesh into a Mesh for display. > > In theory, I think the "best" solution would be to recalc the ME_EDGEDRAW > flag status only for edges of vertices which are moved by a static sculpt > brush. However, if I'm reading the code correctly, there isn't (currently) > any quick way to correlate the BMEdge edge structure with the MEdge entry > that contains the flag... -- am I reading that right? > > If I got that right, some paths to fix this might be... > > 1) have static-sculpt build a BMEdge to MEdge hashmap so it can efficiently > update edge-draw flags for moved edges and their neighbors (more memory > usage, but should be very little performance hit during sculpt) > > 2) force recalc of the MEdge list when co-planar edges are moved. (only > costs something when coplanar edges are moved, but that cost is > proportional to mesh size so it could be large) > > 3) ... and of course, as I mentioned above -- force draw-all-edges during > sculpting (more draw cost to draw all edges, depending on model) > > Thoughts? > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers > -- With best regards, Sergey Sharybin _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
