http://www.miikahweb.com/feed.php MiikaHweb - Blender Opensubdiv_compare Branch http://www.miikahweb.com/ MiikaHweb - Blender Opensubdiv_compare Branch fi Wed, 27 Jan 21 12:17:21 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[b311d06]: OpenSubdiv: Allow any order of edge topology/sharpness assignment...]]> http://www.miikahweb.com/en/blender/git-logs/commit/b311d06a1d68c8ee297350154629afd5e9f59d6a b311d06
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Allow any order of edge topology/sharpness assignment

Makes it possible to set adjacent vertices after edge sharpness.

Initially it seemed like useful sanity check, but with time it
became rather a burden.

----------------------------------------
2 Paths Changed]]>
Tue, 26 May 2020 10:37:40 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b311d06a1d68c8ee297350154629afd5e9f59d6aSergey Sharybin
<![CDATA[[b597fa5]: OpenSubdiv: Only store edges topology for non-smooth edges]]> http://www.miikahweb.com/en/blender/git-logs/commit/b597fa56d3c58624a57d5aff2befc8b7c08c0e08 b597fa5
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Only store edges topology for non-smooth edges

This change makes it so vertices of edge are only stored when edge
has non-zero crease. This allows to lower memory footprint of 1.5M
faces from 78 MiB to 54 MiB in the case all creases are zero.

Meshes with crease are more hard to predict due to array-based
storage, so it all depends on index of edge with crease. Worst case
(all edges are creased) still stays at 78 MiB.

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 10:42:13 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b597fa56d3c58624a57d5aff2befc8b7c08c0e08Sergey Sharybin
<![CDATA[[02c353d]: OpenSubdiv: Add regression tests for mesh topology]]> http://www.miikahweb.com/en/blender/git-logs/commit/02c353d9c0ee48b9a0fb3da9f622ddbc20a6c03e 02c353d
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Add regression tests for mesh topology

While this looks trivial it already allowed to catch issues in one
of previous attempt to optimize memory usage. It will totally be
useful for an upcoming refactor of face topology storage.

----------------------------------------
3 Paths Changed]]>
Tue, 26 May 2020 08:49:09 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/02c353d9c0ee48b9a0fb3da9f622ddbc20a6c03e
<![CDATA[[1278bd1]: OpenSubdiv: Keep explicit storage of base mesh faces]]> http://www.miikahweb.com/en/blender/git-logs/commit/1278bd168922629b3b656025601f205b86b8415b 1278bd1
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
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.

----------------------------------------
5 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/1278bd168922629b3b656025601f205b86b8415b
<![CDATA[[13a3422]: OpenSubdiv: Refactor creation of topology refiner]]> http://www.miikahweb.com/en/blender/git-logs/commit/13a342260db77f7eb6adcbf364f63482b47b0bad 13a3422
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
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.

----------------------------------------
7 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/13a342260db77f7eb6adcbf364f63482b47b0badSergey Sharybin
<![CDATA[[1952828]: OpenSubdiv: Add move semantic to the namespace]]> http://www.miikahweb.com/en/blender/git-logs/commit/1952828180bf96474a8c98df167d6a370ba087cd 1952828
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Add move semantic to the namespace

----------------------------------------
1 Path Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/1952828180bf96474a8c98df167d6a370ba087cdSergey Sharybin
<![CDATA[[21fcd29]: OpenSubdiv: Compare edge topology]]> http://www.miikahweb.com/en/blender/git-logs/commit/21fcd298b06c51f58fc54ec9c4faefcc74275f54 21fcd29
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
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.

----------------------------------------
5 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/21fcd298b06c51f58fc54ec9c4faefcc74275f54
<![CDATA[[23b73e4]: OpenSubdiv: Cleanup, remove unused code]]> http://www.miikahweb.com/en/blender/git-logs/commit/23b73e47a7c272d43b572b37fe85eef098fe7e80 23b73e4
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Cleanup, remove unused code

There is no need in edge map anymore.

----------------------------------------
2 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/23b73e47a7c272d43b572b37fe85eef098fe7e80
<![CDATA[[2712d86]: OpenSubdiv: Refactor, move mesh topology comparison to own...]]> http://www.miikahweb.com/en/blender/git-logs/commit/2712d860fd66d50b8fbddad135b17e15ea57c295 2712d86
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Refactor, move mesh topology comparison to own file

Makes it easier to follow and extend.

----------------------------------------
5 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2712d860fd66d50b8fbddad135b17e15ea57c295
<![CDATA[[2ce60b1]: OpenSubdiv: Refactor, move topology refiner factory to topology...]]> http://www.miikahweb.com/en/blender/git-logs/commit/2ce60b10d5d176059a2076983da327688d7804eb 2ce60b1
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move topology refiner factory to topology folder

