Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-24Cleanup: spelling, repeated wordsCampbell Barton
2019-09-26Fix T70163: Error painting with Subdivision at end of stackSergey Sharybin
Deformation of subdivision surface modifier was using wrong coordinates for the coarse mesh: as the modifier flow goes the coordinates are to be taken from the input array of coordinates.
2019-09-19Subdiv: Cleanup, commentsSergey Sharybin
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).
2019-08-27Fix multires modifier using too much memory outside of sculpt modeBrecht Van Lommel
This reduce memory usage by about 25% in object mode for multires meshes.
2019-07-29Fix T67800: Incorrect behavior of simple Subdivision SurfaceSergey Sharybin
Stupid typo in an original fix, need to operate in 3D, not in 2D.
2019-07-25Fix T67599: Issue with Simple subdivision of loose edgesSergey Sharybin
They were always acting as a B-Spline subdivision.
2019-07-08Fix T62941 Subdivision Modifier Showing all face dotsClément Foucault
Previously in 2.79 we were using a specialized drawing using derivedMesh. Now the subsurf modifier tag each center vertex as facedot and let the DRWManager pick it up. Some modifiers (deforming ones) do not clear the tag so we can use this technique even if there is deforming modifiers after subsurf modifiers.
2019-06-17Cleanup: comment, RNA spellingCampbell Barton
2019-04-18Cleanup: add trailing commas to avoid right shiftCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-07Refactor CDData masks, to have one mask per mesh elem type.Bastien Montagne
We already have different storages for cddata of verts, edges etc., 'simply' do the same for the mask flags we use all around Blender code to request some data, or limit some operation to some layers, etc. Reason we need this is that some cddata types (like Normals) are actually shared between verts/polys/loops, and we don’t want to generate clnors everytime we request vnors! As a side note, this also does final fix to T59338, which was the trigger for this patch (need to request computed loop normals for another mesh than evaluated one). Reviewers: brecht, campbellbarton, sergey Differential Revision: https://developer.blender.org/D4407
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-04Cleanup: Typos in comments (to to)Pablo Vazquez
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-26Cleanup: remove redundant BKE/BLI/BIF headersCampbell Barton
2019-01-24Subdiv: Fix wrong orig_index for vertices of a loose edgeSergey Sharybin
2019-01-24Fix T60408: Loose edge distort vertex on a surfaceSergey Sharybin
Treat those vertices as infinitely sharp. This matches the way how OpenSubdiv's topology is being created.
2019-01-23Fix T58994: Subdivision modifier generates artifacts with crease=1Sergey Sharybin
The issue was caused by the lack of averaging of normals for vertices which are on the ptex face boundaries.
2019-01-10Fix T60393: Subdiv gives wrong vertex colorsSergey Sharybin
2018-12-12Fix T58450: Skin modifier not working if applied after subsurfSergey Sharybin
2018-12-03Subdiv: Set edge render flags according to Optimal DisplaySergey Sharybin
This is a part of T58609, but work is still needed to properly support this flag in the draw manager.
2018-11-28Fix broken subdivision surface edit mode cage display.Brecht Van Lommel
2018-09-24Spelling fixes in comments and descriptions (2.8 changes), patch by luzpaz.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D3719
2018-09-04Subdiv: Move mesh creation functionality to own headerSergey Sharybin
2018-09-04Subdiv: Move evaluation functionality to own headerSergey Sharybin
2018-09-04Subdiv: Move FOREACH functionality to own headerSergey Sharybin
2018-08-24Cleanup: indentation, styleCampbell Barton
2018-08-22MSVS 2017 Bug - Subdiv MeshCharlie Jolly
Apparently, struct initialization can not be empty, Reviewers: sergey Reviewed By: sergey Tags: #bf_blender_2.8 Differential Revision: https://developer.blender.org/D3636
2018-08-22Subsurf: Implement foreach traversal for subdivsion topologySergey Sharybin
This makes it more generic process to perform actions which depend on ptex face + (u, v) and on subdivided vertex index. Currently it is still just a subdivision calculation process, but same foreach callbacks can easily be used to propagate displacement from known vertex locations back to displacement grids.
2018-08-15Multires: Initial groundwork to hook up displacement to new Subdiv objectSergey Sharybin
Adds a displacement support for OpenSubdiov based subsurf object implemented as a callback which gives vector displacement in object space. Currently is implemented to calculate displacement based on myltires displacement grids, but we can support things in the future if needed. Submitting to review to see if there is something obviously wrong in the direction (old multires code was sharing same displacement code to both calculate final displaced mesh and reshape an existing one, which is rather confusing and probably can be done more cleanly?). Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D3604
2018-08-15Subdiv: Cleanup, dead codeSergey Sharybin
2018-08-15Subdiv: Fix memory leak interpolating CD_MDISPSergey Sharybin
Can not copy data without freeing the previous storage.
2018-08-13OpenSubdiv: Add stub implementation of C-APISergey Sharybin
C-API is way smaller than the rest of the code which uses it. So better to conditionally compile stub implementation than to keep adding ifdef everywhere.
2018-08-08Cleanup: styleCampbell Barton
2018-08-01Subsurf: Evaluate all UV layersSergey Sharybin
Before that it was only first UV layer which was properly evaluated, the rest were ignored. Now all layers are being properly handled.
2018-08-01Subsurf: Support subdivision of loose elementsSergey Sharybin
Applies to vertices and edges. Biggest annoyance here is that OpenSubdiv's topology converter expects that there is no loose geometry, otherwise it is getting confused. For now solution is to create some sort of mapping from real Mesh vertex and edge index to a non-loose-index. Now the annoying part is that this is an extra step to calculate before we can compare topology, meaning FPS will not be as great as if we knew for sure that topology didn't change. Loose edges subdivision is different from what it used to be with old subdivision code, but probably nice feature now is that endpoints of loose edges are stay at the coarse vertex locations. This allows to have things like plane with hair strands, without need to duplicate edge vertices at endpoints. All this required some re-work of topology refiner creation, which is now only passing edges and vertices which are adjacent to face. This is how topology refiner is supposed to be used, and this is how its validator also works. Vertices which are adjacent to loose edges are marked as infinite sharp. This seems to be good-enough approximation for now. In the future we might tweaks things a bit and push such vertices in average direction of loose edges, to match old subdivision code closer.
2018-08-01Subsurf: Cleanup, remove dead codeSergey Sharybin
2018-07-31Cleanup: style, duplicate includesCampbell Barton
2018-07-31Cleanup: styleCampbell Barton
2018-07-31Subsurf: Rework in a way that patches boundaries are merged togetherSergey Sharybin
The idea is to create vertices along the coarse edges once, without splitting coarse edges on separate ptex faces. This requires some indexing magic, vertices within a patch are no longer sequential. Not sure how to make it nicer without such a black magic looking calculations (which are basically boiling down to mimicking order of verts/edges creation). In the current offsets calculation loose verts and edges are not properly taken into account, but those are causing topology refiner to fail anyway, so it needs a bit deeper change. Reviewers: brecht Differential Revision: https://developer.blender.org/D3570
2018-07-27Subsurf: Correction to origindexSergey Sharybin
Only enforce origindex to NONE for a generated geometry. For the rest of geometry rely on CustomData_copy() to set it to the proper value. This will ensure origindex is set correct for cases when there is an array modifier prior to subsurf.
2018-07-23Subsurf: Fix wrong vertices index in vertex data interpolationSergey Sharybin
2018-07-23Subsurf: Subdivide polygons to the same resolutionSergey Sharybin
Previously it was ptex faces which were subdividing to the same resolution. This was looking like more details for non-quad faces, but was also causing discontinuity in the edge where quad touches non-quad polygon. Now ptex faces which are coming from non-quad faces are subdivided at a half of resolution, matching old behavior and solving discontinuity problem.
2018-07-20Subsurf: Add basic statistics to help benchmarkingSergey Sharybin
2018-07-19Subsurf: Fix wrong edge original indexSergey Sharybin
2018-07-19Subsurf: Set original index for high-poly verticesSergey Sharybin
2018-07-19Cleanup: styleCampbell Barton
2018-07-18Subsurf: Begin new subdivision surface moduleSergey Sharybin
The idea is to use this as a replacement of old CCG, now it is based on OpenSubdiv. The goal is to reduce any possible overhead which was happening with OpenSubdiv used by CCG. Currently implemented/supported: - Creation from mesh, including topology on OpenSubdiv side, its refinement. - Evaluation of limit point, first order derivatives, normal, and face-varying data for individual coarse position. - Evaluation of whole patches. Currently not optimized, uses evaluation of individual coarse positions. - Creation of Mesh from subdiv, with all geometry being real: all mvert, medge, mloop, and mpoly. This includes custom data interpolation, but all faces currently are getting separated (they are converted to ptex patches, which we need to weld back together). Still need to support lighter weights grids and such, but this is already a required part to have subsurf working in the middle of modifier stack. Annoying part is ifdef all over the place, to keep it compilable when OpenSubdiv is disabled. More cleaner approach would be to have stub API for OpenSubdiv, so everything gets ifdef-ed in a much fewer places.