Simplygon Processing Language (SPL)
Simplygon Processing Language (SPL) describes how an asset shall be processed via specific processing settings. These processing settings can be persisted as a .spl file which enables processing settings re-use across Simplygon applications.
For example, the Simplygon UI may be used to try out various processing settings and once a specific settings set accomplishes the desired processing result, those settings may be saved to a .spl file that then may be used in batch processing using Simplygon Batch.
The .spl settings files has a one-to-one settings mapping to the Simplygon C++ API and can be manually edited if desired.
Tip
When using Simplygon UI, enable the SPL viewer to show the resulting SPL file given the currently configured processing settings.
SPL file example
The following example shows an SPL file targeting the Reduction processor:
{
"Header": {
"SPLVersion": "8.0",
"ClientName": "Simplygon",
"ClientVersion": "8.3.352.28",
"SimplygonVersion": "8.0"
},
"ProcessGraph": {
"Type": "ContainerNode",
"Name": "Node",
"Children": [
{
"Processor": {
"ReductionSettings": {
"AllowDegenerateTexCoords": true,
"CreateGeomorphGeometry": false,
"DataCreationPreferences": "SG_DATACREATIONPREFERENCES_PREFER_OPTIMIZED_RESULT",
"EdgeSetImportance": 1.0,
"GenerateGeomorphData": false,
"GeometryImportance": 1.0,
"GroupImportance": 1.0,
"InwardMoveMultiplier": 1.0,
"KeepSymmetry": false,
"MaterialImportance": 1.0,
"MaxDeviation": 1.0,
"MaxEdgeLength": 2147483647.0,
"OnScreenSize": 300,
"OutwardMoveMultiplier": 1.0,
"ProcessSelectionSetName": "",
"ReductionHeuristics": "SG_REDUCTIONHEURISTICS_FAST",
"ReductionTargets": "SG_REDUCTIONTARGET_TRIANGLERATIO",
"ShadingImportance": 1.0,
"SkinningImportance": 1.0,
"StopCondition": "SG_STOPCONDITION_ALL",
"SymmetryAxis": 1,
"SymmetryDetectionTolerance": 0.0004,
"SymmetryOffset": 0.0,
"TextureImportance": 1.0,
"TriangleCount": 1000,
"TriangleRatio": 0.5,
"UseAutomaticSymmetryDetection": false,
"UseHighQualityNormalCalculation": true,
"UseSymmetryQuadRetriangulator": true,
"UseVertexWeights": false,
"VertexColorImportance": 1.0,
"Enabled": true
},
"MappingImageSettings": {
"AllowTransparencyMapping": true,
"AutomaticTextureSizeMultiplier": 1.0,
"ChartAggregatorLockUVRotation": false,
"ChartAggregatorMode": "SG_CHARTAGGREGATORMODE_TEXTURESIZEPROPORTIONS",
"ChartAggregatorOriginalChartProportionsChannel": "Diffuse",
"ChartAggregatorOriginalTexCoordLevel": 0,
"ChartAggregatorOriginalTexCoordLevelName": "",
"ChartAggregatorSeparateOverlappingCharts": true,
"ForcePower2Texture": false,
"GenerateMappingImage": false,
"GenerateTangents": false,
"GenerateTexCoords": false,
"GutterSpace": 1,
"Height": 512,
"MaximumLayers": 3,
"MultisamplingLevel": 2,
"ParameterizerMaxStretch": 0.2,
"TexCoordGeneratorType": "SG_TEXCOORDGENERATORTYPE_PARAMETERIZER",
"TexCoordLevel": 255,
"UseAutomaticTextureSize": false,
"UseFullRetexturing": false,
"UseVertexWeights": false,
"Width": 512,
"Enabled": false
},
"NormalCalculationSettings": {
"DetectPrimitiveNormals": false,
"HardEdgeAngleInRadians": 6.2657320146596431,
"RepairInvalidNormals": false,
"ReplaceNormals": false,
"ReplaceTangents": false,
"ScaleByAngle": true,
"ScaleByArea": true,
"Enabled": true
},
"RepairSettings": {
"ProgressivePasses": 3,
"TjuncDist": 0.0,
"UseTJunctionRemover": false,
"UseWelding": true,
"WeldDist": 0.0,
"WeldOnlyBorderVertices": false,
"WeldOnlyObjectBoundary": false,
"Enabled": true
},
"VisibilitySettings": {
"CameraSelectionSetName": "",
"ConservativeMode": false,
"CullOccludedGeometry": false,
"FillNonVisibleAreaThreshold": 0.0,
"ForceVisibilityCalculation": false,
"OccluderSelectionSetName": "",
"RemoveTrianglesNotOccludingOtherTriangles": false,
"UseBackfaceCulling": true,
"UseVisibilityWeightsInReducer": false,
"UseVisibilityWeightsInTexcoordGenerator": false,
"VisibilityWeightsPower": 1.0,
"UseCustomVisibilitySphere": false,
"CustomVisibilitySphereFidelity": 4,
"CustomVisibilitySphereYaw": 0.0,
"CustomVisibilitySpherePitch": 0.0,
"CustomVisibilitySphereCoverage": 180.0,
"Enabled": false
},
"BoneSettings": {
"BoneCount": 2147483647,
"BoneRatio": 1.0,
"BoneReductionTargets": "SG_BONEREDUCTIONTARGET_ALL",
"LimitBonesPerVertex": false,
"LockBoneSelectionSetName": "",
"MaxBonePerVertex": 4,
"MaxDeviation": 0.0,
"OnScreenSize": 2147483647,
"RemoveUnusedBones": false,
"RemoveBoneSelectionSetName": "",
"UseBoneReducer": false,
"Enabled": false
},
"Type": "ReductionProcessor"
},
"MaterialCaster": [],
"OutputMaterialName": "SimplygonMaterial",
"DefaultTBNType": "SG_TANGENTSPACEMETHOD_ORTHONORMAL",
"AllowGPUAcceleration": false,
"Type": "ProcessNode",
"Name": "Node",
"Children": [
{
"Format": "ssf",
"Type": "WriteNode",
"Name": "outputlod_0",
"Children": []
}
]
}
]
}
}