【发布时间】:2019-03-29 09:32:42
【问题描述】:
希望一个简单的问题。这是一个简单的相机效果着色器。这行得通。但是,拥有 _ColorSet01 数组 INSIDE 的 frag 函数意味着该数组会针对每个像素进行初始化 ¿ 我错了吗?相信我已经将它 OUTSIDE 移到了 _MainTex 定义下方的函数中。通过这样做,数组中的每个项目都会丢失它们的值,并在函数内部查询时变为 float4(0,0,0,0)。
我显然是以错误的方式处理这个数组。任何帮助将不胜感激。
顺便说一句,如果有帮助的话,这是 Unity 2018.3.10。
sampler2D _MainTex;
float4 frag(v2f_img input) : COLOR {
float4 base = tex2D(_MainTex, input.uv);
float4 _ColorSet01[6] =
{
float4(1,0,0,1),
float4(1,1,0,1),
float4(1,0,0,1),
float4(1,0,1,1),
float4(1,1,0,1),
float4(1,0,0,1)
};
if (base.a > 0)
{
base.rgb = _ColorSet01[1].rgb;
}
return base;
}
【问题讨论】: