# 【Shader顶点坐标变换】

#define TWO_PI 6.283185

顶点坐标位移

void Translation (inout float3 vertex) {
    vertex.y += _MoveRange * sin(frac(_Time.z * _MoveSpeed) * TWO_PI);
}

顶点坐标缩放

// _ScaleRange 0~0.5
void Scaling (inout float3 vertex) {
    vertex *= 1.0 + _ScaleRange * sin(frac(_Time.z * _ScaleSpeed) * TWO_PI);
}

顶点坐标旋转

// _RotateRange 0~45          
void Rotation (inout float3 vertex) {
    float angleY = _RotateRange * sin(frac(_Time.z * _RotateSpeed) * TWO_PI);
    float radY = radians(angleY);
    float sinY, cosY = 0;
    sincos(radY, sinY, cosY);
    vertex.xz = float2(
    vertex.x * cosY - vertex.z * sinY,
    vertex.x * sinY + vertex.z * cosY
    );
}