Content is user-generated and unverified.

Technique Compatibility Matrix

This document provides 2D matrices showing how techniques work together.

Legend:

  • ✅ = Strong synergy (designed to work together)
  • ⚠️ = Possible (can combine with effort)
  • ❌ = Incompatible (fundamentally different paradigms)
  • ➖ = Same technique / not applicable

Core Geometry Techniques

G1 BillboardG2 SDFG3 MeshG4 VoxelG5 SplatG6 NaniteG8 NoiseG9 SubdivG11 CSGG13 Height
G1 Billboard⚠️⚠️⚠️
G2 SDF⚠️⚠️
G3 Mesh⚠️⚠️⚠️⚠️
G4 Voxel⚠️⚠️⚠️
G5 Splat⚠️⚠️⚠️
G6 Nanite⚠️⚠️
G8 Noise⚠️⚠️
G9 Subdiv⚠️⚠️⚠️⚠️⚠️
G11 CSG⚠️⚠️⚠️
G13 Height⚠️⚠️⚠️⚠️⚠️

Key Observations:

  • G2 (SDF) is fundamentally incompatible with polygon-based techniques (G3, G6, G9)
  • G6 (Nanite) works great with traditional meshes, impostors for LOD
  • G4 (Voxel) bridges SDF and mesh worlds - can convert to either
  • G8 (Noise) is highly compatible with procedural approaches (SDF, voxel, heightmap)

Geometry × Procedural Generation

P1 BuildingP2 TerrainP3 VegP4 ProcTexP5 WangP6 ComputeP7 GrammarP8 Fractal
G1 Billboard⚠️⚠️⚠️
G2 SDF⚠️
G3 Mesh⚠️
G4 Voxel⚠️⚠️
G5 Splat⚠️⚠️⚠️
G6 Nanite⚠️
G8 Noise⚠️⚠️⚠️
G9 Subdiv⚠️⚠️⚠️⚠️⚠️
G11 CSG⚠️
G13 Height⚠️⚠️

Key Observations:

  • P6 (Compute Gen) is incompatible with Nanite (needs pre-built clusters)
  • P8 (Fractals) work excellently with SDF and voxels, poorly with traditional meshes
  • P2 (Terrain) works well with almost everything
  • G5 (Splats) don't integrate well with procedural generation (captured data)

Geometry × Rendering Paradigms

R1 ForwardR2 RayMarchR3 VoxelCastR4 ParticleR5 DeferredR6 Forward+R7 RTR8 SoftRast
G1 Billboard⚠️
G2 SDF⚠️⚠️
G3 Mesh⚠️
G4 Voxel⚠️⚠️⚠️⚠️⚠️⚠️⚠️
G5 Splat⚠️⚠️⚠️⚠️
G6 Nanite⚠️⚠️⚠️
G8 Noise⚠️⚠️⚠️⚠️⚠️⚠️
G9 Subdiv⚠️
G11 CSG⚠️⚠️⚠️⚠️⚠️⚠️
G13 Height⚠️⚠️⚠️

Key Observations:

  • R2 (Ray Marching) is the natural match for SDF, incompatible with most mesh techniques
  • G6 (Nanite) uses R8 (Software Rasterization) internally
  • R7 (Ray Tracing) works with traditional geometry, not SDF or pure procedural
  • G4 (Voxel) is flexible - can be ray cast, converted to mesh, or marched

Geometry × Texture Techniques

T1 CompressT3 AtlasT4 VirtualT6 ProcTexT7 TriplanarT8 PaletteT12 Detail
G1 Billboard⚠️⚠️
G2 SDF⚠️
G3 Mesh⚠️
G4 Voxel⚠️⚠️⚠️⚠️
G5 Splat⚠️⚠️⚠️
G6 Nanite⚠️⚠️
G8 Noise⚠️⚠️
G9 Subdiv⚠️⚠️⚠️
G11 CSG⚠️⚠️⚠️⚠️
G13 Height⚠️

