我有一个自定义的不发光着色器,可以使对象从相机到达的距离越远,将对象淡化为透明的,并在alpha达到某个阈值时进行裁剪。 着色器效果很好,但是除了淡入淡出之外,我还需要标准着色器的其余功能。
当我在标准表面着色器之前尝试使用UsePass时,淡入淡出的效果完全消失了。如果之后执行此操作,则渐变着色器将像您期望的那样在顶部绘制。我还没有弄清楚如何使其与自定义的标准着色器一起使用(直接使用从Unity下载的文件)。
我尝试过的例子:
在冲浪着色器之前使用我的淡入淡出效果-刚被绘制过,下面失去了透明度
Shader "Custom/DistanceFader"
{
Properties
{
[...]
_FadeDistance("FadeDistance", Float) = 50
_FadeLength("FadeLength", Float) = 30
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
UsePass "Unlit/Custom/TestShader/TESTPASS"
GrabPass {
"_MainTex"
}
[...]
在冲浪着色器之后使用淡入淡出-绘制冲浪通道,因此最后没有透明的物体。
Shader "Custom/DistanceFader"
{
Properties
{
[...]
_FadeDistance("FadeDistance", Float) = 50
_FadeLength("FadeLength", Float) = 30
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
[...]
surf { [...] }
[...]
GrabPass {
"_MainTex"
}
UsePass "Unlit/Custom/TestShader/TESTPASS"
如何获得已创建的标准表面着色器的所有效果,又如何应用淡入淡出效果?