问一下大佬,
creator在shader如果实现旋转啊。。我在论坛里找了一圈没找着。
主要是旋转矩阵运算,在creator要如何写呢。
unity的代码如下:
float4 Angle = length(v.vertex.xz)*_RotateAngle;//_SinTime.w;
**float4x4 Rotate44** = {
float4(1,0,0,0),
float4(0, cos(Angle.x),-sin(Angle.x),0),
float4(0, sin(Angle.x),cos(Angle.x),0),
float4(0,0,0,1)
};
// y
float4x4 Rotate44_y = {
float4(cos(Angle.y),0,sin(Angle.y),0),
float4(0,1,0,0),
float4(-sin(Angle.y),0,cos(Angle.y),0),
float4(0,0,0,1)
};
//z
float4x4 Rotate44_z = {
float4(cos(Angle.z),-sin(Angle.z),0,0),
float4(sin(Angle.z),cos(Angle.z),0,0),
float4(0,0,1,0),
float4(0,0,0,1)
};
float4 NewVert3 = mul(Rotate44, v.vertex);
float4 NewVert2 = mul(Rotate44_y, NewVert3);
float4 NewVert = mul(Rotate44_z, NewVert2);
NewVert.x *= _SScale.x*_Scale;
NewVert.y *= _SScale.y*_Scale;
NewVert.z *= _SScale.z*_Scale;
float3 worldpos = mul(unity_ObjectToWorld, NewVert).xyz;
o.vertex = UnityObjectToClipPos(NewVert + _ShadowPlane.xyz);
o.vertex.x -= NewVert.y*_HorAngle;
o.uv = TRANSFORM_TEX(v.uv, _MainTex);