01Choose The Process By Bottleneck
Start with the cost you need to remove. A mesh with too many triangles, a kitbash prop with too many materials, and a city block with too many hidden interior faces are three different problems.
| Problem | Try First | Check Before Shipping |
|---|---|---|
| Too many triangles on a normal prop | Triangle reduction | Silhouette, hard edges, normals, UV seams. |
| Close-up editable or deforming topology | Quad reduction | Topology flow, deformation, smoothing. |
| Messy scan or proxy/HLOD asset | Remeshing | Baked material fidelity, holes, silhouette. |
| Too many separate objects | Aggregation | Pivot needs, collision, occlusion, naming. |
| Too many material slots | Material merging | Atlas resolution, channel mapping, shader features. |
| Hidden geometry inside clusters | Visibility culling | Camera coverage and occluder setup. |
| Very distant vegetation or props | Billboard or impostor | View-angle popping, opacity, lighting response. |
| Far skeletal LOD is expensive | Bone reduction | Animation deformation, attachments, ragdoll constraints. |
Setting this up fresh? Start with just two presets - one gentle reduction, one material merge - and resist the urge to ship all eight methods at once. Add remeshing, visibility culling, and impostors once you can actually measure whether they're helping. Two presets people trust beat eight presets people fear.
02Set Targets Artists Can Understand
You get to enjoy the raw SDK settings - artists shouldn't have to. A good tool speaks intent ("Far LOD", "merge this prop"), and quietly maps that to whichever target type actually fits. Nobody painting a character wants to learn what "max deviation" means, and they shouldn't need to. For reference, the four target types and where each earns its keep:
- Triangle ratio: good for predictable test passes and simple batch processing.
- Triangle count: good when a platform budget gives you hard numbers.
- On-screen size: good for LOD chains because the target relates to perceived screen coverage.
- Max deviation: good when silhouette error matters more than a fixed triangle count.
Build presets around the review language your team uses:
| Preset | Likely Settings | Review Question |
|---|---|---|
| Close LOD | Mild reduction, preserve normals/materials. | Can a player notice the switch? |
| Mid LOD | Screen-size reduction, maybe material simplification. | Does the silhouette read correctly? |
| Far LOD | Aggressive reduction or remesh. | Does it hold up in motion? |
| Proxy | Remeshing plus material casting. | Does the baked proxy match the cluster from gameplay distance? |
| Draw-call merge | Aggregation plus material merge. | Did draw calls drop without losing shader-critical features? |
03Treat Materials As First-Class Data
A lot of disappointing Simplygon results are material problems, not triangle problems. A reduction can look great in gray shaded mode and still fail because roughness, normals, opacity, vertex colors, or custom shader data got lost.
- List required channels per asset type before creating casters.
- Use consistent channel names across exporters, DCCs, and engine importers.
- Test tangent-space normal baking on assets with hard edges and mirrored UVs.
- Keep hero materials separate when shader features can't be baked safely.
- Use multiple output materials if one atlas would become too large or too blurry.
- Compare material count, texture memory, and shader complexity before and after processing.
REQUIRED_CASTERS = {
"static_prop": ["Diffuse", "Normals", "Roughness", "Metalness"],
"foliage": ["Diffuse", "Normals", "Opacity"],
"emissive_prop": ["Diffuse", "Normals", "Emissive"],
"vertex_color_asset": ["Diffuse", "Normals", "VertexColors"],
}
04Visibility Settings Need Real Cameras
Visibility culling and visibility-weighted reduction are only as good as the view data you give them. A pretty screenshot camera is not gameplay coverage.
- Use gameplay camera paths, not marketing cameras, for visibility decisions.
- Keep occluder selection sets explicit and reviewable.
- Don't cull geometry destructively until you know all traversal paths and cinematic cameras.
- For open-world assets, build separate presets for player-height, aerial, cinematic, and map-view cameras if needed.
05Characters Need Animation Review
Character LODs are not done just because the bind pose looks fine. Skinning, blend shapes, modular seams, attachments, cloth, and extreme poses all need review.
- Test reductions on idle, locomotion, attack, emote, facial, and extreme-pose clips.
- Preserve important seams between modular parts, especially heads, hands, armor, and clothing.
- Use bone reduction carefully. Far LODs can use fewer bones, but socketed props and gameplay attachments may depend on specific joints.
- Check normal and tangent changes on skin under animation, not only in a static viewport.
- Keep a per-character visual regression set: close camera, mid camera, far camera, and silhouette-only view.
06Batch Safely
Batch processing is where Simplygon becomes pipeline infrastructure, and where tiny assumptions can turn into hundreds of broken assets. Build the batch runner like something people will depend on.
| Feature | Why It Matters |
|---|---|
| Per-asset logging | You need to diagnose one failed source without rerunning the whole library. |
| Stable output paths | Downstream importers, diffs, and build systems need predictable locations. |
| Nonfatal failures | One bad mesh shouldn't block every unrelated asset in a library pass. |
| Pipeline versioning | Results must be traceable to a specific preset and SDK version. |
| Summary reports | Before/after triangles, materials, textures, warnings, and processing time reveal whether the batch helped. |
| Review sampling | Randomly inspect outputs from every batch, plus all assets with warnings. |
07Review With Before-And-After Numbers
Visual inspection matters, but it's not enough. Every processed asset should carry a small report.
- Original and processed triangle count.
- Original and processed material count.
- Output texture count, dimensions, and estimated memory.
- Processing preset and SDK version.
- Warnings and errors from the Simplygon log.
- Image or viewport captures from standard review angles.
Keep the first version of every preset conservative. Push harder only after you have review captures and runtime numbers that justify it.
08Troubleshooting Bad Results
| Symptom | Likely Cause | Try |
|---|---|---|
| Silhouette collapses | Target is too aggressive or wrong stop condition. | Use max deviation or larger on-screen size; preserve border edges. |
| Normals look broken | Bad source normals, hard edges, tangent-space mismatch. | Validate normals, bake normal channel, check engine tangent basis. |
| Textures are blurry | Atlas resolution too low or too many materials merged into one map. | Increase texture size or split into multiple output materials. |
| Opacity foliage fails | Opacity channel was not baked or alpha testing differs in engine. | Add opacity caster and test the engine material path. |
| Remesh has holes | Source mesh has open surfaces or hole-filling is not configured. | Clean source, adjust hole filling, inspect remesh settings. |
| Character seams open | Modular parts were reduced independently or seam locks were missing. | Process modules together or add seam preservation rules. |
| LOD pops badly | Targets too far apart or materials change too much between LODs. | Add intermediate LOD, reduce material changes, review transition distance. |
| Batch output is inconsistent | Mixed source scale, transforms, or material conventions. | Normalize inputs and validate before processing. |
The Technical Artist