HLSL的浮点纹理中的颜色

时间:2014-10-15 14:20:58

标签: directx hlsl

在HLSL Pixel Shader中,代码如下:

float Exposure_Level;
sampler Environment;
float4 ps_main(float3 dir: TEXCOORD0) : COLOR 
{
   // Read texture and determine HDR color based on alpha
   // channel and exposure level
   float4 color = texCUBE(Environment, dir);
   return color * ((1.0+(color.a*64.0))* Exposure_Level);
}

此传递将呈现为浮点纹理,格式为A16R16G16B16。但我不太明白为什么颜色应乘以

((1.0+(color.a*64.0))* Exposure_Level)

可能大到65或更大。

颜色介于0到1之间,Exposure_Level应大于0.

如果颜色乘以这样的数字,结果可能会非常大,为什么这仍然有效?

0 个答案:

没有答案