Processors

<< Click to Display Table of Contents >>

Navigation:  Simplygon 7.1 feature list >

Processors

Processors

Each Simplygon processor takes an input scene and processes it to generate a specific type of LOD. Some of the processors use the tools that are also separately available via the API during their processing - The reduction processor for instance will use the vertex welder and T-junction remover to repair the mesh (these are controlled via the repair settings for the reduction processor). The processors can generate mapping images between the original scenes and the processed scenes - to be able to cast the original materials and other properties to the processed scene.

 

Reduction

The Reduction processor takes an input scene and reduces the number of triangles and vertices in the scene in a heuristic manner by gradually removing vertices and triangles from the scene.

reduction200

 

 

Targets and stop conditions - The reduction runs until one or multiple criterias have been met. The target can be a specific triangle count or ratio. But it can also be be set to a maximum deviation threshold or set to be optimized for a specific on screen size - meaning the remaining triangle count won't be known prior to reduction, but the quality will.

Reposition vertices - Simplygon can reposition the vertices after reduction to better emulate the silhouette and volume of the original model (with the SG_DATACREATIONPREFERENCES_PREFER_OPTIMIZED_RESULT flag).

repositionvertices

 

Max Edge Length - This setting can be used to limit the length of the edges of the triangles of the LOD.

Geomorph - When creating a LOD with the Reduction Processor, Simplygon has the possibility to create a Geomorph model for the original model. This Geomorph model contains the same number of triangles as the original model, and contains all corner / vertex data needed to morph the original into looking like the LOD. Usually this data are the common fields such as vertex colors, UVs, normals, tangents, bone-weights etc, but it can be any data fields that has been loaded into the Geometry. Using Geomorph right before swapping between the models gives a smooth and pop-free LOD transition.

geomorph

 

Symmetry - Simplygon detects if a mesh is symmetrical and mirrors the reduction on both sides of the symmetry plane.

Symmetry re-triangulation - Symmetric re-triangulation creates a symmetry in the triangulation, where possible, of a mesh before processing. Typically, this is useful when working with triangulated quad meshed, where symmetric features are present, but where triangulation is asymmetric with respect to some given plane.

symmetryquadretriangulator

 

SDK Examples:

ReductionExample

BoneReductionExample

DataCreationPreferencesExample

GeomorphExample

VisibilityWeightExample

This processor works with:

Visibility - Accesible from the visibility settings. Use it to remove non-visible texture space and triangles.

Welder - Accesible from the repair settings.

T-junction remover - Accesible from the repair settings.

Normal repairer - Accesible from the normal calculation settings.

Bone reducer - Accessible from the bone settings.

Material LOD

oMapping image - Accesible from the mapping image settings.

oParameterizer - Accesible from the mapping image settings.

oChart aggregator - Accesible from the mapping image settings.

oMaterial caster - Use it after the processing with the generated mapping image.

 

Remeshing

The Remeshing processor takes an input scene and replaces it with a lightweight proxy geometry that resembles the original, but does not share vertex data or parts of the original mesh data. The produced proxy meshes are always closed 2-manifold objects. The remeshed object is created and optimized for a certain on-screen pixel size - which means that holes and parts that are close to each other will have their gaps filled if the distance is below a pixel. The proxy mesh is assumed to be viewed from the outside, any interior mesh that cannot be seen is removed. The result is a very light-weight mesh that is highly optimized for real-time viewing, or to speed up off-line rendering of small objects. Simplygon is capable of remeshing arbitrary geometry, including non-manifold surfaces.

remeshingprocessor

 

Target - The Proxy LOD is generated for a certain on screen size. The LOD quality and triangle count is relative to the specified on screen size.

Merge cavities and gaps - There is an option to fill holes that are smaller than a manually set merge distance value.

Limit triangle size - Will produce the proxy mesh where no triangles are larger than a manually set maximum triangle size.

Empty space override - Overrides what the remesher considers to be "outside", so you can remesh interiors.

Cutting planes - The remesher creates 2-manifolds which means that even 1-sided non-manifold input geometries will become 2-sided - so sometimes the proxy models will have generated geometry on a side that is not intended to be viewed. For example: if a one-sided plane is being remeshed, the generated 2-manifold proxy will get a back side as well. All the geometry on the bottom side in this case is excessive. A cutting plane can be used to remove all parts of the mesh that is behind the cutting plane. By placing the cutting plane on the ground of scene, the model will no longer be a closed 2-manifold because the bottom is removed and only the intended top geometry will be kept. Multiple cutting planes can be used to cut out tiles of the geometry.

Clipping geometry - Like cutting planes, only defined using a set of geometries instead.

cuttingplane
cuttingplanes

 

SDK Examples:

RemeshingExample

CuttingPlanesExample

This processor works with:

Visibility - Accesible from the visibility settings. Use it to remove non-visible texture space and triangles.

Bone reducer - Accessible from the bone settings.

Material LOD

oMapping image - Accesible from the mapping image settings.

oParameterizer - Accesible from the mapping image settings.

oMaterial caster - Use it after the processing with the generated mapping image.

 

Aggregation

The aggregation processor reduces the amount of draw calls by taking a scene with multiple objects and materials and converting them to a single object with a single material. It will not produce any geometric changes. The original UV charts are preserved but repacked into a new unified texture atlas. There are some options regarding the UV creation.

aggregationprocessor

 

SDK Examples:

AggregationProcessorExample

ChartAggregatorExample

This processor works with:

Visibility - Accesible from the visibility settings. Use it to re-size UV chart sizes depending on how visible they are.

Material LOD

oMapping image - Accesible from the mapping image settings.

oChart aggregator - Accesible from the mapping image settings.

 

Impostor

An impostor model can be created for a model if for instance it will be viewed from a distance and a certain direction. All the geometric details will be mapped as textures to the impostor plane. All material channels can be casted to it. Diffuse, ambient and specular textures etc. The normal map will contain information from both the original normal map and the geometry. An opacity channel will represent the holes of the original model.

impostorprocessor

 

SDK Examples:

ImpostorExample

This processor works with:

Material LOD

oMapping image - Accesible from the mapping image settings.

oParameterizer - Accesible from the mapping image settings.

oMaterial Caster - To cast the materials.

 

Occlusion mesh

The occlusion mesh processor is a relative to the Remeshing processor, but it generates the new geometry solely based on the silhouette of the input geometry. This means internal features and concavities will be filled. The LOD is useful for occlusion culling because the output mesh falls within the original silhouette bounds. Since it removes concavities it is not appropriate for shadow meshes that expect to self-shadow, but for pure casters it works very well. Due to the complexity of the task, this can be quite slow at higher settings.

occlusionmesh