unity quaternion vector

Posted VISUAL WORLD VIRTUAL LIFE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity quaternion vector相关的知识,希望对你有一定的参考价值。

做脚印呢

做了曲面细分和decal两种

先用正交camera生成 高度图 

采样uv由pos 从world到camera space生成

 

unity对tessellation的支持限制还是比较大的 只能用surfaceshader 

并且开tesse的 surfaceshader就不支持自己vs 到ps 传自定义数据了

 

不配合光照的话 (normal)新增的顶点 看不清楚

unity的 surfaceshader如果不能支持 tessellation 生成的顶点normal传到ps 这功能就没多少意义

 

要生成朝向角色运动方向的脚印 需要生成一组顶点数据 

这个朝向我用四元数算的 

temp = rot * new Vector3(-1f * scale, 0, 1f * scale);//在原点用quaternionXvector3 得到朝向 
va[x++] = pos + temp;              //之后应用到 点所在的位置 ,就相当于 挪到loacalspace rotation之后到world space

                        //不这么做直接rotationXpos得到的是 ((0,0,0)-point)这个vector沿着quarternion旋转之后的vector

                          //Debug.DrawLine(start, dir, Color.green);可以用来debug
temp = rot * new Vector3(-1f * scale, 0, -1f * scale);
va[x++] = pos + temp;

temp = rot * new Vector3(1f * scale, 0, -1f * scale);
va[x++] = pos + temp;
temp = rot * new Vector3(1f * scale, 0, 1f * scale);
va[x++] = pos + temp;

{
mesh = new Mesh();
mesh.hideFlags = HideFlags.DontSave;
mesh.vertices = va;
mesh.uv = ta;
mesh.SetIndices(ia, MeshTopology.Triangles, 0);
}

Graphics.DrawMesh(mesh, Matrix4x4.identity, markMat, 16, camHeight);//16 layer decal

 

以上是关于unity quaternion vector的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D Quaternion各属性和函数測试

unity Quaternion

unity quaternion vector

Unity string 转换为 Quaternion

Unity3D 中 用quaternion 来对一个坐标点进行旋转的初步体会

Unity 的 Quaternion.AngleAxis(angle,axis)实际应用和利用Quaternion.AngleAxis(angle,axis)实现一个物体绕另一个物体做圆周运动