转换3D - > 2D坐标

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

我正在研究一个光线追踪器,并提出了一些我认为可能非常新颖的东西,但我正在努力将Vector3映射到它相应的2D屏幕坐标。我已经搜索过并发现了几个不同的主题,但他们总是给我错误的结果。

鉴于:

透视摄影机(由位置,向上,向右和向左的矢量组成)一个向量,表示我想要映射回屏幕的空间中的3D点

有:

我有一个函数,它将采用(x,y)坐标和一个Camera对象,它给了我一个Vector(x,y,z)

想要:反向执行的功能 - 即获取3D世界坐标和相机并返回(x,y)坐标作为回报...

我已经尝试了几种方法来执行此操作,并且所有方法都返回不正确的数据。

谢谢!

3d
2个回答
0
投票

您正在寻找的是一个投影矩阵。您可以将此矩阵乘以一些3D点,将其投影到某个2D观察面上,在我们的例子中是计算机屏幕。

我知道你没有使用OpenGL,但是这个链接确切地概述了OpenGL如何构造这样一个矩阵:

http://www.songho.ca/opengl/gl_projectionmatrix.html


0
投票

我之前回答了一些问题,你可能会觉得它们很有用。如果不是我的答案,那么其他用户的评论也是!

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