《Unity Shader入门精要》第11章小结
先讲一下为什么从第11章才开始写:对于本人学习方法来说,读书记笔记是一件比较费力不讨好的事,往往记得不精,自己也不会回去看。于是基本没有过同步跟进阅读的笔记发布。
但是这时看到同学在学习完一整本书后,想要去总结一本书的时候,笔者想到或许这种总结式的回顾可能不但有助于复习,加深记忆,而且能够产出一些自己的东西,于是笔者开始尝试写这种章节式的小结来产出并加深自己的记忆。(当然还有为了装B,证明一下自己学过了捏)
本章学习了主要时间变量、纹理动画(利用贴图不同位置的代表了不同帧像素所应播放的动画)、顶点动画(利用顶点偏移使得片元看起来像动起来一样)。
时间变量如下,体感来说四种变量各有各的场合,没有优劣。

关于纹理动画有序列帧和滚动动画。序列帧关键要确定纹理行列以及计算当前图元所对应的n行m列的uv,而滚动动画关键在于frac的循环,多个重叠纹理可以使用lerp差值。
名称类型描述_Timefloat4场景开始时总时间(t/20,t.2t,3t)_SinTimefloat4总时间正弦.(t/8,t/4,t/2,t)_CosTimefloat4余弦.(t/8,t/4,t/2,t)unity_DeltaTimefloat4dt是每帧时间增量.(dt,1/dt,smoothDt,1/smoothDt)顶点动画最重要的是理解顶点如何动。比如普通动,周期性动(河流效果),还是改变坐标系的动(广告牌效果)。比较有意思的就是广告牌构造旋转矩阵,我们需要先找到一个新的旋转矩阵,然后利用顶点到锚点的偏移,计算出新的顶点。
最后关于阴影,如果直接使用fallback diffuse或vertexlit中的Shadowcaster,由于它并不知道我们偏移了顶点,因此会产生不正确的阴影效果。所以需要自己写一个包含相同定点动画与SHADOW_CASTER与SHADOW_CASTER_FRAGMENT()的pass.
这一章就记录到这吧,感谢观看。
