GPU/Internal Registers: Difference between revisions
Steveice10 (talk | contribs) |
Steveice10 (talk | contribs) |
||
Line 6,428: | Line 6,428: | ||
|} | |} | ||
These registers (along with _Z) represent the light position (for a positional light) or the light direction vector (for a directional light) of the corresponding light. | These registers (along with GPUREG_LIGHT''i''_Z) represent the light position (for a positional light) or the light direction vector (for a directional light) of the corresponding light. | ||
=== GPUREG_LIGHT''i''_Z === | === GPUREG_LIGHT''i''_Z === | ||
Line 6,440: | Line 6,440: | ||
|} | |} | ||
These registers (along with _XY) represent the light position (for a positional light) or the light direction vector (for a directional light) of the corresponding light. | These registers (along with GPUREG_LIGHT''i''_XY) represent the light position (for a positional light) or the light direction vector (for a directional light) of the corresponding light. | ||
=== GPUREG_LIGHT''i''_SPOTDIR_XY === | === GPUREG_LIGHT''i''_SPOTDIR_XY === | ||
Line 6,449: | Line 6,449: | ||
|- | |- | ||
| 0-12 | | 0-12 | ||
| fixed1.1.11, X coordinate ( | | fixed1.1.11, X coordinate (negated) | ||
|- | |- | ||
| 16-28 | | 16-28 | ||
| fixed1.1.11, Y coordinate ( | | fixed1.1.11, Y coordinate (negated) | ||
|} | |} | ||
These registers (along with | These registers (along with GPUREG_LIGHT''i''_SPOTDIR_Z) represent the spot direction (unitary) vector of the corresponding light. | ||
=== GPUREG_LIGHT''i''_SPOTDIR_Z === | === GPUREG_LIGHT''i''_SPOTDIR_Z === | ||
Line 6,464: | Line 6,464: | ||
|- | |- | ||
| 0-12 | | 0-12 | ||
| fixed1.1.11, Z coordinate ( | | fixed1.1.11, Z coordinate (negated) | ||
|} | |} | ||
These registers (along with | These registers (along with GPUREG_LIGHT''i''_SPOTDIR_XY) represent the spot direction (unitary) vector of the corresponding light. | ||
=== GPUREG_LIGHT''i''_CONFIG === | === GPUREG_LIGHT''i''_CONFIG === | ||
Line 6,487: | Line 6,487: | ||
| unsigned, Use geometric factor 1 (0 = don't use, 1 = use) | | unsigned, Use geometric factor 1 (0 = don't use, 1 = use) | ||
|} | |} | ||
This register configures a light's properties. | |||
=== GPUREG_LIGHT''i''_ATTENUATION_BIAS === | === GPUREG_LIGHT''i''_ATTENUATION_BIAS === | ||
Line 6,498: | Line 6,500: | ||
|} | |} | ||
These registers contain the distance attenuation bias value of the corresponding light. The attenuation factor is | These registers contain the distance attenuation bias value of the corresponding light. The attenuation factor is DA(clip(bias + scale*distance, 0.0, 1.0)). | ||
=== GPUREG_LIGHT''i''_ATTENUATION_SCALE === | === GPUREG_LIGHT''i''_ATTENUATION_SCALE === | ||
Line 6,510: | Line 6,512: | ||
|} | |} | ||
These registers contain the distance attenuation scale value of the corresponding light. The attenuation factor is | These registers contain the distance attenuation scale value of the corresponding light. The attenuation factor is DA(clip(bias + scale*distance, 0.0, 1.0)). | ||
=== GPUREG_LIGHTING_AMBIENT === | === GPUREG_LIGHTING_AMBIENT === | ||
Line 6,539: | Line 6,541: | ||
| unsigned, Number of active lights - 1 | | unsigned, Number of active lights - 1 | ||
|} | |} | ||
This register configures the number of active lights. | |||
=== GPUREG_LIGHTING_CONFIG0 === | === GPUREG_LIGHTING_CONFIG0 === | ||
Line 6,588: | Line 6,592: | ||
| 0x1 | | 0x1 | ||
|} | |} | ||
This register configures the light environment. | |||
Fresnel selector values: | Fresnel selector values: | ||
Line 6,765: | Line 6,771: | ||
| unsigned, Fragment light source 7 distance attenuation disabled (0 = enabled, 1 = disabled) | | unsigned, Fragment light source 7 distance attenuation disabled (0 = enabled, 1 = disabled) | ||
|} | |} | ||
This register is used to disable various aspects of the light environment. | |||
=== GPUREG_LIGHTING_LUT_INDEX === | === GPUREG_LIGHTING_LUT_INDEX === | ||
Line 6,779: | Line 6,787: | ||
|} | |} | ||
This register controls which LUT and what offset into it the | This register controls which LUT and what offset into it the GPUREG_LIGHTING_LUT_DATA''i'' register writes to. | ||
Lookup table values: | Lookup table values: | ||
Line 6,910: | Line 6,918: | ||
| unsigned, Input selector for RR | | unsigned, Input selector for RR | ||
|} | |} | ||
This register selects the input from LUTs. | |||
Input selector values: | Input selector values: | ||
Line 7,021: | Line 7,031: | ||
| unsigned, ID of the 8th enabled light | | unsigned, ID of the 8th enabled light | ||
|} | |} | ||
This register sets the IDs of enabled light sources. | |||
== Geometry pipeline registers == | == Geometry pipeline registers == |