Key Observations:

  • T6 (Procedural Textures) is the natural match for SDF and procedural geometry
  • T7 (Triplanar) is essential for geometry without UV coordinates (voxels, SDF, CSG)
  • G5 (Splats) have their own color representation, don't use traditional texturing
  • T1 (Compression) doesn't apply to pure procedural (nothing to compress)

Geometry × Animation

A1 KeyframeA2 SkeletalA4 ProceduralA5 VATA6 MorphA8 Flipbook
G1 Billboard⚠️⚠️
G2 SDF⚠️⚠️
G3 Mesh⚠️
G4 Voxel⚠️⚠️⚠️
G5 Splat⚠️⚠️
G6 Nanite⚠️⚠️⚠️⚠️
G8 Noise⚠️⚠️
G9 Subdiv⚠️
G11 CSG⚠️⚠️
G13 Height⚠️⚠️

Key Observations:

  • A2 (Skeletal) only works with deformable mesh representations (G3, G9)
  • A4 (Procedural) is the natural match for SDF and procedural geometry
  • G6 (Nanite) has limited skeletal support (world-space evaluation issue)
  • A8 (Flipbook) is primarily for billboards and 2D content

Geometry × Lighting

M1 FlatM2 PhongM3 PBRM4 LightmapM5 SHM7 ToonM8 Matcap
G1 Billboard⚠️⚠️⚠️⚠️
G2 SDF⚠️
G3 Mesh
G4 Voxel⚠️⚠️⚠️⚠️
G5 Splat⚠️⚠️⚠️
G6 Nanite
G8 Noise⚠️⚠️
G9 Subdiv
G11 CSG⚠️⚠️
G13 Height

Key Observations:

  • M4 (Lightmaps) requires UV-unwrapped static geometry - incompatible with SDF, noise, CSG
  • M1 (Flat) and M7 (Toon) work with almost everything
  • G3 (Mesh) is the most lighting-compatible representation
  • M8 (Matcap) needs view-space normals, doesn't work with splats

Geometry × LOD

L1 DiscreteL2 ContinuousL3 HLODL4 ImpostorL5 Streaming
G1 Billboard⚠️
G2 SDF⚠️⚠️
G3 Mesh
G4 Voxel⚠️⚠️
G5 Splat⚠️⚠️
G6 Nanite
G8 Noise⚠️
G9 Subdiv⚠️⚠️
G11 CSG⚠️⚠️⚠️
G13 Height⚠️⚠️

Key Observations:

  • G6 (Nanite) has excellent LOD support - it's the whole point
  • L3 (HLOD) and L4 (Impostor) need concrete geometry to merge/bake
  • G2 (SDF) has natural continuous LOD (reduce iterations) but no discrete/baked LOD
  • L5 (Streaming) works with most approaches that have serializable data

Geometry × Compression

C2 QuantizeC3 OctreeC5 LZC7 DAGG7 MeshCompress
G1 Billboard
G2 SDF⚠️⚠️
G3 Mesh⚠️
G4 Voxel
G5 Splat⚠️
G6 Nanite⚠️
G8 Noise
G9 Subdiv⚠️
G11 CSG⚠️⚠️⚠️⚠️
G13 Height

Key Observations:

  • G8 (Noise) is incompatible with all compression - it IS compression
  • C3 (Octree) and C7 (DAG) are specifically for voxels
  • G7 (Mesh Compression) only applies to mesh-based geometry
  • C2 (Quantization) is nearly universal for any numeric data

Geometry × Precomputation

PRE2 LightPRE3 LODPRE7 AOPRE8 SDFPRE12 ImpostorPRE17 Cache
G1 Billboard⚠️⚠️⚠️
G2 SDF⚠️
G3 Mesh⚠️
G4 Voxel⚠️⚠️⚠️
G5 Splat⚠️
G6 Nanite⚠️⚠️
G8 Noise⚠️
G9 Subdiv⚠️
G11 CSG⚠️⚠️⚠️
G13 Height⚠️⚠️