----------------------------------------
6 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2ce60b10d5d176059a2076983da327688d7804ebSergey Sharybin
<![CDATA[[2d14313]: OpenSubdiv: Allow use of regular ordered map]]> http://www.miikahweb.com/en/blender/git-logs/commit/2d14313a03ea70f0855228cd077e02f7488b5a7f 2d14313
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Allow use of regular ordered map

----------------------------------------
1 Path Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2d14313a03ea70f0855228cd077e02f7488b5a7f
<![CDATA[[30fa31b]: OpenSubdiv: Completely disable topology verification]]> http://www.miikahweb.com/en/blender/git-logs/commit/30fa31b865653343bc847a5269fe82e4f61d8f77 30fa31b
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
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.

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/30fa31b865653343bc847a5269fe82e4f61d8f77Sergey Sharybin
<![CDATA[[3dc5535]: OpenSubdiv: Refactor, move evaluator to own folder]]> http://www.miikahweb.com/en/blender/git-logs/commit/3dc5535b15cd9f1135c69e48604d1570f8ab32f7 3dc5535
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move evaluator to own folder

----------------------------------------
8 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/3dc5535b15cd9f1135c69e48604d1570f8ab32f7Sergey Sharybin
<![CDATA[[47ae183]: OpenSubdiv: Cleanup, move utility function to base type conversion...]]> http://www.miikahweb.com/en/blender/git-logs/commit/47ae1835d234d5c81764807ea9dac566a680dbd0 47ae183
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Cleanup, move utility function to base type conversion

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/47ae1835d234d5c81764807ea9dac566a680dbd0Sergey Sharybin
<![CDATA[[48312d9]: OpenSubdiv: Refactor, move edge map to base folder]]> http://www.miikahweb.com/en/blender/git-logs/commit/48312d9c8ba715be4ce86f326f17ba0bb6a291c1 48312d9
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move edge map to base folder

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/48312d9c8ba715be4ce86f326f17ba0bb6a291c1Sergey Sharybin
<![CDATA[[4fed32d]: OpenSubdiv: Refactor, move topology refiner to own folder]]> http://www.miikahweb.com/en/blender/git-logs/commit/4fed32d38d98f7b5476090dc1a0898bcca095adc 4fed32d
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move topology refiner to own folder

In the future factory will also be moved there.

----------------------------------------
9 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/4fed32d38d98f7b5476090dc1a0898bcca095adcSergey Sharybin
<![CDATA[[524810b]: OpenSubdiv: Cleanup, use C++ range based loop]]> http://www.miikahweb.com/en/blender/git-logs/commit/524810b8d37e5c303de8a2369abf5b5242fd1ea7 524810b
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Cleanup, use C++ range based loop

Avoid indirection via define.

----------------------------------------
2 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/524810b8d37e5c303de8a2369abf5b5242fd1ea7Sergey Sharybin
<![CDATA[[61fc5d5]: OpenSubdiv: Hide individual topology elements]]> http://www.miikahweb.com/en/blender/git-logs/commit/61fc5d52a6427d41147afb947299fd778b86aa11 61fc5d5
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Hide individual topology elements

Move all API to happen via MeshTopology.

This is a preparation for an upcoming memory optimization.

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 08:01:46 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/61fc5d52a6427d41147afb947299fd778b86aa11
<![CDATA[[9879dca]: OpenSubdiv: Refactor, use C++ allocation for internal classes...]]> http://www.miikahweb.com/en/blender/git-logs/commit/9879dca214a7a06876d1db5eb774dc71104a20e2 9879dca
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
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.

----------------------------------------
6 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/9879dca214a7a06876d1db5eb774dc71104a20e2Sergey Sharybin
<![CDATA[[ab4f1d5]: OpenSubdiv: Refactor, move base C-API file to base folder]]> http://www.miikahweb.com/en/blender/git-logs/commit/ab4f1d52a19e25d7020c3e58661df5c5184660f8 ab4f1d5
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move base C-API file to base folder

----------------------------------------
3 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ab4f1d52a19e25d7020c3e58661df5c5184660f8Sergey Sharybin
<![CDATA[[b0b5de8]: OpenSubdiv: Move preliminary geometry counters check to mesh...]]> http://www.miikahweb.com/en/blender/git-logs/commit/b0b5de82574196eb1bd47957866ea31083a404bc b0b5de8
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Move preliminary geometry counters check to mesh topology

----------------------------------------
2 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b0b5de82574196eb1bd47957866ea31083a404bc
<![CDATA[[73817d3]: OpenSubdiv: Add explicit storage for mesh topology]]> http://www.miikahweb.com/en/blender/git-logs/commit/73817d35a6c6a15f2cb76b025cae3db4c4aca191 73817d3
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
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.

