Skip to content

G-buffers

G-buffer material programs write surface properties for a later lighting pass. A target number or channel alone does not identify a property across engines, games or shader families. Each row links to the page that states it, with its confidence.

Engine / game or class Colour Normal Surface response and other outputs Detail
FromSoftware / Sekiro RT2 RGB albedo RT0 RGB biased world normal RT1 R gloss, G diffuse wrap, B occlusion, A subsurface profile index; RT2 A subsurface strength; RT3 RGB square root of F0, A light-set selector; RT4 RGB emission, A glow weight Surface encoding
FromSoftware / Elden Ring RT2 RGB albedo RT0 RGB biased world normal RT1 R metallic, G gloss, B translucency, A occlusion; RT2 A light-set selector; RT3 R subsurface strength, G subsurface profile index; RT4 RGB emission, A glow weight Surface encoding
Anvil / Riders Republic, class 1 o0 RGB base colour o1 XYZ packs octahedral world normal and class o0 W perceptual roughness, o1 W metalness, o2 XY motion, Z emissive scalar, o3 X AO Shading classes
Anvil / Riders Republic, classes 3–5 o0 RGB base colour Same packed normal/class representation o1 W AO rather than metalness; o2 Z specular occlusion, W translucency; o3 X is family-specific Shading classes
RAGE / inspected GTA V Enhanced deferred programs RT0 RGB diffuse, A draw-state byte RT1 RGB usually 0.5*N + 0.5; A supplies additional precision in some effects RT2 R sqrt(intensity), G sqrt(falloff / 512), B Fresnel; RT3 carries AO and emission/16; RT4 RG screen displacement Deferred shading
Frostbite / measured skate. programs Semantic assignment not established T0.xy = 0.4995*v + 0.4995 pairs with consumer 2*x-1; a normal interpretation is not established Large sampled lighting programs read t4–t8 directly; binding names do not establish channel semantics Measured pairing
ForzaTech / inspected FH6 world families RT0 RGB holds albedo for the listed ordinary families, but water families differ World-family formulas establish different normal inputs and blends; no universal target layout is stated on that page Family formulas establish roughness and metalness; RT1 XYZ carries the described distance-dependent emissive term World-family outputs

FromSoftware’s inspected writers use n * 0.5 + b, with bias bits 0x3F002008; lighting decodes with 2*x-1 and normalizes. Anvil quantizes two octahedral components to nine bits, distributing high bits, a sign and the class into o1 Z. RAGE twiddle effects quantize normal RGB and store residual bits in alpha. See FromSoftware normals, Anvil packing and RAGE precision.

Frostbite’s measured producer/consumer arithmetic establishes an encoding pair but does not establish what the pair represents or a normal-unfolding step. It remains unresolved on the measured-program page.

The inspected FromSoftware surface gloss maps to roughness = 1 - 0.95*sqrt(gloss); its directional light adds a light-constant-dependent modification. Sekiro reconstructs F0 by squaring RT3 RGB, while Elden Ring forms lerp(0.04, albedo, metallic). See gloss and reflectance.

Anvil’s Tex1 forward program clamps perceptual roughness to at least .045 and squares it for GGX alpha. Its deferred non-metal classes use F0 .04 rather than interpreting AO as metalness. See shading-class consumers.

The inspected RAGE light reconstructs specular intensity as RT2.x² and falloff as RT2.y² * 512, then derives a piecewise exponent. Those channels are not documented as metallic/roughness. See specular reconstruction.

What do the remaining outputs mean?

FromSoftware’s lanes are all assigned, in both games, from the programs that write them and the programs that read them (surface encoding); what stays open there is scoped to that page: what data sets an instance’s light-set selector and how far the subsurface lanes range on Elden Ring’s skin. The other engines’ outputs stay scoped to their programs: Anvil’s fragment-recording consumer, Frostbite’s semantic pairing and ForzaTech’s emissive distance compensation are separate open questions.