[toc] 先说明下雾效的用处
其实雾效除了在效果上的用处外,还有其他的作用,如:
1. 远处的浓雾可以掩饰远处渲染上的失真
2. 为了防止物体突然的出现 (popping)[如视椎体中突然出现新物体,或者场景裁减中忽然实例化出新物体], 可以使用雾效来掩饰

# 龙书中实现雾效的方法

即片元的颜色与深度以及雾的颜色进行插值 参数 s 的范围是 [0,1], 这个参数是以摄像机位置和物体表面点之间的距离为参数的函数来确定的 其中,dist (p,E) 是表面点 P 与摄像机位置 E 之间的距离函数,saturate 会将这个值限制在 [0,1] 之间

# HLSL 中通过宏来控制逻辑的开关

由上可以看出,可以通过 CompileShader 来将宏定义添加到参数中.