# FF14 Asset Reference Document # (Dawntrail) Shader Reference Table This page is a list of tables with explinations/annotations of how the New shaders in dawntrail work. Most of this page has been adapted from the Textools Reference Document by Sel. ##### This page is partially incomplete as we still do not fully understand every shader. shaders with entirely blank boxes are those that we know exist, but do not understand how they work. Any important notes or observations about these shaders will be notated below their shader tables in Red. --- ##### The following explains how each color/data channel is used in each shader. ##### Channels are listed by their Default Behavior whenever variable. ##### Channels listed in **Purple** are variable and affected by shader keys. These will be listed Below each main table for the shader, before any notes or annotations. ##### **S**ub**S**urface **S**cattering (SSS) and Fur Settings are controlled by the same channels/fields when applicable ##### *Please note that all textures making use of an alpha channel for non-transparency should be saved as either **.DDS** or **.TGA** when bringing it in/out of an art program. PNG frequently gets mishandled by programs and ends up "eating" the alpha channel or forcing it as transparency, which destroys the data used.* FFXIV uses the OpenGL format for Normal map direction (Y+ up if you are using a software with diffuse to normal generation capabilities)
7DABA471- g\_IrisRingEmissive | 0-1 (au ra at 0.8) | ||
58DE06E2-Limbal Color | Red (0-1) | Green (0-1) | Blue (0-1) |
**Visibility Flag** | **Controlling Slot** | **Attribute** | **Shape** | **Notes** | |
Byte 0 | **EnableBodyFlags** | Body (top) | -- | -- | Must be enabled for the rest of the body flags to work correctly. |
**BodyHideWaist** | Body (top) | atr\_kod | shp\_kod, shp\_kos(?) | ||
Bit2 | Body (top) | ??? | ??? | ||
**BodyHideShortGloves** | Body (top) | atr\_arm | atr\_arm | Has something to do with glove settings based on the type of glove equipped. | |
BodyGloveUnknown2 | Body (top) | ??? | ??? | ||
**BodyHideMidGloves** | Body (top) | atr\_arm | shp\_arm | Ex. HideLongGloves will only hide atr\_arm on long gloves. | |
**BodyHideLongGloves** | Body (top) | atr\_arm | shp\_arm | But not on Mid Gloves. | |
**BodyHideGorget** | Body (top) | atr\_inr | shp\_inr | ||
Byte 1 | **BodyShowLeg** | Body (top) | -- | -- | When body gear hides other slots, the visibility parameters from *that slot in the same set as the body gear* |
**BodyShowHand** | Body (top) | -- | -- | is used for determining down-stream visibility settings. (Ex. Should Shoes be shown/hidden) | |
**BodyShowHead** | Body (top) | -- | -- | ||
**BodyShowNecklace** | Body (top) | -- | -- | If *either* of equipped body or head gear hides necklace, it will be hidden. | |
**BodyShowBracelet** | Body (top) | -- | -- | If *either* of equipped body or glove gear hides bracelet, it will be hidden. | |
**BodyShowTail** | Body (top) | -- | -- | If *either* of equipped body or leg gear hides tail, it will be hidden. | |
BodyTriggersomeShapeData | Body (top) | ??? | ??? | ||
Bit15 | Body (top) | ??? | ??? | ||
Byte 2 | **EnableLegFlags** | Leg (dwn) | -- | -- | Must be enabled for the rest of the leg flags to work correctly. |
**LegHideKneePads** | Leg (dwn) | atr\_lpd | shp\_lpd | ||
**LegHideShortBoot** | Leg (dwn) | atr\_leg | shp\_leg | Like gloves, the atr\_leg triggers are dependent upon the equipped boot's visibility settings. (Long boots cannot be hidden) | |
**LegHideHalfBoot** | Leg (dwn) | atr\_leg | shp\_leg | ||
LegBootUnknown | Leg (dwn) | ??? | ??? | Something to do with interactions with half-boots. | |
**LegShowFoot** | Leg (dwn) | -- | -- | ||
**LegShowTail** | Leg (dwn) | ??? | ??? | If *either* of equipped body or leg gear hides tail, it will be hidden. | |
Bit23 | Leg (dwn) | ??? | ??? | ||
Byte 3 | **EnableHandFlags** | Gloves (glv) | -- | -- | Must be enabled for the rest of the hand flags to work correctly. |
**HandHideElbow** | Gloves (glv) | atr\_ude | shp\_ude, shp\_hij, shp\_kat | When Elbow is set without forearm the glove is marked as a short glove (which will trigger shp\_hij). Exact selection of which Shapes are triggered is based on the combination of flags. (Mid glove triggers ude, Long triggers kat) | |
**HandHideForearm** | Gloves (glv) | atr\_hij | shp\_ude, shp\_hij, shp\_kat | ||
Bit27 | Gloves (glv) | ??? | ??? | ||
**HandShowBracelet** | Gloves (glv) | -- | -- | If *either* of equipped body or glove gear hides bracelet, it will be hidden. | |
**HandShowRingL** | Gloves (glv) | -- | -- | ||
**HandShowRingR** | Gloves (glv) | -- | -- | ||
Bit31 | Gloves (glv) | ??? | ??? | ||
Byte 4 | **EnableFootFlags** | Shoes (sho) | -- | -- | Must be enabled for the rest of the foot flags to work correctly. |
**FootHideKnee** | Shoes (sho) | atr\_hiz | shp\_hiz, shp\_sne, shp\_mom | When Knee is set without Calf, item is marked as a short boot (Which will hide shp\_sne). Exact shapes triggered depends on the combination of the flags. (mid boot triggers hiz, long triggers mom) | |
**FootHideCalf** | Shoes (sho) | atr\_sne | shp\_hiz, shp\_sne, shp\_mom | ||
**FootHideAnkle** | Shoes (sho) | ??? | ??? | ||
Bit36 | Shoes (sho) | -- | -- | Unused | |
Bit37 | Shoes (sho) | -- | -- | Unused | |
Bit38 | Shoes (sho) | -- | -- | Unused | |
Bit39 | Shoes (sho) | -- | -- | Unused | |
Byte 5 | **EnableHeadFlags** | Head (met) | -- | -- | Must be enabled for the rest of the head flags to work correctly. |
**HeadHideScalp** | Head (met) | atr\_kam | shp\_kam | When set alone, hides scalp. When set with HideHair, hides *everything*. | |
**HeadHideHair** | Head (met) | -- | -- | When set alone, hides hair. When set with HideScalp, hides *everything*. | |
**HeadShowHairOverride** | Head (met) | -- | -- | When set, shows hair, regardless of the previous two flags. | |
**HeadHideNeck** | Head (met) | atr\_nek | shp\_nek | ||
**HeadShowNecklace** | Head (met) | -- | -- | If *either* of equipped body or head gear hides necklace, it will be hidden. | |
Bit46 | Head (met) | ??? | ??? | ||
**HeadShowEarrings** | Head (met) | -- | -- | Full earring toggle cannot be disabled without also disabling hair (HeadHideHair) | |
Byte 6 | **HeadShowEarringsHuman** | Head (met) | -- | -- | Everything not Au Ra (?) |
**HeadShowEarringsAura** | Head (met) | -- | -- | Au Ra Only (?) | |
**HeadShowEarHuman** | Head (met) | atr\_mim | atr\_mim | Hyur/Elezen/Lalafell | |
**HeadShowEarMiqo** | Head (met) | atr\_top | shp\_top | Miqo/Hrothgar | |
**HeadShowEarAura** | Head (met) | atr\_hrn | shp\_hrn | Au Ra (Horns) | |
**HeadShowEarViera** | Head (met) | -- | -- | Viera | |
HeadUnknownHelmet1 | Head (met) | ??? | ??? | These flags are usually set in place of ShowEarrings\[Race\] flags on helmet gear. | |
HeadUnknownHelmet2 | Head (met) | ??? | ??? | Their purpose is currently unknown, but presumably triggers some shape data. | |
Byte 7 | **HeadShowHrothgarHat** | Head (met) | -- | -- | Allows Hrothgar hats to be shown |
**HeadShowVieraHat** | Head (met) | -- | -- | Allows Viera hats to be shown | |
Bit58 | Head (met) | -- | -- | Unused | |
Bit59 | Head (met) | -- | -- | Unused | |
Bit60 | Head (met) | -- | -- | Unused | |
Bit61 | Head (met) | -- | -- | Unused | |
Bit62 | Head (met) | -- | -- | Unused | |
Bit63 | Head (met) | -- | -- | Unused |
Slider Percentage | X | Y | Z |
0% | 0.92 | 0.816 | 0.80 |
50% | 1 | 1 | 1 |
100% | 1.08 | 1.184 | 1.20 |
150% | 1.16 | 1.368 | 1.40 |
200% | 1.24 | 1.552 | 1.60 |
250% | 1.32 | 1.736 | 1.80 |
300% | 1.40 | 1.92 | 2 |
**Standard Gear Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Ambient Occlusion | **RED** | Ambient Occlusion | Decal Placement, such as Grand Company Logos |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Gloss | **GREEN** | Gloss | |
**BLUE** | Opacity \[0-128, 128+ is full Opacity\] | **BLUE** | Specular Power | **BLUE** | Specular Power | **Specular** |
**ALPHA** | Colorset Row | **ALPHA** | ??? | **ALPHA** | Opacity | Standard Full Color Specular Map |
**Standard Gear Shader - Monster Preset** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | **Specular Intensity** | **RED** | ??? | Decal Placement, such as Grand Company Logos |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | **Gloss (?)** | **GREEN** | ??? | |
**BLUE** | Opacity \[0-128, 128+ is full Opacity\] | **BLUE** | **???** | **BLUE** | ??? | **Specular** |
**ALPHA** | Colorset Row | **ALPHA** | ??? | **ALPHA** | ??? | **Used as a Multi map (See Multi column)** |
**Glass Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Ambient Occlusion | **RED** | ??? | ??? |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Gloss | **GREEN** | ??? | |
**BLUE** | Opacity | **BLUE** | Specular Power | **BLUE** | Z Depth? | **N/A** |
**ALPHA** | Colorset Row | **ALPHA** | ??? | **ALPHA** | ??? |
**Skin Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Player Skin Color Selection Influence | **RED** | Player Muscle Slider Influence | Decal Placement, such as Legacy Mark or Face Paint. |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Specular Intensity | **GREEN** | ??? | |
**BLUE** | ??? | **BLUE** | Unused | **BLUE** | Angle of Refraction Intensity | **N/A** |
**ALPHA** | ??? | **ALPHA** | ??? | **ALPHA** | Player Skin Color Selection Influence |
**Skin Shader - Face Presets** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Player Skin Color Selection Influence | **RED** | Player Muscle Slider Influence | Decal Placement, such as Legacy Mark or Face Paint. |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Specular Intensity | **GREEN** | ??? | |
**BLUE** | Opacity | **BLUE** | **Player Lip Color Selection Influence** | **BLUE** | Angle of Refraction Intensity | **N/A** |
**ALPHA** | ??? | **ALPHA** | ??? | **ALPHA** | Player Skin Color Selection Influence |
**Skin Shader - Skin with Hair Preset** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Player Skin Color Selection Influence | **RED** | ??? | Decal Placement, such as Legacy Mark or Face Paint. |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | **Player Hair Color Selection Influence** | **GREEN** | ??? | |
**BLUE** | ??? | **BLUE** | **Hair Highlight Color Selection Influence** | **BLUE** | ??? | **N/A** |
**ALPHA** | ??? | **ALPHA** | ??? | **ALPHA** | ??? |
**Hair Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Diffuse Mask | **RED** | Red Color Influence | Opacity Mapping |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Specular Mask | **GREEN** | Green Color Influence | |
**BLUE** | ??? | **BLUE** | Unused | **BLUE** | Blue Color Influence | **N/A** |
**ALPHA** | Opacity (see UV2) | **ALPHA** | Highlight Color Influence | **ALPHA** | Opacity |
**Hair Shader - Face Presets** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Brightness | **RED** | Red Color Influence | Opacity Map |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Specular Intensity | **GREEN** | Green Color Influence | |
**BLUE** | ??? | **BLUE** | Unused | **BLUE** | Blue Color Influence | **N/A** |
**ALPHA** | Opacity | **ALPHA** | **Player Tattoo/Etc\* Color Influence** | **ALPHA** | Opacity |
**Iris Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Diffuse Mask | **RED** | Left Eye Color Influence | ??? |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Specular Mask | **GREEN** | Right Eye Color Influence | |
**BLUE** | ??? | **BLUE** | Gloss(?) | **BLUE** | ??? | **Reflection** |
**ALPHA** | ??? | **ALPHA** | ??? | **ALPHA** | ??? | Reflection Map ("Catchlight") |
**Furniture Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Diffuse Mask | **RED** | ??? | Emissive Color Mapping (?) |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Specular Mask | **GREEN** | ??? | |
**BLUE** | Unused | **BLUE** | Gloss | **BLUE** | ??? | **Diffuse Note** |
**ALPHA** | Opacity | **ALPHA** | Emissive Mask | **ALPHA** | ??? | Diffuse Alpha is also used for Opacity |
**Dyeable Furniture Shader** | ||||||
**Normal Map** | **Multi** | **Vertex Color/Alpha(UV3)** | **UV2** | |||
**RED** | Standard Tangent Space Normal Map | **RED** | Specular Mask | **RED** | ??? | Emissive Color Mapping (?) |
**GREEN** | Standard Tangent Space Normal Map | **GREEN** | Roughness | **GREEN** | ??? | |
**BLUE** | Unused | **BLUE** | Also Specular Mask...? | **BLUE** | ??? | **Diffuse Note** |
**ALPHA** | Opacity | **ALPHA** | Emissive Mask | **ALPHA** | ??? | Diffuse Alpha is used for Dyeability |
**Further Notes** | |||||||
SE's Gloss implementation is very unique, and doesn't adhere particularly well to most modern PBR system's assumption of Gloss. (Closer to non-PBR Spec-Gloss) | |||||||
In particular, their Gloss layers in the textures are really more like \[Specular + Gloss\]. To get a true Gloss-Only variance, your best bet is to blend Colorset Rows. |