Skip to content

格式

c++
#pragma shader_feature_fog

描述

执行了该命令的 着色器(shader)会根据不同的 雾效模式(Fog Model)套用不同的雾效变体。

字段

变体描述
FOG_LINEAR 或 FOG_EXP 或 FOG_EXP2系统会根据雾效的不同模式套用不同的变体。
· 当雾效模式是 线性(Linear)模式时套用 FOG_LINEAR 变体。
· 当雾效模式是 指数(Exponential)模式时套用 FOG_EXP 变体。
· 当雾效模式是 指数平方(Exponential Squared)模式时套用 FOG_EXP2 变体。 套用上述变体系统会根据雾效模式计算出对应模式下 顶点着色器(Vertex Shader)的 雾化因子(Fog Factor),随后您可以通过内置宏 CALC_FOG_FACTOR(z) 读取当前雾效模式下距离摄像机距离为 z 位置的雾化因子值,关于该宏的详细描述请参阅 内置宏 章节。

代码示例

c++
#pragma shader_feature_fog

#if defined(FOG_LINEAR) || defined(FOG_EXP) || defined(FOG_EXP2)
    #if defined(FOG_LINEAR)
    	//当雾效模式是 线性(Linear)模式时,执行此处逻辑;
    #elif defined(FOG_EXP)
    	//当雾效模式是 指数(Exponential)模式时,执行此处逻辑;
    #elif defined(FOG_EXP2)
    	//当雾效模式是 指数平方(Exponential Squared)模式时,执行此处逻辑;
    #endif
#endif