庄懂技术美术入门课笔记_L19_顶点shader
顶点平移
1 案例
2 代码实现
- Translation()方法不需要返回值,返回的类型就是void。inout是修饰词,相当于为参数给了一张出入通行证。这个方法是对参数做一系列操作然后改变它。
- 常量可以在前面做声明。#define 常量名(大写) 常量值。
- 用到_Time的地方要注意取小数frac()。
3 核心代码分析
顶点缩放
1 案例
- 缩放一般是做乘法。
2 代码实现
3 核心代码分析
顶点旋转
1 案例
2 代码实现
- 对于旋转,偏移量是偏移角度。
- 角度转成弧度,方便运算。
- 先声明sin、cos的初始值,再用sincos()方法去修改这两个值,取到真实的值。这两句比直接用sinY = sin(radY)性能更好。
3 核心代码分析
4 几何解释
幽灵夜巡
1 案例
2 模型处理
3 代码实现
- _ScaleParam的z值是为了在天使圈变高的时候把它拽下来,变低的时候把它拽上去,所以声明一个值去校正它。
- 其它变量的z值滞后是天使圈的滞后。
- 输出结构追加顶点是为了实现天使圈的闪烁(强度)
- 注意:vertex.xz += float2(swingX, swingZ); 忘记加float2,出大问题。