Unity中Shader雾效的原理

文章目录

  • 前言
  • 一、我们先看一下现实中的雾
  • 二、雾效的混合公式
    • `最终的颜色 = lerp(雾效颜色,物体颜色,雾效混合因子)`
  • 三、雾效的衰减
    • 1、FOG_LINEAR(线性雾衰减)
    • 2、FOG_EXP(指数雾衰减1)
    • 3、FOG_EXP(指数雾衰减2)


前言

Unity中Shader雾效的原理


一、我们先看一下现实中的雾

Unity中Shader雾效的原理_第1张图片

我们会发现现实中的雾,与 距离 和 雾的浓度相关


二、雾效的混合公式

最终的颜色 = lerp(雾效颜色,物体颜色,雾效混合因子)

雾效混合因子与两方面有关

  • 物体离视角的距离
  • 雾本身的浓度

三、雾效的衰减

1、FOG_LINEAR(线性雾衰减)

Unity中Shader雾效的原理_第2张图片

start:雾开始的位置(设置好后,在公式中就是常量)
end: 雾结束的位置(设置好后,在公式中就是常量)
z: 物体的深度值(这是公式中的变量,即影响雾效的因子)

衰减趋势图:
Unity中Shader雾效的原理_第3张图片

2、FOG_EXP(指数雾衰减1)

Unity中Shader雾效的原理_第4张图片
density: 雾的浓度
z: 物体的深度值

衰减趋势图:
Unity中Shader雾效的原理_第5张图片

3、FOG_EXP(指数雾衰减2)

Unity中Shader雾效的原理_第6张图片
density: 雾的浓度
z: 物体的深度值

衰减趋势图:
Unity中Shader雾效的原理_第7张图片

你可能感兴趣的:(Unity,unity,游戏引擎)