Key Observations:

  • PRE2 (Lightmaps) requires UV-unwrapped static meshes
  • PRE8 (SDF Baking) can convert any geometry to SDF representation
  • PRE17 (Caching) works with any procedural approach
  • G8 (Noise) can't be pre-lightmapped, LOD'd, or AO-baked (no surface)

Procedural × Procedural

P1 BuildP2 TerrainP3 VegP4 ProcTexP5 WangP6 ComputeP7 GrammarP8 Fractal
P1 Building⚠️
P2 Terrain⚠️
P3 Vegetation⚠️⚠️
P4 ProcTex⚠️
P5 Wang Tiles⚠️⚠️⚠️⚠️
P6 Compute⚠️⚠️
P7 Grammar⚠️⚠️⚠️⚠️⚠️
P8 Fractal⚠️⚠️⚠️⚠️

Key Observations:

  • Procedural techniques are highly compatible with each other - lots of ✅
  • P2 (Terrain) + P3 (Vegetation) + P1 (Buildings) is a classic combination
  • P8 (Fractals) is more specialized, harder to integrate with structured generation
  • P6 (Compute Gen) enables most other procedural techniques at scale

Rendering × Rendering (Hybrid Combinations)

R1 ForwardR2 RayMarchR3 VoxCastR4 ParticleR5 DeferredR6 Fwd+R7 RT
R1 Forward⚠️⚠️⚠️⚠️
R2 RayMarch⚠️⚠️⚠️⚠️⚠️⚠️
R3 VoxelCast⚠️⚠️⚠️⚠️⚠️⚠️
R4 Particle⚠️⚠️⚠️
R5 Deferred⚠️⚠️⚠️⚠️
R6 Forward+⚠️⚠️⚠️⚠️
R7 RT⚠️⚠️⚠️⚠️⚠️

Key Observations:

  • R2 (Ray Marching) is difficult to combine with other renderers (different paradigm)
  • R5 (Deferred) + R7 (RT) is a common hybrid (rasterize G-buffer, trace rays)
  • R4 (Particles) integrates well with most rasterization approaches
  • Most hybrids require careful depth/compositing handling

Texture × Texture

T1 CompressT3 AtlasT4 VirtualT6 ProcT7 TriplanarT8 PaletteT12 Detail
T1 Compress⚠️
T3 Atlas⚠️⚠️⚠️⚠️
T4 Virtual⚠️⚠️⚠️⚠️
T6 Procedural⚠️⚠️⚠️
T7 Triplanar⚠️⚠️
T8 Palette⚠️⚠️⚠️
T12 Detail⚠️⚠️⚠️

Key Observations:

  • T1 (Compression) is incompatible with T6 (Procedural) - nothing to compress
  • T7 (Triplanar) + T6 (Procedural) is a powerful combination for SDF
  • T3 (Atlas) has mipmap bleeding issues with T12 (Detail)
  • T4 (Virtual) is a form of atlasing, complex to combine with regular atlases

Animation × Animation

A1 KeyA2 SkeletalA4 ProcA5 VATA6 MorphA8 Flip
A1 Keyframe⚠️⚠️
A2 Skeletal⚠️
A4 Procedural⚠️⚠️⚠️
A5 VAT⚠️⚠️⚠️⚠️
A6 Morph⚠️⚠️
A8 Flipbook⚠️⚠️

Key Observations:

  • A2 (Skeletal) + A6 (Morph) is the standard character animation combo
  • A4 (Procedural) + A2 (Skeletal) enables IK, physics, layered animation
  • A5 (VAT) is somewhat isolated - baked simulation doesn't blend well
  • A8 (Flipbook) is 2D-focused, doesn't combine with 3D techniques

Lighting × Lighting