----------------------------------------
3 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/73817d35a6c6a15f2cb76b025cae3db4c4aca191
<![CDATA[[bb6dd4a]: OpenSubdiv: Use explicit storage for edge sharpness]]> http://www.miikahweb.com/en/blender/git-logs/commit/bb6dd4a6c31403ed759fd9dbbbf9717c9a66cb54 bb6dd4a
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
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).

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/bb6dd4a6c31403ed759fd9dbbbf9717c9a66cb54
<![CDATA[[c36726c]: OpenSubdiv: Add TODO avoid checking face-varying topology for...]]> http://www.miikahweb.com/en/blender/git-logs/commit/c36726c9982364b461b203476b8217d6b3b1895a c36726c
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Add TODO avoid checking face-varying topology for equality

----------------------------------------
1 Path Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/c36726c9982364b461b203476b8217d6b3b1895a
<![CDATA[[c49d165]: OpenSubdiv: Refactor, move type conversion to base fodler]]> http://www.miikahweb.com/en/blender/git-logs/commit/c49d1653db0329366e4fb0f8654e88b6484b1bc1 c49d165
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move type conversion to base fodler

----------------------------------------
7 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/c49d1653db0329366e4fb0f8654e88b6484b1bc1Sergey Sharybin
<![CDATA[[ca585aa]: OpenSubdiv: Refactor, pass higher level object through comparison...]]> http://www.miikahweb.com/en/blender/git-logs/commit/ca585aa4151f8715afc24e419d929b3d0ffcc3e5 ca585aa
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, pass higher level object through comparison

----------------------------------------
1 Path Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ca585aa4151f8715afc24e419d929b3d0ffcc3e5Sergey Sharybin
<![CDATA[[d1c8c8e]: OpenSubdiv: Refactor, move comparison to own file]]> http://www.miikahweb.com/en/blender/git-logs/commit/d1c8c8e69f846069ac691cad8f63f5876bc8b4a1 d1c8c8e
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Refactor, move comparison to own file

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/d1c8c8e69f846069ac691cad8f63f5876bc8b4a1
<![CDATA[[ec6e900]: OpenSubdiv: Refactor, move utils to base]]> http://www.miikahweb.com/en/blender/git-logs/commit/ec6e90054c38ec0c21a7474cb82421d1631e6327 ec6e900
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
OpenSubdiv: Refactor, move utils to base

Also split them across utilities and types.

----------------------------------------
11 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ec6e90054c38ec0c21a7474cb82421d1631e6327Sergey Sharybin
<![CDATA[[ecd6dc4]: OpenSubdiv: Refactor, move device specific code to own files]]> http://www.miikahweb.com/en/blender/git-logs/commit/ecd6dc4e3206f4b7a8986a0c8574f96dce9ad34e ecd6dc4
Branches : opensubdiv_compare
Author : Sergey Sharybin (sergey)
----------------------------------------
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.

----------------------------------------
16 Paths Changed]]>
Tue, 26 May 2020 07:10:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ecd6dc4e3206f4b7a8986a0c8574f96dce9ad34eSergey Sharybin
<![CDATA[[f1941ee]: OpenSubdiv: Optimize faces storage in mesh topology]]> http://www.miikahweb.com/en/blender/git-logs/commit/f1941eef96bd9cccd1de9cf9e3e5321bde97081f f1941ee
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
OpenSubdiv: Optimize faces storage in mesh topology

Avoid per-face pointer and allocation: store everything as continuous
arrays.

Memory footprint for 1.5M faces:

- Theoretical worst case (all vertices and edges have crease) memory
goes down from 114 MiB to 96 MiB (15% improvement).

This case is not currently achievable since Blender does not expose
vertex crease yet.

- Current real life worst case (all edges have crease) memory goes
down from 108 MiB to 90 MiB (17% improvement).

- Best case (no creases at all) memory goes down from 96 MiB to 78 MiB
(19% improvement).

----------------------------------------
4 Paths Changed]]>
Tue, 26 May 2020 09:08:33 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f1941eef96bd9cccd1de9cf9e3e5321bde97081f
<![CDATA[[f795f57]: OpenSubdiv: Compare sharpness based on converter]]> http://www.miikahweb.com/en/blender/git-logs/commit/f795f57fcb74c66c643953f14ad84b26fb3d3aea f795f57
Branches : opensubdiv_compare
Author : Unknown ()
----------------------------------------
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

----------------------------------------
3 Paths Changed]]>
Tue, 26 May 2020 07:10:18 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f795f57fcb74c66c643953f14ad84b26fb3d3aea