ShaderOne的体积雾

ShaderOne的体积雾

ShaderOne 是Unity商店的一个shader资源,作者期望把所有的渲染特性集合到一个shader上去,所以起个名字叫 ShaderOne

本人其实比较反对这种 All In One 的shader,因为变种实在太多,优化起来比较蛋疼,不过作为一个学习资料还是挺好的。

今天我们来看一下他的 体积雾 的实现,先上截图:


核心代码

说到体积雾,大家的第一个印象就是费。

没错了,指望 ShaderOne体积雾 能在手机上跑得飞起是有点强人所难的,因为计算涉及到 射线步进3d纹理采样

不过如果射线数设置的不那么高,高端手机还是可以一战的,文章的最后会给出一个测试。

在介绍 体积雾 之前,我们先看一下 ShaderOne 提供的全部雾效类型,应用雾效的入口代码如下:

inline void FogApply ( inout SOLightingData i_sold, in v2f i )
{

#ifdef SO_GD_BASE_PASS
    #ifdef SO_GD_FOG_SOLID
        FogApplySolid ( i_sold, i );
    #endif

    #ifdef SO_GD_FOG_VOLUMETRIC
        FogApplyVolumetric ( i_sold, i );
    #endif

    #ifdef SO_GD_FOG_VOLUMETRIC_3D
        FogApplyVolumetric3D ( i_sold, i );
    #endif

#endif
}

可以看到 ShaderOne

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值