问题标签 [projection-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3252 浏览

android - 如何在ogl中获取触摸屏点的坐标?

我正在使用 OpenGL 绘制地图。在读取 XML 文件并设置相应的缓冲区后,我正在绘制地图。这张地图包含街道、高速公路和边界。我想要的是每当我触摸地图时,应该更改特定图层的颜色。

我面临的问题是,每当我触摸屏幕时,我都会得到我触摸点的屏幕像素。我想将此点转换为 OpenGL 坐标,以便我可以将此点与绘制的地图匹配并突出显示所选点。

如何将此点转换为OpenGL坐标?

0 投票
1 回答
445 浏览

c++ - glOrtho() 没有像我想象的那样工作

我试图让窗口中的一个视口显示茶壶的正交投影。

这是我想glOrtho用来绘制茶壶正交视图的代码部分。首先,我glOrtho是否正确使用?我想我是,但我没有得到我想要得到的东西,所以我怀疑我是。

为什么我所拥有的东西不起作用,我将如何解决它?

如果我应该放在glOrtho一个特定的地方,那么知道在哪里会很有帮助。

另外,由于我应该有几个视口,那么所有视口都会有一个正交投影吗?

这是我的整个程序代码片段取自第 192-204 行

0 投票
2 回答
4507 浏览

graphics - 2D 屏幕坐标到 3D 位置 Directx 9 / Box Select

我正在尝试在 3d 世界中实现框选择。基本上,单击,按住鼠标,然后松开鼠标,得到一个框,然后框选。首先,我试图弄清楚如何在 3d 中获取点击的坐标。

我有光线拾取,但没有得到正确的坐标(获取原点和方向)。无论屏幕的 X/Y 是什么,它都会返回相同的原点(尽管方向不同)。

我也试过:

它得到了同样的结果,无论坐标是什么,坐标都非常接近(并且是错误的)。这几乎就像返回眼睛,而不是实际的世界坐标。

如何使用 directx 9c 将 2d 屏幕坐标转换为 3d?

0 投票
1 回答
796 浏览

ios - 将投影矩阵移动到特定的 X、Y、Z 点?OpenGLES 2.0 - iOS

假设我正在使用下面的代码来设置投影视图:

如果我现在想让相机查看场景中的特定点,我将如何最好地实现这一点?目前我正在更改 modelViewMatrix 以移动对象,使其在视图中居中,但我想知道是否可以通过以某种方式操纵 projectionMatrix 来实现相同的效果。

0 投票
1 回答
3708 浏览

c++ - 使用 OpenCV 中的相机校准参数将 2D 点投影到 3D 空间

我得到了我的相机参数calibrateCamera(),现在我有了cameraMatrix、distCoeffs、rotationMatrix、transformMatrix。
使用这些矩阵,我可以构建投影矩阵并将空间中的 3D 对象点转换为 2D 图像点。
像这样的一些事情:

在此处输入图像描述

但我想要的是这个投影的反面。我想将这些 2D 点转换回 3D 空间。我知道我会丢失一些信息,但我所有的原始点都在同一个计划中。
请帮助我通过使用相机参数进行此转换来构建类似的矩阵。

0 投票
2 回答
1490 浏览

opengl - OpenGL:混合正交投影和透视投影

我想混合透视和正交视图,但我无法让它工作。

我希望 X 和 Y 坐标是正交和 Z 透视。为了澄清起见,我添加了从 OpenGL 坐标到屏幕显示的所需转换的草图:

所需视图的草图

(我从教程开始,但找不到如何获取顶部、底部等值)

0 投票
2 回答
2516 浏览

android - 放大 OpenGL ES 2.0 - 对象消失

我想知道如何正确放大OpenGL ES 2.0。我已经成功绘制了一个模型,但它非常小,我无法放大这个模型。我喜欢的是放大“通过”这个模型。

该模型是具有不同楼层的建筑物 - 我想放大到每个楼层的每个房间。但是要么对象因为视锥而消失,要么我无法非常“接近”这个对象。

我正在使用缩放触摸手势并获得一个值“比例” - 我现在应该如何处理这个值?

到目前为止我尝试了什么:

更改近平面和远平面距离并更改 Matrix.setLookAtM(....) 中的 eyeZ-Value 但我只实现缩小...它在放大后消失...所以我'无法放大到某些特殊部分(“那”远....)


我怎样才能做到这一点?

所以最大的问题是通过 eyeZ-Value 结合缩放的近平面。它根本行不通。如果我放大,物体会因为近平面而消失。但我看不出这背后有什么逻辑。

目前我正在使用:

其中 mZoomLevel 是我通过 onTouch-Zooming 获得的因素。

我的整个矩阵运算都显示在这里:

}

任何一些重要的变量:

我在 Github 上上传了一个只有 OpenGL 部分的虚拟项目——以防你想更好地查看源代码

我有的:

我目前的看法

我需要的:

我想要的视图

0 投票
1 回答
54 浏览

opengl - 正确计算 OpenGL 投影矩阵的第一个元素?

我读到的关于投影矩阵的几乎所有理论资料都有第一个元素2n/(r-l),但我见过的大多数开源实现都有它2n/((t-b)*a),一开始对我来说很有意义,因为(r-l)应该是((t-b)*a),但是当我实际运行数字,感觉有些不对劲。

如果我们有 65 度的垂直视野、0.1 的近平面和 4:3 的纵横比,那么我似乎得到:

为什么我阅读的所有内容与我看到的所有内容之间存在差异?直到我开始实现相同的分析逆时我才注意到,我看到它的第一个元素是 (rl)/2n,这不是这些其他实现的逆。

0 投票
0 回答
805 浏览

android - 用正交投影放大并在opengl es麻烦中浮动

我无法放大我的应用程序。我的应用程序的目的是在简单的 2D 视图中显示计划,因此它使用正交投影。由于数据本身和矩阵是浮点数,因此在放大时会导致很大的变形,因为视口的比例(宽度/高度)与屏幕像素比例变得非常不同。

这是投影矩阵的计算:

当我缩放时,以下代码会计算 viewportLeft、viewportRight、viewportBottom 和 viewportTop:

我在最后一行计算的那个差异在我放大时变得越来越大。有没有人知道如何解决这个问题,或者给我一个大致的方向?提前致谢!

0 投票
3 回答
1975 浏览

matlab - 如何使用立体对计算基本矩阵?

关于基本矩阵的问题,如果我有一个立体声对(2 jpeg)并且我想应用 Peter Kovesi 或 Zisserman 的函数来获得 F,我该如何检索 P1 和 P2?这两个矩阵是来自两个图像的 3x4 矩阵,但我不知道它们是如何相关的......如果我从灰度第一张图像中获取随机 3x4 矩阵并在第二张图像中获取对应的 3x4 矩阵,是否正确?第一个使用一些匹配技术,例如相关性?如果是,您是否认为 3x4 矩阵不够详细?