advanced-rendering
Advanced Rendering in Decentraland
When to Use Which Rendering Feature
| Need | Component | When |
|---|---|---|
| Entity faces the camera | Billboard |
Name tags, signs, sprite-like objects |
| Text in the 3D world | TextShape |
Labels, signs, floating text above entities |
| Custom material appearance | Material.setPbrMaterial |
Metallic, rough, transparent, emissive surfaces |
| Show/hide without removing | VisibilityComponent |
LOD systems, toggling objects, conditional display |
| Modify GLTF model nodes | GltfNodeModifiers |
Override materials or shadow casting on specific mesh nodes |
Decision flow:
- Need text on screen? → Use build-ui (React-ECS Label) instead
- Need text in 3D space? →
TextShape(+Billboardto face camera) - Need glowing/transparent materials? →
Material.setPbrMaterialwith emissive/transparency - Need to override material on a model node? →
GltfNodeModifierswithmodifiersarray
Not available in SDK7: reflections, mirrors, render-to-texture. There is no reflection probe, mirror or camera-to-texture component (@dcl/ecs component list, 7.30; Material.reflectivityColor is a specular tint, not a reflection). A mirror is faked by duplicating the reflected geometry behind a tinted, slightly transparent glass plane and driving a double of anything that moves (the player double is in npcs → "Copies of the player"). Budget the space: the reflection needs as much depth behind the glass as the room in front of it, and content outside the parcels is clipped (add-3d-models), so a mirror on a parcel edge means adding a parcel. Trim the reflected side walls, floor and ceiling where they meet the real ones — overlapping copies z-fight at the seam (observed 2026-10-12).