# Resource formats ## Dictionary format ``` [kkkk vvvv KK... VV...]... ^ ^ ^ ^ | | | | value | | | key | | 16-bit kalue length | 16-bit key length ``` ## PrefabIndex | Key | Value Type | | -------- | ---------- | | \ | Resource | ## Prefab | Key | Value Type | | | ----------- | ---------------------------- | --------- | | mesh | Matrix3, Vec3, Res | Multi key | | light | Vec3, Res | Multi key | | environment | Res | | ## MeshPart Vertex attribute arrays (va_\*) are resources that contain a packed float32 array. ombinations of g_\*, va_\* and tex_\* are multiplied except normal which is added. Defaults should be the identity for that operation, so default is 1 / white except normals are zero. | Key | Value Type | | | ------------------ | ------------- | ------------------ | | name | String | | | index | Resource | | | g_metallic | Float | | | g_roughness | Float | | | g_albedo | Vec3 | | | g_alpha | Float | | | g_transmission | Float | | | g_emission | Vec3 | | | g_refractive_index | Float | | | g_attenuation | Vec3 | | | g_dispersion | Float | | | g_thickness | Float | | | g_unlit | | | | va_position | [Resource; 3] | | | va_normal | [Resource; 3] | | | va_texcoord | [Resource; 2] | | | va_roughness | Resource | | | va_metallic | Resource | | | va_albedo | [Resource; 3] | | | va_alpha | Resource | | | va_transmission | Resource | | | va_emission | Resource | | | tex_normal | Resource | Use color channels | | tex_roughness | Resource | Use green channel | | tex_metallic | Resource | Use blue channel | | tex_albedo | Resource | Use color channels | | tex_alpha | Resource | Use alpha channel | | tex_transmission | Resource | Use red channel | | tex_emission | Resource | Use color channels | | tex_thickness | Resource | Use green channels | - **Attenuation**: Attenuation coefficient for each color channel due to scattering within the material volume expressed as e-folding distance (m^-1). See [KHR_materials_volume]. - **Transmission**: Equivalent to `transmissionFactor` and `transmissionTexture` of [KHR_materials_transmission]. - **Refractive Index**: Equivalent to `ior` of [KHR_materials_ior] - **Thickness**: Equivalent to `thicknessFactor` and `thicknessTexture` of [KHR_materials_volume]. - **Dispersion**: 20 / Abbe Number. Equivalent to `dispersion` of [KHR_materials_dispersion]. - **Unlit**: Directly transfers \*_albedo to the screen if set. No lighting shaders are applied. ## LightPart | Key | Value Type | | -------- | ------------------ | | radius | Float | | emission | Vec3 | | spot | Vec3, Float, Float | - **Emission**: Luminous intensity in candela per channel. Equivalent of `color` multiplied with `intensity` of [KHR_lights_punctual]. - **Radius**: Radius for soft shadow calculation. If set, the light source can be modelled to be a light emitting sphere of that radius. Not suported by glTF. - **Spot**: Normalized direction vector, inner and outer cone radius like `innerConeAngle` and `outerConeAngle` in [KHR_lights_punctual]. ## EnvironmentPart | Key | Value Type | | | ------ | ---------- | ---------------- | | skybox | Resource | | | sun | Vec3, Vec3 | Direction, Color | ## Texture WebP [KHR_materials_transmission]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_transmission [KHR_materials_ior]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_ior [KHR_materials_volume]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_volume [KHR_materials_dispersion]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_dispersion [KHR_lights_punctual]: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_lights_punctual