Difference between revisions of "GLTF Overrides"
(Remove future feature warning following PBR release.) |
(Add more prominent warning about caveat surrounding texture transforms. Minor formatting changes.) |
||
Line 3: | Line 3: | ||
== What are they? == | == What are they? == | ||
glTF overrides are an implementation detail of [[PBR_Materials|PBR materials]], which only makes sense when a glTF material is applied to a face of a prim. | |||
A | A glTF override is a collection of changes applied on top of a glTF material asset, plus texture transforms. | ||
== Texture transforms == | == Texture transforms == | ||
glTF texture transforms behave differently than their Blinn-Phong counterparts, and instead follow the [[https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_transform KHR_texture_transform spec]]. Because of this, [[LlSetTextureAnim|texture animations]] are animated independently of the texture transforms. | |||
== Applying a | == Applying a glTF material from LSL == | ||
These prim params affect the | These prim params affect the glTF material on a face: | ||
* [[PRIM_RENDER_MATERIAL]] | * [[PRIM_RENDER_MATERIAL]] | ||
Line 21: | Line 21: | ||
* [[PRIM_GLTF_EMISSIVE]] | * [[PRIM_GLTF_EMISSIVE]] | ||
When setting [[PRIM_RENDER_MATERIAL]] on a face, most of the | When setting [[PRIM_RENDER_MATERIAL]] on a face, most of the glTF overrides will be cleared on that face, with the exception of texture transforms (repeats, offsets, and rotation_in_radians). | ||
The rest of these prim params are for | The rest of these prim params are for glTF overrides. For example, [[PRIM_GLTF_BASE_COLOR]] includes the glTF base color property overrides as well as the base color texture transform. Setting nearly any glTF override to the empty string ("") will unset it, causing the property of the underlying glTF material asset to be used instead. | ||
{{KBwarning|Currently, texture transforms are (destructively) overwritten, meaning that setting an empty string ("") will cause them to revert to their appropriate default values instead, losing the original value. This may change in future.}} | |||
Attempting to set a | Note that it is not possible to read properties of the underlying glTF material asset from scripts. If a property is unset, it will be the empty string ("") when read from a script. | ||
Attempting to set a glTF override when [[PRIM_RENDER_MATERIAL]] is [[NULL_KEY]] will clear most glTF overrides on that face, with the exceptions of texture transforms. | |||
== Permissions == | == Permissions == | ||
When a no-mod | When a no-mod glTF material is applied to a prim face, its glTF overrides cannot be modified, with the exception of texture transforms. |
Revision as of 15:05, 20 December 2023
What are they?
glTF overrides are an implementation detail of PBR materials, which only makes sense when a glTF material is applied to a face of a prim.
A glTF override is a collection of changes applied on top of a glTF material asset, plus texture transforms.
Texture transforms
glTF texture transforms behave differently than their Blinn-Phong counterparts, and instead follow the [KHR_texture_transform spec]. Because of this, texture animations are animated independently of the texture transforms.
Applying a glTF material from LSL
These prim params affect the glTF material on a face:
- PRIM_RENDER_MATERIAL
- PRIM_GLTF_BASE_COLOR
- PRIM_GLTF_NORMAL
- PRIM_GLTF_METALLIC_ROUGHNESS
- PRIM_GLTF_EMISSIVE
When setting PRIM_RENDER_MATERIAL on a face, most of the glTF overrides will be cleared on that face, with the exception of texture transforms (repeats, offsets, and rotation_in_radians).
The rest of these prim params are for glTF overrides. For example, PRIM_GLTF_BASE_COLOR includes the glTF base color property overrides as well as the base color texture transform. Setting nearly any glTF override to the empty string ("") will unset it, causing the property of the underlying glTF material asset to be used instead.
Warning: Currently, texture transforms are (destructively) overwritten, meaning that setting an empty string ("") will cause them to revert to their appropriate default values instead, losing the original value. This may change in future. |
Note that it is not possible to read properties of the underlying glTF material asset from scripts. If a property is unset, it will be the empty string ("") when read from a script.
Attempting to set a glTF override when PRIM_RENDER_MATERIAL is NULL_KEY will clear most glTF overrides on that face, with the exceptions of texture transforms.
Permissions
When a no-mod glTF material is applied to a prim face, its glTF overrides cannot be modified, with the exception of texture transforms.