|
@@ -33,20 +33,20 @@ float4 main(PFXVertToPix IN) : TORQUE_TARGET0
|
|
float4 finalOut = float4(0, 0, 0, 0);
|
|
float4 finalOut = float4(0, 0, 0, 0);
|
|
for (int mipId = 0; mipId<mipCount0; mipId++)
|
|
for (int mipId = 0; mipId<mipCount0; mipId++)
|
|
{
|
|
{
|
|
- float x = filterRadius*oneOverTargetSize.x;
|
|
|
|
- float y = filterRadius*oneOverTargetSize.y;
|
|
|
|
|
|
+ float x = filterRadius*oneOverTargetSize.x*pow(0.5, mipId);
|
|
|
|
+ float y = filterRadius*oneOverTargetSize.y*pow(0.5, mipId);
|
|
|
|
|
|
- float3 a = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x - x, IN.uv1.y + y, 0, mipId)).rgb;
|
|
|
|
- float3 b = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x, IN.uv1.y + y, 0, mipId)).rgb;
|
|
|
|
- float3 c = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x + x, IN.uv1.y + y, 0, mipId)).rgb;
|
|
|
|
|
|
+ float3 a = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x - x, IN.uv0.y + y, 0, mipId)).rgb;
|
|
|
|
+ float3 b = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x, IN.uv0.y + y, 0, mipId)).rgb;
|
|
|
|
+ float3 c = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x + x, IN.uv0.y + y, 0, mipId)).rgb;
|
|
|
|
|
|
- float3 d = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x - x, IN.uv1.y, 0, mipId)).rgb;
|
|
|
|
- float3 e = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x, IN.uv1.y, 0, mipId)).rgb;
|
|
|
|
- float3 f = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x + x, IN.uv1.y, 0, mipId)).rgb;
|
|
|
|
|
|
+ float3 d = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x - x, IN.uv0.y, 0, mipId)).rgb;
|
|
|
|
+ float3 e = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x, IN.uv0.y, 0, mipId)).rgb;
|
|
|
|
+ float3 f = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x + x, IN.uv0.y, 0, mipId)).rgb;
|
|
|
|
|
|
- float3 g = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x - x, IN.uv1.y - y, 0, mipId)).rgb;
|
|
|
|
- float3 h = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x, IN.uv1.y - y, 0, mipId)).rgb;
|
|
|
|
- float3 i = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv1.x + x, IN.uv1.y - y, 0, mipId)).rgb;
|
|
|
|
|
|
+ float3 g = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x - x, IN.uv0.y - y, 0, mipId)).rgb;
|
|
|
|
+ float3 h = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x, IN.uv0.y - y, 0, mipId)).rgb;
|
|
|
|
+ float3 i = TORQUE_TEX2DLOD(hdrbloomDown, float4(IN.uv0.x + x, IN.uv0.y - y, 0, mipId)).rgb;
|
|
|
|
|
|
upSample.rgb = e*4.0;
|
|
upSample.rgb = e*4.0;
|
|
upSample.rgb += (b+d+f+h)*2.0;
|
|
upSample.rgb += (b+d+f+h)*2.0;
|
|
@@ -55,6 +55,8 @@ float4 main(PFXVertToPix IN) : TORQUE_TARGET0
|
|
upSample.a = 1.0;
|
|
upSample.a = 1.0;
|
|
finalOut += upSample;
|
|
finalOut += upSample;
|
|
}
|
|
}
|
|
|
|
+ finalOut /= mipCount0;
|
|
finalOut.a = 1.0;
|
|
finalOut.a = 1.0;
|
|
- return float4(finalOut.r,0,0,1);
|
|
|
|
|
|
+
|
|
|
|
+ return float4(finalOut.rgb,1);
|
|
}
|
|
}
|