Difference between revisions of "BLIGHT (File Format)"
Tags: Mobile web edit Mobile edit |
|||
Line 66: | Line 66: | ||
|} | |} | ||
|- | |- | ||
− | | 0x11 || Byte|| Attenuation distance falloff function | + | | 0x11 || Byte|| Attenuation distance falloff function. Used together with the attenuation references below. [https://www.desmos.com/calculator/chqdxjbvd6 This Desmos graph] shows how the three types (blue = gentle, red = steep) behave over distance. |
{|class=wikitable | {|class=wikitable | ||
! Value !! Description | ! Value !! Description | ||
Line 121: | Line 121: | ||
| 0x34 || Byte[4] || RGBA light color. | | 0x34 || Byte[4] || RGBA light color. | ||
|- | |- | ||
− | | 0x38 || | + | | 0x38 || Byte[4] || {{Unknown-left|'''Unknown color'''. Always 00 00 00 FF.}} |
|- | |- | ||
− | | 0x3C || Float || | + | | 0x3C || Float || Spotlight cutoff angle |
|- | |- | ||
− | | 0x40 || Float || | + | | 0x40 || Float || Attunation reference distance |
|- | |- | ||
− | | 0x44 || Float || | + | | 0x44 || Float || Attunation reference brightness |
|- | |- | ||
− | | 0x48 || | + | | 0x48 || UInt32 || {{Unknown-left|'''Unused.'''}} |
+ | |- | ||
+ | | 0x4C || UInt16 || Light Object index used for vector shifting | ||
+ | |- | ||
+ | | 0x4E || UInt16 || Padding | ||
|- | |- | ||
| {{unknown|0x50}} || colspan=2 {{unknown|End of object, start of next}} | | {{unknown|0x50}} || colspan=2 {{unknown|End of object, start of next}} |
Revision as of 16:03, 3 December 2022
The BLIGHT (Binary LIGHT) filetype controls lighting effects on characters, karts, items and objects in a track. It is always seen in the posteffect folder inside an U8. This file is not required for a track to load, as there is a default.blight file inside Common.szs.
File Format
File Header
The following table describes the version 2 LIGHT header.
Offset | Type | Description |
---|---|---|
0x00 | String | File magic. Always LGHT in ASCII. |
0x04 | UInt32 | File size. Always 0x5A8 in MKW. |
0x08 | Byte | Version. Always 02 in MKW |
0x09 | Byte[3] | Padding. |
0x0C | UInt32 | Unknown. Always 00 00 00 00. |
0x10 | UInt16 | Number of LOBJs. Always 0x10 in MKW. |
0x12 | UInt16 | Number of Ambient Lights. Always 0x10 in MKW. |
0x14 | Byte[4] | RGBA ambience black color. Always 00 00 00 FF. |
0x18 | Byte[16] | Padding. |
However, one thing to note is that although 16 lights are stored in this file, only 8 can be referenced by the KCL (IDs 00 to 07). This is because the KCL only has three binary digits to reference lights (and 111 in binary = 7).
Light Object data (LOBJ)
The first light object starts at 0x28. These addresses are relative to the start of the object.
Offset | Type | Description | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | String | Section magic. Always LOBJ in ASCII. | |||||||||||||||||||||
0x04 | UInt32 | Section size. Always 0x50. | |||||||||||||||||||||
0x08 | Byte | Version. Always 02 in MKW, except for loser_demo and draw_demo, in which said value is 01. | |||||||||||||||||||||
0x09 | Byte[3] | Padding. | |||||||||||||||||||||
0x0C | Byte[4] | Unknown. Always 00 00 00 00. | |||||||||||||||||||||
0x10 | Byte | Attenuation angle falloff function
| |||||||||||||||||||||
0x11 | Byte | Attenuation distance falloff function. Used together with the attenuation references below. This Desmos graph shows how the three types (blue = gentle, red = steep) behave over distance.
| |||||||||||||||||||||
0x12 | Byte | Coordinate system for origin and destination
| |||||||||||||||||||||
0x13 | Byte | Light type: 00 = omni light, 01 = directional, 02 = spotlight. Always 01 in Nintendo tracks. | |||||||||||||||||||||
0x14 | UInt16 | This value stores the index of the ambient light this light uses. | |||||||||||||||||||||
0x16 | UInt16 | Bitfield. Always 06 41 (1, 6, 9 and 10) or 06 21 (1, 5, 9 and 10). Unknown values are not included.
| |||||||||||||||||||||
0x18 | Float[3] | 3D origin vector. | |||||||||||||||||||||
0x24 | Float[3] | 3D destination vector. | |||||||||||||||||||||
0x30 | Float | This seems to control how large the color effect is on this light. | |||||||||||||||||||||
0x34 | Byte[4] | RGBA light color. | |||||||||||||||||||||
0x38 | Byte[4] | Unknown color. Always 00 00 00 FF. | |||||||||||||||||||||
0x3C | Float | Spotlight cutoff angle | |||||||||||||||||||||
0x40 | Float | Attunation reference distance | |||||||||||||||||||||
0x44 | Float | Attunation reference brightness | |||||||||||||||||||||
0x48 | UInt32 | Unused. | |||||||||||||||||||||
0x4C | UInt16 | Light Object index used for vector shifting | |||||||||||||||||||||
0x4E | UInt16 | Padding | |||||||||||||||||||||
0x50 | End of object, start of next |
Ambient Light data
Ambient colors are used by each light object. They are linked by a light.
Offset | Type | Information |
---|---|---|
0x00 | Byte[4] | RGBA ambient light color. |
0x04 | UInt32 | Padding. |
0x08 | End of color, start of next |
All unused ones are 64 64 64 FF (a neutral gray).
Tools
The following tools can handle BLIGHT files:
- Post-Effect Editor, by Wexos
- Wexos's Toolbox, by Wexos.