unity坐标转换

1.局部坐标转世界坐标

transform.TransformPoint(Vector3 position)

//获取本地转世界矩阵乘以局部坐标

transform.localToWorldMatrix * localPosition

2.世界坐标转局部坐标

transform.InverseTransformPoint(Vector3 position)

//获取世界转局部矩阵乘以世界坐标

 transform.worldToLocalMatrix *worldPosition

3.世界坐标转UV坐标

a:射线获取物体上的坐标

b:坐标转换到物体的局部坐标

c:获取当前坐标所在的三角面的三个点的局部坐标和uv坐标

d:把点的坐标转换到ndc空间

e:在ndc坐标系下,构建重心坐标系,计算三个点的重心坐标系的值

d:通过重心坐标系,三个的点的权重值,计算射线碰撞点的uv坐标值

Vector3 p = transform.InverseTransformPoint(worldPos);

Matrix4x4 mvp = renderCamera.projectionMatrix * renderCamera.worldToCameraMatrix * transform.localToWorldMatrix;

///


        /// Convert local-space point to texture coordinates.
        ///

        /// Local-Space Point
        ///

你可能感兴趣的:(别动我的奶酪,unity,游戏引擎)