Blender Git Loki

Kaikki Blender Git kommitit.

Page: 1610 / 8462

May 27, 2020, 10:07 (GMT)
OpenSubdiv: Cleanup, remove unused code

There is no need in edge map anymore.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Add TODO avoid checking face-varying topology for equality
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Move preliminary geometry counters check to mesh topology
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Keep explicit storage of base mesh faces

Allows to perform comparison by doing linear comparison of indices.

Before cyclic match was used to deal with possibly changed winding from
OpenSubdiv side.

Speeds up comparison (and hence improves FPS), makes code more reliable
nut uses more memory.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Compare edge topology

This change makes it so topology refiner comparison will check vertices
of all existing/provided edges.

The initial claim that due to manifold nature of mesh there is no need
in "deep" edges check was wrong: some areas might only provide edges
with non-zero creases. So if crease of one edge goes changes from 1.0
to 0.0 and crease of other edge goes from 0.0 to 1.0 the old comparison
code would not have caught it.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, move mesh topology comparison to own file

Makes it easier to follow and extend.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Use explicit storage for edge sharpness

Similar to previous change in vertex sharpness, explicitly store value
provided by the converter.

Allows to avoid rather fragile check for boundary edges.

Also allows to avoid need in constructing edge map. This lowers memory
footprint of the comparison process and avoids memory allocations
during the comparison (which is an extra benefit from the performance
point of view).
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Allow use of regular ordered map
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, move comparison to own file
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Compare sharpness based on converter

This change starts the transition of topology refiner comparison
to compare actual values given by the converter, which will not be
affected by the refinement or face winding synchronization steps.

Currently is only implemented for vertex sharpness, but will be
extended further as followup development.

Fixes T71908: Subdiv: Incorrect topology comparison, leading to poor performance
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Add explicit storage for mesh topology

The idea is to use this explicit storage for topology comparison rather
than using base level. While this will have memory overhead it allows
to simplify comparison of such things as:

- Vertex sharpness (where base level from topology refiner will have it
refined, meaning it will be different from what application requested
for non-manifold and corner vertices).

- It will allow to simplify face-vertices comparison, where currently
O(N^2) algorithm is used due to possible difference in face winding.

- It will also allow to avoid comparison-time allocation of edge map.

Currently no functional changes, just preparing for development which
will happen next.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Add move semantic to the namespace
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, pass higher level object through comparison
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, move utils to base

Also split them across utilities and types.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, move base C-API file to base folder
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Cleanup, use C++ range based loop

Avoid indirection via define.
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Cleanup, move utility function to base type conversion
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, move type conversion to base fodler
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Refactor, move evaluator to own folder
May 27, 2020, 10:07 (GMT)
OpenSubdiv: Completely disable topology verification

Previously it was enabled for debug builds, now it is to be enabled
explicitly.

The reason for this is to reduce overhead when debugging other areas
which might involve subdivision surface. When conversion is to be
debugged set this manually in the code.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021