PBR Terrain

Category:glTF
== What is it? ==
PBR Terrain is a feature which allows applying PBR materials to the Terrain in Second Life.
PBR Terrain was released in the Second Life Featurettes viewer, which also added 2K textures and mirrors. Unlike PBR materials on prims, PBR terrain does not provide a non-PBR fallback. Older viewers will see grey terrain.
PBR Terrain supports all of the features of SL PBR material assets, with the exception of double-sided and alpha blend. Material assets with these unsupported features cannot be applied to terrain.
Triplanar mapping is enabled by default on PBR terrain when the graphics quality setting is set to "High" or higher.
== How to apply PBR Terrain ==
Before you can apply PBR terrain, you will need to acquire some PBR material items.
Method 1: Use the Region/Estate tool (requires region terrain composition edit permission)
# Click World > Region/Estate > Terrain
# Click on Terrain Textures and ensure "PBR Metallic Roughness" is checked
# Set PBR materials for all four material swatches
# Click Apply
# To go back to using terrain textures, uncheck "PBR Metallic Roughness", and apply the desired textures
Method 2: Use the debug settings (not persistent, visible only to you, debug settings subject to removal)
# Click Advanced > Show Debug Settings
# Copy the material UUID you want from your inventory to your clipboard
# Set LocalTerrainAsset1, LocalTerrainAsset2, etc to the material UUIDs you want to use
# To go back to using the real terrain textures/materials, set LocalTerrainAsset1, LocalTerrainAsset2, etc all back to their defaults, or restart your viewer
=== Texture Transforms ===
Custom texture transforms can be applied to PBR terrain, allowing for custom scale, rotation, or offset. There is one texture transform per material swatch (4 total). Applying a texture transform to each individual texture info is not supported.
The transforms are thus compliant with a subset of the KHR_texture_transform specification. The UV origin is defined as the Southwest corner of the region, with positive U facing East and positive V facing South.
Method 1: Use the Region/Estate tool (requires region terrain composition edit permission)
# Click World > Region/Estate > Terrain
# Click on Terrain Textures and ensure "PBR Metallic Roughness" is checked
# Set PBR materials for all four material swatches as desired
# Go to the "Transforms" sub-tab, and set texture transform parameters for each material as desired
# To go back to using the respective default texture transforms, set the respective settings to their defaults
Method 2: Use the debug settings (not persistent, visible only to you, debug settings subject to removal)
# Click Advanced > Show Debug Settings
# Important: Ensure LocalTerrainAsset1, LocalTerrainAsset2, etc are set to valid materials (Local terrain texture transforms will not affect the persistent region terrain, even if the region terrain uses PBR)
# Look for debug settings prefixed with, "LocalTerrainTransform", and set their values as desired. For example, LocalTerrainTransform1Rotation sets the rotation for material 1.
# To go back to using the respective default texture transforms, set the respective settings to their defaults
== Graphics support ==
=== Emissive texture ===
When possible, PBR terrain respects all parameters of version 1.1 of the SL Material asset, with the exception of double-sided.
On graphics drivers that do not support binding more than 16 textures, the emissive textures will be dropped, in accordance with the GLTF specification.
=== Other textures ===
Further terrain textures may be dropped at low graphics settings to maintain performance.
== Developer Information ==
The Second Life viewer determines the terrain type via a double-lookup of the asset IDs.
For PBR terrain, texture repeats are sent both ways as GLTF overrides in LSL notation format.
Further implementation details of PBR terrain can be found in the following test documents:
* https://github.com/secondlife/viewer/blob/develop/doc/testplans/terrain_loading.md
* https://github.com/secondlife/viewer/blob/develop/doc/testplans/pbr_terrain_appearance.md
* https://github.com/secondlife/viewer/blob/develop/doc/testplans/pbr_terrain_composition.md