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

 

转载于:https://www.cnblogs.com/minggoddess/p/8962970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值