unity使用顶点偏移shader后物体包围盒位置的偏移
这里只做一下笔记,总结。
顶点偏移shader主要是将游戏中的点在经过一系列坐标转化过程中所做的偏移的shader。
有2种做法,要么在观察坐标系偏移,要么在其次坐标系偏移。
假如在开发一个跑酷游戏,游戏的跑道是一个纵深弯曲的曲面,上面有各种金币,道具。
虽然说金币及道具顶点实现了偏移,但包围盒不会,所以还得再项目里实现位置坐标转化;
代码块
观察坐标系下转化如下:
m_vpMatrix = cam.worldToCameraMatrix;
Vector4 lvlObjV4Pos = new Vector4(pos.x, pos.y, pos.z, 1);
Vector4 ml = m_vpMatrix * lvlObjV4Pos;
// shader中的变换
Vector4 v4 = new Vector4(0, -8