Tools
Most tools are available through the API and will modify or analyze the content of a scene. Some tools are used inside the processors.
Part remover
The Part remover can remove small parts (or decals) from the scene based on their relative size compared to the total scene. The user can set an overall size ratio threshold or one per per-material. An object will be removed if it is smaller than its threshold value.
Simplygon API examples
Welder
The Vertex welder will merge vertices together if they are closer than the selected weld distance. If the weld distance is set to zero, only the vertices that share coordinates will be welded together.
Simplygon API examples
T-junction remover
The T-junction remover will repair a certain type of gaps in the geometry. If the T-junction repair distance is larger than the gap then an extra triangle will be created and the gap will be closed. If the gap is zero, an extra triangle will still be created to make the mesh better suited for reduction.
Simplygon API examples
Normal repairer
The Normal repairer generates new normals for the geometry based on the angle between the triangles. It can either be set to only fix the broken normals or be set to generate new normals for the entire model. If two triangles' angle difference is larger than the hard edge angle cutoff value then there will be a distinct hard shading border between the triangles. If the angle is below the threshold value there will be a smooth continuous normal instead.
Simplygon API examples
Parameterizer
All new UVs for the baked materials can be created by the parameterizer. Setting the maximum allowed stretch will determine the texture coordinate charts. A large stretch tolerance will create larger charts consisting of more triangles but a larger "UV to 3D" triangle area disparity. The distance between the charts in the atlas is determined by the gutter space. The parametrizer creates unique texture coordinates for all the triangles.
Simplygon API examples
Surface mapper
The Surface mapper will generate a Mapping image between two 3D objects. Information can then be transferred from one mesh to another using the mapping image. Not only material channels such as diffuse and specular textures but also custom user channels can be casted. The surface mapper can use the normals of the target mesh (or an overridden search direction) to compute the mapping between the objects. It will search for the original mesh along the search direction and map it to the surface of the target mesh.
Supported components
The Surface mapper supports:
Parameterizer
To generate texture coordinates.Mapping image
Generated from the processor to be able to cast materials.Material Caster
To cast the materials.
Simplygon API examples
Chart aggregator
The UVs for the baked materials can be created by the chart aggregator. It reuses all the input UVs but re-packs them in a combined texture atlas. The charts will be the same as in the original scene but moved and rotated. The user can choose to have the the UV charts' size adjusted based on the size of the model that is being textured (the UV space of a shoe texture will be smaller than the texture of a car.), or have it adjusted so that the size of the input textures determine the size of the output textures. The distance between the UV charts is determined by the gutter space. If multiple objects in the scene have the same UVs and materials It is possible to either group the overlapping charts and only pack them once or to separate overlapping charts and pack every instance separately. For instance if a building has 100 instances of the same window (with the same texture coords and materials) either a single window's textures or all 100 instances will be packed into the unified atlas depending on the settings.
Chart aggregator modes
The chart aggregation modes will scale the output texture space differently based on the input scene's properties.
Simplygon API examples
Visibility
A scene can be optimized to look particularily good from a selected set of cameras. For instance setting the camera in the driving seat of a car to remove all the excess details not visibile to the driver or surrounding the outside of a building to remove the interior details. Visibility assisted triangle reduction: The triangle reduction below has been influenced by the visibility. From the front the model looks like the original but from the side and from the back - the details have been removed. Visibility assisted Material LOD: The UVs (made visible by the checkered pattern) have been generated with the help of the visibility. The weighted influence by the visibility has been tuned very aggressively in this example. Cull occluded geometry: All triangles that are not at all visible from the camera can be completely removed without running a normal reduction process. This generally causes holes on the geometry.
Camera types
The visibility can be computed using different types of cameras:
Perspective camera
A regular camera with a camera/target position and field of view. The resolution of the camera can be tuned using the "pixel field of view" property.Orthographic camera
Views the scene without a perspective projection. Given a view direction it will automatically scale the camera dimensions to encapsulate the scene. The pixel size can be set small enough (in world coordinates) to make sure the camera doesn't miss small details.Omnidirectional camera
Only specified by a point from the where the camera will view the scene in all directions. The resolution of the camera can be increased using the pixel field of view property.
Simplygon API examples
Material caster
There are a number of different casters that work similarly (color caster, normal caster, opacity caster etc). Given the original material table and the mapping image between the LOD and original scene it is able to cast the original materials to the LOD. To reduce mip-map artifacts it is possible to dilate the texture chart colors outwards onto the unused atlas space.
Casters
Color caster
Color casting (diffuse/specular/ambient etc.).Normal caster
Normal map caster.Opacity caster
Opacity map caster.Ambient occlusion caster
This one is different as it won't be merely taking an original material and casting it to the LOD. It will compute ambient occlusion for the scene and create an ambient occlusion map.
Component support
The Material caster supports:
- Mapping image
Required input for material casting.
Simplygon API examples
Vertex color baker
The Vertex color baker will bake a selected material channel as colors to the vertices. After baking the vertex colors the textures can be removed and replaced by just the vertex colors. However, the resolution of the baked materials will depend on the amount of vertices. The sampling quality for the vertices depend on the size of the mapping image.
Component support
The Vertex color baker supports:
- Mapping image
Required input for material casting.
Simplygon API examples
Bone reducer
Simplygon is able to reduce the number of bones used in animation by re-linking vertices to different bones. The user can both select a maximum number of bones allowed per vertex and limit the total number of bones used in the scene. Simplygon can either automatically detect which bones are best suited to be removed, or the user can manually select which bones to keep or remove.
Bone removal
The bones to remove are automatically detected but it is also possible to force bone removal and keep bones from being removed:
Force bone removal
Will remove that bone (and all the bones descendant to that bone) by re-linking all the vertices' bone-ids to other bones.Bone lock
Will make sure that bone (and all its ancestors) is kept.
Component support
The Bone reducer can be used by the following processors:
- Reduction processor
- Remeshing processor
Simplygon API examples
Validator (analyzer)
The Validator analyzes the scene to let the user know if there is something wrong with the scene.