美文网首页
世界坐标系互相转换 矩阵相乘顺序

世界坐标系互相转换 矩阵相乘顺序

作者: 卡卡罗忒 | 来源:发表于2019-12-20 18:04 被阅读0次

metal纹理坐标与00点是左上角与opengl相反

3d世界物体转换为设备屏幕需要的转换

为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate),它在之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip Coordinate),并最后以屏幕坐标(Screen Coordinate)的形式结束。下面的这张图展示了整个流程以及各个变换过程做了什么:
一个3d世界的物体从 自身坐标 转换为屏幕设备坐标 需要经过三次矩阵转换 Model view project

坐标转换

矩阵相乘顺序

  • scale rotate translate
  • 矩阵相乘是从后向前
    let animatedModelView = matrix_multiply(matrix4x4_translation(translateXAnimationValue / scaleX, translateYAnimationValue / scaleY, 0),matrix4x4_scale(scaleXAnimationValue, scaleYAnimationValue, 1))

projectMatrix

左右下上近远 2d图形处理只需要 正交矩阵
因为图片本身世界的坐标系是 从左到右从下到上

Snipaste_2019-12-22_21-42-41.png
ios系统的坐标系是从左到右从上到下 Y轴正好相反 所以裁剪矩阵建立的时候 要将上下颠倒过来,用以处理图片上下flip的问题

matrixProjection = matrix_ortho(0, Float(renderSize.width), 0, Float(renderSize.height), -1, 1)'

相关文章

  • 世界坐标系互相转换 矩阵相乘顺序

    metal纹理坐标与00点是左上角与opengl相反 3d世界物体转换为设备屏幕需要的转换 为了将坐标从一个坐标系...

  • 二维渲染流程

    物体的摆放问题: 即将物体从本地坐标系转换到世界坐标系需要使用世界变化矩阵(物体自身的旋转缩放平移或组合矩阵) 物...

  • 相机矩阵

    视图矩阵 是 相机世界矩阵的逆矩阵;位于相机坐标系里的点,乘以相机世界矩阵,即转到了世界坐标系里;位于世界坐标系里...

  • 旋转矩阵 look at

    视图矩阵 是 相机世界矩阵的逆矩阵;位于相机坐标系里的点,乘以相机世界矩阵,即转到了世界坐标系里;位于世界坐标系里...

  • ARCamera的transform

    介绍: 转换矩阵,用于定义相机在世界坐标系中的旋转和平移。 transform 是一个 4x4 矩阵。关于矩阵中信...

  • 矩阵

    1. 线性方程组 2. 矩阵定义 3. 矩阵运算 矩阵的加法矩阵的加法 数与矩阵相乘数与矩阵相乘 矩阵与矩阵相乘矩...

  • 环境

    1. 导入需要的库 2. 定义三角函数用于坐标系转换 3. 定义转换矩阵:大地坐标系---->随体坐标系 4. 定...

  • 第3章 动态规划——矩阵连乘最优计算方式查找

      问题:如何得到n个矩阵连乘的最少计算次数的计算顺序?先计算,还是先计算?其中,为矩阵的维度。 1、两个矩阵相乘...

  • 相机模型

    相机坐标系 -> 像素坐标系 (内参矩阵 ) 即:加上x轴y轴偏置 世界坐标系 -> 相机坐标系 世界坐标系 ->...

  • 矩阵运算

    矩阵与标量的乘法 每个元素与标量相乘 矩阵相乘 只有第一个矩阵的列数与第二个矩阵的行数相同,才可以相乘。新矩阵行数...

网友评论

      本文标题:世界坐标系互相转换 矩阵相乘顺序

      本文链接:https://www.haomeiwen.com/subject/rtbinctx.html