<< Click to Display Table of Contents >> Navigation: Simplygon API 7.1 User guide > Introduction |
Simplygon Overview
The Simplygon SDK provides powerful methods to optimize 3d assets, which can easily be implemented and integrated into your 3d asset pipeline. At the very core, the optimization can be divided into two parts: Geometric optimization and 2d-material optimization.
There are two different approaches that Simplygon uses to optimize the geometric data. Through reduction, geometric data is reduced using re-linking of triangles and vertex removal, and through remeshing, where the geometries are replaced by a lightweight proxy geometry that resembles the original.
The material casting is a post-process of both the reduction and remeshing processing, where the caller application can use the mapping image data to cast material and texture data from the original onto the processed geometry. This can either be used to increase the details of the data, using normalmaps, or greatly reduce the amount of data through baking together a large number of texturemaps into a single one.
What's new in Simplygon?
The big changes of the API are as follows.
Version 7.1
Additions to the API
Aggregation: Chart aggregation now support per-vertex weights for texture sizing.
Remeshing: AllowTransparencyMapping flag in the mapping image settings now allows for low-res remeshings to correctly map transparency to the areas of the texture that should recieve it. For example, a fence remeshed into a solid "wall" gets 0 opacity in between original individual boards.
Remeshing: You can now get a selection set containing the generated geometry output by the remesher, in complex scenes it was a bit hard to know where exactly it ended up.
Visibility: Support for orthographic cameras
Visibility: Added PixelFOV setting to regulate the precision of perspective cameras.
Visibility: Added OrthographicPixelSize setting to regulate the precision of ortho cameras.
Visibility: Added setting for culling not only invisible triangles, but also triangles that don't cast shadow to anything, for shadow mapping purposes.
Experimental/Beta Additions to the API.
Reduction: Added curvature importance.
OcclusionMeshProcessor: New processor for generating occlusion meshes for culling passes.
ShadowMeshProcessor: New processor for generating shadow meshes for cheap shadow mapping. Very early state, not recommended.
Changes to the API
All: More settings have been made availible to allow fields to be set by name rather than by id.
Bugfixes
API changes in detail
Version 7.0
Scene changes and additions:
SelectionSets added to enable the user to select only parts of a scene for processing
Plane nodes added. You can now define planes in the scene, and these planes can be used as cutting planes in the remeshing processor, optionally using selectionsets to only use specific planes
Functions added to make it easier to work with the Scene
The Processors now only takes a Scene as input instead of a GeometryData or SceneNode. SelectionSets can be used to select individual Geometries in a Scene for processing
New GlobalSettings added:
TempFileDirectory lets the user specify which directory temp files will be stored in.
ValidateProcessing enables more thorough checks for the processing within Simplygon, which will help when debugging.
ReductionProcessor:
Overhaul of reduction targets and stop conditions. Now supports any combination of the four supported target types: Triangle count, triangle ratio, max deviation and onscreen size
Updated geomorph support for completely seamless LOD switches
The FeatureFlags settings have been removed, from now on only use the Importance settings
The EnablePreProcessing and EnablePostProcessing settings have been removed. Settings for the individual elements are still availible
RemeshingProcessor:
Now supports multiple and non-axis-aligned cutting planes
New EmptySpaceOverride setting enables remeshing of the inside of a Scene instead of the outside. For example the inside of a cave or a house
BoneSettings overhauled to better correspond with reduction processor settings
SceneAggregator renamed to AggregationProcessor. Settings for chart aggregation moved to MappingImageSettings
Some settings have been renamed to better align with our naming convention
Significant optimizations to reduction and remeshing processors
Parameterization performance increased
Version 6.2
ImpostorProcessor, which generates 2D billboard geometry and mapping for casting
SurfaceMapper, which can create a mapping image between two arbitrary geometries for casting
Overhaul to Parameterizer, now generates better charts
Added surface transfer mode setting to RemeshingProcessor
Added FillMode setting to material casters
Version 6.1
Custom Shading nodes with callbacks. spCustomShadingNode
Bake default channels to vertex colors.
Added Texture Table and Texture objects.
Reuse Original UVs for Material Casting.
Version 6.0
Renamed the Material nodes. For example, spTextureNode is now called spShadingTextureNode, spVertexColorNode is now called spShadingVertexColorNode and spAddNode is now called spShadingAddNode and so on.
Significantly improved normal handling in the reducer.
ReductionProcessor can now use input-output material mapping information to generate more than one mapping image per reduction, and hence cast to more than one output material.
Automatic symmetry detection.
Improved atlas packing and parameterization when generating tex-coords.
Aggregate LOD (SgSceneAggregator), for combining all geometry and materials into one single asset
Version 5.5
Material Node system.
VisibilitySettings for visibility based reduction and texture coordinates generation.
Texture vertex weights for Material LODs.
Material replacer that reduces drawcalls by re-using existing similar materials.
User defined edge-loop preservation.
A preview renderer that can render and store images of the scene to file.
Version 5.3
Automatic visibility-weighting is now available through the API.
New material-constrained part remover in reducer to be able to remove decals prior to reduction.
Version 5.2
ProxyLOD now has the capability of filling holes, cavities and gaps between meshes
MaterialLOD now supports automatic output texture size based on on-screen size.
Version 5.1
Improved Multi-core support
New and improved material casting system.
Improved Normal calculation
Version 5.0
Geomorph data generation
LOD silhouette preservation through vertex repositioning
MaterialLOD now supports more texture output formats
Version 4.5
The reducer now supports generating LODs using the same vertex set as the original geometry
Version 4.4
Next-gen mesh support for 256 UV and Color channels, and skinning support for 16 bones per vertex
Version 4.3
Multi-layer texture support when using material caster
Improved MeshLOD symmetry support
Version 4.2
Parameterizer The previous texture parameterizer has been replaced by a new and improved parameterizer.
Additional features
Support for DDS textures.
Proxy Skinning
Version 4.0
Process objects The previous separate processing parts (welder, borderdetector etc) have been merged into logic processing objects that streamlines the processingflow. Instead of creating each processing parts separately, settings for each processing part can be accessed through the process object. There are now two process objects, the reduction one and the remeshing one.
Material caster To create new maps for the processed geometry, the new material caster interface can be used. Through it, texturedata can be sampled from the original geometry to create new materials for the processed geometry. Both regular texture maps can be created (diffuse, ambient, specular) as well as displacement maps and normal maps. Simplygon can also bake materials into vertex colors using the VertexColorBaker tool. More info in the relevant example.
Tangent space The Simplygon API now contains support for tangent space normal maps, and tangent/binormal calculation. The API have support for both the standard orthonormal tangent calculation, as well as the method used by 3ds Max.
Known Issues
Large address aware issue on Windows 7 64bit When executing a 32bit hosting process with the LARGEADDRESSAWARE option on the x64 Windows. SimplygonAPI initialization fails. The solution to the problem is a windows Hotfix by Microsoft which can be found here at http://support.microsoft.com/kb/2588507.