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,周而复始。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值