M1 FlatM2 PhongM3 PBRM4 LightM5 SHM7 ToonM8 Mat
M1 Flat⚠️
M2 Phong⚠️⚠️⚠️
M3 PBR⚠️⚠️
M4 Lightmap⚠️⚠️⚠️
M5 SH⚠️⚠️
M7 Toon⚠️⚠️⚠️⚠️
M8 Matcap⚠️⚠️⚠️

Key Observations:

  • M3 (PBR) + M4 (Lightmaps) + M5 (SH) is the standard modern combo
  • M7 (Toon) + M8 (Matcap) works well for stylized looks
  • M8 (Matcap) is incompatible with M3 (PBR) - completely different philosophy
  • Mixing lighting models (M1-M3) on same object looks wrong

LOD × LOD

L1 DiscreteL2 ContinuousL3 HLODL4 ImpostorL5 Stream
L1 Discrete⚠️
L2 Continuous⚠️⚠️⚠️
L3 HLOD⚠️
L4 Impostor⚠️
L5 Streaming

Key Observations:

  • L5 (Streaming) combines well with everything (orthogonal concept)
  • L1 (Discrete) + L3 (HLOD) + L4 (Impostor) is a common multi-level approach
  • L2 (Continuous) is harder to combine (transitions vs discrete swaps)

Spectrum Position × Technique Compatibility

Shows which spectrum positions each technique family works best with.

Geometry Best Positions

TechniqueBest D PositionReason
G1 BillboardD2-D5Retained texture, dynamic transform
G2 SDFD8-D10Computed per-pixel
G3 MeshD1-D6Retained geometry
G4 VoxelD5-D8Can be static or dynamic
G5 SplatD1-D3Retained captured data
G6 NaniteD1Maximum retention
G8 NoiseD8-D10Computed per-pixel
G9 SubdivD2-D6Retained control cage
G11 CSGD2 (baked) / D8 (SDF)Depends on approach
G13 HeightD2-D7Retained map, dynamic tess

Rendering Best Positions

TechniqueBest D PositionReason
R1 ForwardD2-D6Standard retained pipeline
R2 Ray MarchD8-D10Stateless per-pixel
R3 Voxel CastD5-D8Semi-retained voxels
R4 ParticleD3-D7Mix of retained and dynamic
R5 DeferredD2-D5Retained G-buffer approach
R6 Forward+D2-D5Retained with compute
R7 RTD1-D4Needs retained AS

Full Technique ID Quick Reference

For cross-referencing the matrices:

Geometry: G1=Billboard, G2=SDF, G3=Mesh, G4=Voxel, G5=Splat, G6=Nanite, G7=MeshCompress, G8=Noise, G9=Subdiv, G10=Displace, G11=CSG, G12=NURBS, G13=Heightmap, G14=SpriteStack, G15=StyleTransfer, G16=GeomImage

Procedural: P1=Building, P2=Terrain, P3=Vegetation, P4=ProcTexture, P5=Wang, P6=ComputeGen, P7=Grammar, P8=Fractal

Texture: T1=Compress, T2=Supercompress, T3=Atlas, T4=Virtual, T5=Synthesis, T6=Procedural, T7=Triplanar, T8=Palette, T9=Polynomial, T10=Fourier, T11=Neural, T12=Detail, T14=MaterialID

Rendering: R1=Forward, R2=RayMarch, R3=VoxelCast, R4=Particle, R5=Deferred, R6=Forward+, R7=RT, R8=SoftwareRast, R9=PRT

Compression: C1=Delta, C2=Quantize, C3=Octree, C4=RLE, C5=LZ, C6=Entropy, C7=DAG, C8=PCA

LOD: L1=Discrete, L2=Continuous, L3=HLOD, L4=Impostor, L5=Streaming

Animation: A1=Keyframe, A2=Skeletal, A3=AnimCompress, A4=Procedural, A5=VAT, A6=Morph, A7=BoneBake, A8=Flipbook

Lighting: M1=Flat, M2=Phong, M3=PBR, M4=Lightmap, M5=SH, M6=Probe, M7=Toon, M8=Matcap, M9=SharedMat

