问题标签 [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.
android - 如何在ogl中获取触摸屏点的坐标?
我正在使用 OpenGL 绘制地图。在读取 XML 文件并设置相应的缓冲区后,我正在绘制地图。这张地图包含街道、高速公路和边界。我想要的是每当我触摸地图时,应该更改特定图层的颜色。
我面临的问题是,每当我触摸屏幕时,我都会得到我触摸点的屏幕像素。我想将此点转换为 OpenGL 坐标,以便我可以将此点与绘制的地图匹配并突出显示所选点。
如何将此点转换为OpenGL坐标?
c++ - glOrtho() 没有像我想象的那样工作
我试图让窗口中的一个视口显示茶壶的正交投影。
这是我想glOrtho
用来绘制茶壶正交视图的代码部分。首先,我glOrtho
是否正确使用?我想我是,但我没有得到我想要得到的东西,所以我怀疑我是。
为什么我所拥有的东西不起作用,我将如何解决它?
如果我应该放在glOrtho
一个特定的地方,那么知道在哪里会很有帮助。
另外,由于我应该有几个视口,那么所有视口都会有一个正交投影吗?
这是我的整个程序代码片段取自第 192-204 行
graphics - 2D 屏幕坐标到 3D 位置 Directx 9 / Box Select
我正在尝试在 3d 世界中实现框选择。基本上,单击,按住鼠标,然后松开鼠标,得到一个框,然后框选。首先,我试图弄清楚如何在 3d 中获取点击的坐标。
我有光线拾取,但没有得到正确的坐标(获取原点和方向)。无论屏幕的 X/Y 是什么,它都会返回相同的原点(尽管方向不同)。
我也试过:
它得到了同样的结果,无论坐标是什么,坐标都非常接近(并且是错误的)。这几乎就像返回眼睛,而不是实际的世界坐标。
如何使用 directx 9c 将 2d 屏幕坐标转换为 3d?
ios - 将投影矩阵移动到特定的 X、Y、Z 点?OpenGLES 2.0 - iOS
假设我正在使用下面的代码来设置投影视图:
如果我现在想让相机查看场景中的特定点,我将如何最好地实现这一点?目前我正在更改 modelViewMatrix 以移动对象,使其在视图中居中,但我想知道是否可以通过以某种方式操纵 projectionMatrix 来实现相同的效果。
c++ - 使用 OpenCV 中的相机校准参数将 2D 点投影到 3D 空间
我得到了我的相机参数calibrateCamera()
,现在我有了cameraMatrix、distCoeffs、rotationMatrix、transformMatrix。
使用这些矩阵,我可以构建投影矩阵并将空间中的 3D 对象点转换为 2D 图像点。
像这样的一些事情:
但我想要的是这个投影的反面。我想将这些 2D 点转换回 3D 空间。我知道我会丢失一些信息,但我所有的原始点都在同一个计划中。
请帮助我通过使用相机参数进行此转换来构建类似的矩阵。
opengl - OpenGL:混合正交投影和透视投影
我想混合透视和正交视图,但我无法让它工作。
我希望 X 和 Y 坐标是正交和 Z 透视。为了澄清起见,我添加了从 OpenGL 坐标到屏幕显示的所需转换的草图:
(我从教程开始,但找不到如何获取顶部、底部等值)
android - 放大 OpenGL ES 2.0 - 对象消失
我想知道如何正确放大OpenGL ES 2.0
。我已经成功绘制了一个模型,但它非常小,我无法放大这个模型。我喜欢的是放大“通过”这个模型。
该模型是具有不同楼层的建筑物 - 我想放大到每个楼层的每个房间。但是要么对象因为视锥而消失,要么我无法非常“接近”这个对象。
我正在使用缩放触摸手势并获得一个值“比例” - 我现在应该如何处理这个值?
到目前为止我尝试了什么:
更改近平面和远平面距离并更改 Matrix.setLookAtM(....) 中的 eyeZ-Value 但我只实现缩小...它在放大后消失...所以我'无法放大到某些特殊部分(“那”远....)
我怎样才能做到这一点?
所以最大的问题是通过 eyeZ-Value 结合缩放的近平面。它根本行不通。如果我放大,物体会因为近平面而消失。但我看不出这背后有什么逻辑。
目前我正在使用:
其中 mZoomLevel 是我通过 onTouch-Zooming 获得的因素。
我的整个矩阵运算都显示在这里:
}
任何一些重要的变量:
我在 Github 上上传了一个只有 OpenGL 部分的虚拟项目——以防你想更好地查看源代码
我有的:
我需要的:
opengl - 正确计算 OpenGL 投影矩阵的第一个元素?
我读到的关于投影矩阵的几乎所有理论资料都有第一个元素2n/(r-l)
,但我见过的大多数开源实现都有它2n/((t-b)*a)
,一开始对我来说很有意义,因为(r-l)
应该是((t-b)*a)
,但是当我实际运行数字,感觉有些不对劲。
如果我们有 65 度的垂直视野、0.1 的近平面和 4:3 的纵横比,那么我似乎得到:
但
为什么我阅读的所有内容与我看到的所有内容之间存在差异?直到我开始实现相同的分析逆时我才注意到,我看到它的第一个元素是 (rl)/2n,这不是这些其他实现的逆。
android - 用正交投影放大并在opengl es麻烦中浮动
我无法放大我的应用程序。我的应用程序的目的是在简单的 2D 视图中显示计划,因此它使用正交投影。由于数据本身和矩阵是浮点数,因此在放大时会导致很大的变形,因为视口的比例(宽度/高度)与屏幕像素比例变得非常不同。
这是投影矩阵的计算:
当我缩放时,以下代码会计算 viewportLeft、viewportRight、viewportBottom 和 viewportTop:
我在最后一行计算的那个差异在我放大时变得越来越大。有没有人知道如何解决这个问题,或者给我一个大致的方向?提前致谢!
matlab - 如何使用立体对计算基本矩阵?
关于基本矩阵的问题,如果我有一个立体声对(2 jpeg)并且我想应用 Peter Kovesi 或 Zisserman 的函数来获得 F,我该如何检索 P1 和 P2?这两个矩阵是来自两个图像的 3x4 矩阵,但我不知道它们是如何相关的......如果我从灰度第一张图像中获取随机 3x4 矩阵并在第二张图像中获取对应的 3x4 矩阵,是否正确?第一个使用一些匹配技术,例如相关性?如果是,您是否认为 3x4 矩阵不够详细?