Blender Git Loki

Blender Git "opensubdiv-modifier" branch commits.

Page: 10 / 10

May 10, 2014, 20:53 (GMT)
Made evaluator persistent in memory

Now OpenSubdiv evaluator descriptor will only be re-created
if mesh topology changes.

Apparently don't see huge speed raise with CPU evaluation,
but this change lands a bit of a basis for further changes.

Requires changes made in OpenSubdiv's C-API which are currently
only there:

https://github.com/Nazg-Gul/OpenSubdiv/tree/dev
May 10, 2014, 13:19 (GMT)
Reshuffle OpemSubdiv libraries in order to solve linking errors

No idea why it worked before.
May 10, 2014, 13:05 (GMT)
Merge branch 'master' into opensubdiv-modifier
May 2, 2014, 09:09 (GMT)
Bring back face debug print
May 2, 2014, 06:48 (GMT)
Fallback simple subdivisions to legacy code

For until OpenSubdiv case is capable of handling simple subsurf
let's fallback to legacy implementation rather than doing CC
subdivisions.

Not really sure we'll be able to have a single implementation
for bot of the cases, but bet simple subsurf might be re-done
real easy once we clean up the CCG structures for the osd.
May 2, 2014, 00:42 (GMT)
Initial support of UVs subdivisions

This mainly solves wrong memory access for now making
blender free from crashes and weird looking meshes.

However it's still not fully proper UV subdivisions,
seems seams are to be marked as crease of 1.0 in order
to be compatible with legacy UVs subdivisions.
May 1, 2014, 22:49 (GMT)
Code cleanup: make branch closer to master

There were some experiment changes which weren't fully removed.
May 1, 2014, 22:47 (GMT)
Corrected base vertices counting

Since ptex faces change we don't need to tessellate non-quads
manually hence we shouldn't allocate extra vertices. It's all
up to OpenSubdiv now.
May 1, 2014, 22:41 (GMT)
Added some magic to support NGons

Seems tris and ngons are working now, however need
some much more intense testing.
May 1, 2014, 21:49 (GMT)
Simplify NGons code by using ptex faces

OpenSubdiv actually splits ngons and triangles into quads
in the same exact way as we need it for grids. Take advantage
of this and simplify our code.

TODO: Ngon edges are still giving issues tho.
May 1, 2014, 07:09 (GMT)
Merge branch 'master' into opensubdiv-modifier
April 30, 2014, 08:12 (GMT)
Merge branch 'master' into opensubdiv-modifier
April 30, 2014, 08:12 (GMT)
Enable threading on the CCG evaluation

Makes it so OSD SS modifier is about 10% slower than the
legacy one. This might be speed up further by skipping
all the tricks with CCGVert/Edge/Face intemediate storage
i guess.

Anyway, consider the current implementation not that bad.

NOTE: You need latest development version of OpenSubdiv,
otherwise threaded evaluation wouldn't work at all.
April 25, 2014, 13:02 (GMT)
Support edge evaluation for triangles and ngons

Still gives issues for NGons and also it's something
strange going on when applying modifier on the triangle.

Triangles seems to be looking all fine for until the
modifier is applied on the mesh, but ngons still needs
some investigation.

Also, just understood that old SS code did something
special with triangles, it didn't handle triangles in
the same way as NGons. The thing is, treating triangles
as ngons makes them looking as if some crease is being
applied on the corners.

Would need to write some special case for this in
opensubdiv case.
April 25, 2014, 11:37 (GMT)
Moving towards support of NGons and triangles

It's done by creating a per-corner faces in OpenSubdiv
and interpolating them directly into CCG.

Grids interpolation by itself is done, but no edges are
being interpolated at this moment.

Also current way of creating "fake" per-corner faces
subdivides edges for every original face, which means
mesh would loose manifold when having two adjacent
tris or ngons.

At least nothing crashes at this point so don't see
a reason why not to consider this is a milestone.
April 25, 2014, 11:37 (GMT)
Code cleanup: reshuffle some code into helper functions

Makes it overall code flow easier to follow.
April 25, 2014, 11:37 (GMT)
Made quads fully working now

Still a bit hackish and unclean, but that's rather good starting point
before moving to tris/n-gons support.

- Fixed face-to-corner u/v mapping which was wrong for some cases.
- Made it so edges are getting nicely evaluated.
April 25, 2014, 11:37 (GMT)
Fix compilation error with the current OpenSubdiv repository
April 25, 2014, 11:37 (GMT)
Initial integration of OpenSubdiv into Subsurf modifier

Summary:
This commit is an initial implementation of subsurf
modifier using OpenSubdiv instead of our older CC.

This doesn't change data layout and only uses OpsnSubdiv
evaluation API to get coordinates and values for grid
elements.

Main changes:

- Tweaked build systems to add flag to build with OSD.
- Added C-API for opensubdiv, so it might be used from
blender kernel.
- Subsurf evaluation is hacked in into CCGSubSurf.

TODO:
- Clean up all the WIP code, make it more clear
separation between legacy CCGSubSurf code and new
one based on OSD evaluation.
- Edges are not evaluating currently at all.
- UVs subdivision currently would lead to incorrect
memory usage.
- Subdivision happens in a single thread.
- Loose edges are not supported.
- Only quads does work now, need to support
triangles and N-gons.

Only committing this to share via developer.b.o with
other developers who are interested.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D56
April 25, 2014, 11:37 (GMT)
Major refactor of the current state of the patch

- Using new OpenSubdiv C-API from the Dirk's patch D132
- Split ccgSubSurf__syncOpenSubdiv into set of smaller functions.
- Drop intern/opensubdiv, it needs to be ported to current
OpenSubdiv code anyway and currently not really needed.
- Use smarter detection of OpenSubdiv libraries since now we're
not only using osdCPU library.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021