Vector Displacement Map Creation Process

The following are all the steps involved in creating a Vector displacement map for the Octopus-VDM asset library:

1. Object Scanning and Mesh generation 

First the geometry and color of a suitable is captured using photogrammetry. The resulting meshes often contain tens of millions triangles to preserve the fine geometric detail of the real surface.

2. Input preparation and cleanup

Next the mesh is manually oriented, scaled and cropped to define the region for which the VDM is calculated. Optionally unmeasured regions or reconstruction defects are cleaned up.

3. Vector displacment map generation and optimization

At the heart of the Octopus-VDM project is a scalable and memory efficient VDM generation algorithm, which was specifically developed for this application.

The VDM is computed by pulling and pushing a rectangular grid over the input mesh, similar to a rubber sheet. Simultanously the grid is optimized on the GPU to minimizes stretch and distortions and to interpolate unmeasured regions and holes in the input mesh in a C² continuous way (i.e. the surface continues nice and smoothly). For a typical 2048x2048 map over 4 Million quads are processed and aligned to an input meshes of tens of millions triangles.

In theory a good VDM can also be computed using established mesh parameterization algorithms but in practice there are several challanges with this approach when dealing with real world 3D scans. First, missing regions and holes in the input surface can lead to complex boundary shapes that, in combination with the boundary requirements for VDMs are complicated to handle. Second, input meshes not homeomorphic to a disc (e.g with genus larger than 0, or with multiple not connected parts) cause problems with many parameterization methods. Third even modern algorithms like 'Scalable Locally Injective Mappings' [1] have a hard time processing input meshes of up to 40 Million triangles in reasonable time (and memory) and often do not utilize the GPU for parallelization.

4. Color texture generation

After the geometry of the vector displacement map has been computed the color information of the input mesh is transferred to a color texture that comes with each VDM. At this stage an optional collor correction is also performed.

5. Rendering and Packaging

In the last step preview images and turntable animations of the VDMs are rendered before it is added to a package of the Octopus-VDM library as a new asset.

[1] 'Scalable Locally Injective Mappings'. Michael Rabinovich, Roi Poranne, Daniele Panozzo, and Olga Sorkine-Hornung. 2017. ACM Trans. Graph. 36, 2, Article 16 (April 2017)

Erstellen Sie Ihre Webseite gratis! Diese Website wurde mit Webnode erstellt. Erstellen Sie Ihre eigene Seite noch heute kostenfrei! Los geht´s