欢迎光临散文网 会员登陆 & 注册

[笔记]庄懂的技术美术入门(十九)

2022-11-21 18:23 作者:少女的美梦7  | 我要投稿

1.顶点位移

Preview

实现原理

        将顶点y分量进行sin曲线的偏移

a.#define TWO_PI 声明常量

b.void方法没有return,会直接修改inout的值

c.因为避免时间无限大frac了曲线的长度所以要乘TWO_PI来完整sin曲线

2.顶点缩放

Preview

同理

3.顶点旋转

Preview

实现原理

        计算物体旋转角度之后,再将角度转化为弧度,再将弧度度转化为对应的模型空间的坐标

角度转化为弧度公式为

                                radY=radians(angleY);

旋转θ角后由三角函数得出两个向量坐标为(x·cosθ,x·sinθ)和(-z·sinθ,z·cosθ),然后两个向量相加得出最终点的坐标

4.AnimGhost

我们把动作拆解为如下几个部分:

        a. 缩放天使圈

        b. 幽灵摆动

        c. 幽灵摇头

        d. 幽灵起伏

        e. 天使圈颜色变亮

通过顶点色来实现分别控制每个部分

缩放天使圈

x控制缩放强度,y控制缩放速度,z控制下移的距离。如果不下移,那么天使圈将会按照模型的原点进行缩放,即会在y轴上有明显的位移

幽灵摆动

因为有x和z方向上的偏移,所以需要两个变量来控制位移属性

在sin函数中,vertex.y*_SwingXParams这部分的作用是确保坐标不同的y值有不同的偏移,否者整个模型都是单调的左左右右

幽灵摇头

Z分量是为了控制天使圈和头旋转有一定的滞后,像是模拟惯性的效果

这里- color.g * _ShakeYParams.z 就是计算天使圈的滞后性

幽灵起伏

天使圈颜色变亮

代码实现


[笔记]庄懂的技术美术入门(十九)的评论 (共 条)

分享到微博请遵守国家法律