转换后如何计算屏幕坐标?

问题描述 投票:2回答:1

我正在尝试解决与3-D空间中的坐标转换有关的问题,但不确定如何处理。

让一个名为P的顶点在原点处绘制一个4x4转换矩阵。然后,它是通过使用模型视图矩阵定位的摄像机然后通过简单的投影变换矩阵进行查看的。

如何计算P'(x,y,z)的新屏幕坐标?

matrix graphics 3d webgl transformation
1个回答
1
投票

在解释管道之前,您需要知道管道是如何在屏幕上绘制的。进程之间的一切都只是向量的矩阵乘法

模型-世界-相机-投影(或标准化坐标)-屏幕

  1. 第一步,我们将其称为“模型空间”,因为(0,0,0)是基于模型的。
  2. 并且我们需要将模型空间移至世界空间,因为我们要将模型移至世界,因此我们需要做的变换将是(平移,旋转,缩放)TRS * Model(Vector4),因为世界变换的定义会有所不同完成后,在世界上建模。
  3. 第三,需要在摄影空间上进行渲染,因为我们看到的是通过相机。在世界上,相机还具有位置,视口大小和旋转。它需要从相机投影。见

    完成这项工作后,您将获得标准化的坐标,从技术上讲是0-1坐标。

  4. 最后,屏幕空间。假设我们要为手机制作视频游戏。移动设备具有很多屏幕分辨率。那么如何完成呢?简单,缩放和平移以在屏幕空间坐标中获得结果。由于原产地和屏幕尺寸不同。

    因此,您打算做的是“第4步”。

    1. 如果要从世界获取屏幕位置P1,则公式将为“屏幕矩阵*投影矩阵*摄像机矩阵* P1”
    2. 如果要从摄像机空间获取位置,则应为“屏幕矩阵*投影矩阵* P1”。

有一些有用的链接可以理解矩阵和计算,因此请参见上面的链接。

© www.soinside.com 2019 - 2024. All rights reserved.