Precompute: PRE1=Mipmap, PRE2=Lightmap, PRE3=LOD, PRE4=ShaderCompile, PRE5=NavMesh, PRE6=CollisionSimplify, PRE7=AO, PRE8=SDFBake, PRE9=PVS, PRE10=TexCompress, PRE11=AnimCompress, PRE12=Impostor, PRE13=Cubemap, PRE14=MeshOpt, PRE15=OcclusionData, PRE16=Erosion, PRE17=ProcCache, PRE18=Cluster, PRE19=BVH, PRE20=Voxelize


Mega-Matrix: Core Techniques (Abbreviated)

A condensed view of the most important technique interactions:

G2G3G4G6P2P6T6R2R5M3M4A2A4L1
G2 SDF⚠️⚠️
G3 Mesh⚠️
G4 Voxel⚠️⚠️⚠️⚠️⚠️⚠️
G6 Nanite⚠️⚠️⚠️
P2 Terrain⚠️⚠️
P6 Compute⚠️⚠️⚠️⚠️⚠️
T6 ProcTex
R2 RayMarch⚠️⚠️⚠️⚠️⚠️
R5 Deferred⚠️⚠️⚠️
M3 PBR⚠️⚠️
M4 Lightmap⚠️⚠️
A2 Skeletal⚠️⚠️⚠️
A4 ProcAnim⚠️⚠️
L1 DiscLOD⚠️⚠️⚠️⚠️

Reading the Mega-Matrix

Green diagonal clusters = compatible paradigms:

  • Top-left (G2, P2, P6, T6, R2, A4): Procedural/Immediate cluster
  • Bottom-right (G3, G6, R5, M3, M4, A2, L1): Traditional/Retained cluster

Major incompatibilities (❌ patterns):

  • G2 (SDF) vs G3/G6/R5/M4/A2: SDF vs polygon paradigm
  • G6 (Nanite) vs P6/G2/R2: Nanite requires pre-built clusters
  • M4 (Lightmap) vs anything dynamic/procedural

Compatibility Recipes

Recipe: Demoscene 4KB

Techniques: G2 + P4 + P8 + T6 + R2 + M2 + A4 All ✅ compatible - pure procedural, no stored data

Recipe: Mobile Game

Techniques: G3 + G1 + T1 + T3 + R1 + M4 + A2 + L1 + L4 All ✅ compatible - traditional retained, baked lighting

Recipe: Open World AAA

Techniques: G6 + G3 + P2 + T4 + R5 + R7 + M3 + M4 + A2 + L1 + L5 All ✅/⚠️ compatible - Nanite + traditional with streaming

Recipe: Voxel Sandbox

Techniques: G4 + P6 + T8 + R3 + M2 + A4 + C7 All ✅ compatible - voxel-focused stack

Recipe: Stylized Indie

Techniques: G3 + G9 + T6 + T8 + R1 + M7 + M8 + A2 + A4 All ✅/⚠️ compatible - stylized with procedural touches


Incompatibility Patterns Summary

Fundamental Paradigm Splits

  1. SDF/RayMarch vs Polygon/Rasterize
    • G2, G8, G11(SDF), R2 ←❌→ G3, G6, G9, R5, R6
  2. Procedural vs Precomputed
    • P4, P6, T6, A4 ←❌→ M4, PRE2, PRE3, PRE7
  3. Retained vs Immediate
    • G6, L3, L4, M4 ←❌→ D8-D10 techniques
  4. UV-Required vs UV-Free
    • T1, T3, T4, M4 ←❌→ G2, G4, G8, G11

Why These Splits Exist

SplitRoot Cause
SDF vs PolygonDifferent mathematical representation of geometry
Procedural vs PrecomputedPrecomputation requires storage, procedural requires compute
Retained vs ImmediateData flow and state management fundamentally different
UV vs UV-FreeTexture mapping requires surface parameterization
Content is user-generated and unverified.
    Technique Compatibility Matrix: 3D Graphics & Game Dev | Claude