Blender Git Loki

Blender Git commits from all branches.

Page: 861 / 2888

May 25, 2020, 13:39 (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 25, 2020, 13:39 (GMT)
OpenSubdiv: Allow use of regular ordered map
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move comparison to own file
May 25, 2020, 13:39 (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 25, 2020, 13:39 (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 25, 2020, 13:39 (GMT)
OpenSubdiv: Add move semantic to the namespace
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, pass higher level object through comparison
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move utils to base

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

Avoid indirection via define.
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Cleanup, move utility function to base type conversion
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move type conversion to base fodler
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move evaluator to own folder
May 25, 2020, 13:39 (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.
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move edge map to base folder
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor creation of topology refiner

Consolidate it inside of the topology refiner implementation class,
which would allow to store extra data acquired during construction
of the OpenSubdiv's object.
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, use C++ allocation for internal classes

Only use OBJECT_GUARDED_{NEW. DELETE} for structures which are part of
public C-API (and hence can not have new/delete operators overloaded).

Could try being brave and override new/delete from under C++ ifdef.
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move topology refiner factory to topology folder
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move topology refiner to own folder

In the future factory will also be moved there.
May 25, 2020, 13:39 (GMT)
OpenSubdiv: Refactor, move device specific code to own files

Also, move all device files to own folder.

Makes it so checks for device availability are done in a localized
place.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021