unity 消融效果shader 以及世界空间uv

在腾讯GAD上看到一篇文章http://gad.qq.com/program/translateview/7187984

由于文章中并没有给出源码,所以自己尝试实现了一下,文章最后有完整shader代码。

消融效果很简单,只要在fragment中丢弃无效的像素点即可

                fixed4 color = tex2D(_MainTex,uv);
                if(color.r <= _Rate){
                    discard;
                }
                return color;  

这里我设置了一个变量_Rate来控制消融的程度


接下来是世界空间uv,在这里我遇到一个问题,原文中提到"可以透过一些向量运算出能够作用于所有表面的UV集合",猜想应该是使用法线对顶点进行坐标系的转换,但是这里我始终没能想出具体的解决方案,所以这里我只能暂时使用一个笨方法来实现,就是根据法线来判断应该取顶点在3维坐标系中的哪两个轴的坐标来作为uv坐标:

                float2 uv = i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值