@@ -98,9 +98,13 @@ float4 PS_Blit(VS2PS_Quad Input) : SV_TARGET0
98
98
99
99
float3 PS_Exposure (VS2PS_Quad Input) : SV_TARGET0
100
100
{
101
+ // Get textures
101
102
float Luma = tex2Dlod (SampleLumaTex, float4 (Input.Tex0, 0.0 , 99.0 )).r;
102
103
float4 NonExposedColor = tex2D (CShade_SampleColorTex, Input.Tex0);
103
- float3 ExposedColor = ApplyAutoExposure (NonExposedColor.rgb, Luma);
104
+
105
+ // Get exposure data
106
+ Exposure ExposureData = GetExposureData (Luma);
107
+ float3 ExposedColor = ApplyAutoExposure (NonExposedColor.rgb, ExposureData);
104
108
105
109
float2 UNormPos = (Input.Tex0 * 2.0 ) - 1.0 ;
106
110
float3 Output = ApplyOutputTonemap (ExposedColor.rgb);
@@ -137,7 +141,8 @@ float3 PS_Exposure(VS2PS_Quad Input) : SV_TARGET0
137
141
138
142
if (_DisplayAverageLuma)
139
143
{
140
- float2 LumaTex = UNormPos + float2 (0.0 , -0.5 );
144
+ // The offset goes from [-0.5, 0.5], hence the -0.5 subtraction.
145
+ float2 LumaTex = UNormPos + float2 (0.0 , 0.5 );
141
146
142
147
// Shrink the UV so [-1, 1] fills a square
143
148
#if BUFFER_WIDTH > BUFFER_HEIGHT
@@ -154,7 +159,7 @@ float3 PS_Exposure(VS2PS_Quad Input) : SV_TARGET0
154
159
// Create LumaIcon through alpha compositing
155
160
float4 LumaIcon = 0.0 ;
156
161
float4 Shadow = float4 (0.0 , 0.0 , 0.0 , 1.0 );
157
- float4 ExpLuma = float4 ((float3 )exp (Luma) , 1.0 );
162
+ float4 ExpLuma = float4 ((float3 )ExposureData.ExpLuma , 1.0 );
158
163
159
164
LumaIcon = lerp (LumaIcon, Shadow, ShadowMask);
160
165
LumaIcon = lerp (ExpLuma, LumaIcon, LumaTexMask);
0 commit comments