Directx HLSL浮点纹理中的颜色
在HLSL像素着色器中,代码如下所示:Directx HLSL浮点纹理中的颜色,directx,hlsl,Directx,Hlsl,在HLSL像素着色器中,代码如下所示: 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);
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之间,曝光水平应大于0
如果颜色乘以这样的数字,结果可能非常大,为什么仍然有效 你读过关于HDR渲染理论的论文吗?也许这能回答你的问题。@rashmatash谢谢你的建议,我在哪里可以看报纸?这是报纸。再看看这篇文章:要搜索的关键词有:色调映射、HDR灯光