Introduction

<< 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.