本文主要是介绍UnityShader源码2017---学习笔记与自我拓展044,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
源自 Particle Anim Alpha Blend
这是一个伟大的shader。这里不讲原理,请移步这里,这里,这里,和这里。
假设已经看懂了上面的那4篇。
我们看一下这个shader的用法。
struct appdata_t {float4 vertex : POSITION;fixed4 color : COLOR;float4 texcoords : TEXCOORD0;float texcoordBlend : TEXCOORD1;UNITY_VERTEX_INPUT_INSTANCE_ID
};
这里可以看到,粒子系统需要给shader传递一些额外的信息。
比如Texcoord0要传递xyzw四个分量的信息。还要传递一个TEXCOORD1的x分量的信息
于是,就有了
是的,根据shader去逆推一下就好,修改好粒子系统之后,我就给了它个序列帧。
从左往右startLifeTime依次为5,10,50
应该看出来了,尤其是最右边那个。
先说源码片段
//#Vertex
o.blend = v.texcoordBlend;//#Fragment
fixed4 colA = tex2D(_MainTex, i.texcoord);
fixed4 colB = tex2D(_MainTex, i.texcoord2);
fixed4 col = 2.0f * i.color * lerp(colA, colB, i.blend);
这里就可以看出来了,v.texcoordBlend里存的是序列帧图两帧(TextureSheetAniamtion要正确设置一下)之间的时间,变是从0到1,周而复始。
这篇关于UnityShader源码2017---学习笔记与自我拓展044的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!