问题标签 [perspectivecamera]

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 投票
1 回答
2690 浏览

c++ - 在 glOrtho 和 gluPerspective 之间切换

我正在使用一个小的 OpenGL - GLUT 程序(我完全是菜鸟),并且我在 gluPerspective 和 glOrtho 之间切换时遇到了很多问题(例如“p”)。

我拍摄了一些屏幕截图来说明问题......使用gluPerspectiveglOrtho

这是我的代码...

假设我应该在 glOrtho 视图中看到绿色的“地板”……我做错了什么?

附言。模型对象是教师提供的 .obj 文件。

编辑:

最后,glOrtho 可以正常工作。但是现在......我还有另一个问题,我怎样才能最大化窗口并且(在 glOrtho 模式下)图像不会变形?

在 changeSize() 函数中......当我使用 gluPerspective 它工作正常,但不能使用 glOrtho!

0 投票
1 回答
40104 浏览

opengl - gluPerspective 参数——它们是什么意思?

我想知道gluPerspective参数。

在我看到的所有示例中,我fovy都设置为 45-60 度左右,我尝试将其设置为不同的值,但对象只是消失了,对此有何解释?

aspect值应该始终是比率?为什么要改变它?

zNear, zFar- 再一次,通常的值是 10 和 500+ 它反映了什么?

0 投票
1 回答
463 浏览

java - 3D PerspectiveCamera 渲染深度 libgdx OpenGL ES 2.0

我似乎在让 libgdx 正确渲染事物时遇到问题。我使用顶点渲染 2 个彩色三角形:

三角形 1(蓝色):(-1.0f, 0.0f, -1.0f), (1.0f, 0.0f, -1.0f), (0.0f, 1.0f, -1.0f)

三角形 2(红色):(0.0f, 0.0f, -3.0f), (1.0f, 1.0f, -3.0f), (2.0f, 0.0f, -3.0f)

三角形 2 应该在三角形 1 的右边和后面。我真的不知道发生了什么,因为三角形 2 在右边并且它比三角形 1 小,但它被渲染在三角形 1 的前面。关于如何做的任何建议解决这个问题将不胜感激。我试过搜索谷歌,但找不到任何有帮助的东西。

0 投票
1 回答
5109 浏览

android - Android 中的透视投影在增强现实应用程序中

目前我正在编写一个增强现实应用程序,但在将对象显示在屏幕上时遇到了一些问题。令我非常沮丧的是,我无法将 gps 点转换为我的 android 设备上的相应屏幕点。我已经阅读了很多关于 stackoverflow 的文章和许多其他帖子(我已经问过类似的问题),但我仍然需要你的帮助。

我做了维基百科中解释的透视投影。

我与透视投影的结果有什么关系才能获得最终的屏幕点?

0 投票
1 回答
256 浏览

opengl-es - 如何计算观察点的 Z 位置?

我画了一个矩形并将其与图像的纹理绑定。然后我做了一些旋转、过渡和缩放。它与正交投影完美配合。

现在我正在尝试透视投影。

例如,我的图像等于 200*300 像素。我希望我的矩形在 iPad 屏幕上不超过 200*300 点。所以我需要正确计算eyeZ

如何计算eyeZ

0 投票
1 回答
1554 浏览

android-camera - 透视投影中的笛卡尔坐标系

我仍在为我的增强现实应用程序实现透视投影。我已经问过一些关于视口计算和其他相机东西的问题,这在这个线程中的 Aldream 中有解释

但是,目前我没有得到任何有用的价值,我认为这取决于我对笛卡尔坐标空间的计算。

我有一些不同的方法可以将纬度、经度和高度转换为笛卡尔坐标空间,但它们似乎都不能正常工作。目前我正在使用 ECEF(以地球为中心),但我也尝试了不同的计算,例如将半正弦公式和三角函数相结合(从两点之间的距离和方位角计算 x 和 y)。

所以我的问题是:

笛卡尔坐标空间如何影响我的透视投影?我必须在哪里“补偿”我的单位?(例如,当我使用米或厘米时)?

假设我使用的是 ECEF,而不是获得以米为单位的值,例如,我的相机位于(0,0,2m 高度),而我的点位于(10,10,0)。现在我可以轻松地使用维基百科上提到的功能,然后使用我的另一个线程中解释的 dx、dy、dz 的转换(如上所述)。我仍然没有得到:这个投影如何“知道”我在坐标系中的单位是什么?我认为这是我目前正在做的错误。我不处理坐标系的单位,因此无法从我的投影中获得任何好的价值。

当我使用以厘米为单位的坐标系时,我的透视投影的所有值都在增加。我必须在哪里“解决”这个单位问题?我是否必须将我的相机宽度和相机高度从像素“转换”为米?我必须将坐标系转换为像素吗?应该使用哪个坐标系来处理这种情况?我希望你能理解我的问题。

编辑:我自己解决了。 我已经将我的坐标系从 ecef 更改为自己的系统(使用 hasrsine 和轴承,然后计算 x、y、z),现在我得到了很好的值!:)

0 投票
1 回答
318 浏览

css - CSS3 透视图:可视化视图金字塔

通过阅读这篇文章: http ://www.eleqtriq.com/2010/05/understanding-css-3d-transforms/ 我可以理解如何将perspective属性可视化为在 3d 空间中创建金字塔。

在此处输入图像描述

我不太清楚的是那句话,“立方体的侧面被扭曲并投影到金字塔上”,然后“视角越高,金字塔越陡,所以变换后的物体大小会更接近它的未转换的大小。”

该图似乎显示了如果从右侧照射光会发生什么,并且立方体右侧的正方形在金字塔上投下扭曲的阴影。但由于这是在金字塔的边缘——在我们视野的边缘,这实际上有什么用处?

而且我知道更高的视角会创建一个更陡峭的金字塔 - 但是为什么这会创建更少扭曲的对象?

任何人都可以澄清这些观点吗?谢谢你。

0 投票
1 回答
899 浏览

java - OpenGL 透视图在 z 轴上的场景扭曲程度远超预期

我在 LWJGL 工作,并且一直在努力编写一个允许简单 3d 查看场景的程序。我遇到的主要问题是,每当我应用透视时,我的场景在 z 轴上被拉伸得非常非常远。不好

中间的正方形是用正交投影绘制的立方体(这里立方体的意思是“所有边都相等”)。从左下角到中心的形状也是一个立方体,但是用透视投影绘制的!

显然,这看起来不像一个立方体。这是我的代码(它有点像一堵墙,所以我把它拆了):

这些都在另一个类中,每秒被调用 30 次。

这是切换视角的功能。这大概就是问题所在。

这些函数用于转换。它们可能不相关,但我认为将它们包括在内是件好事。

我玩过 zNear 和 zFar,但到目前为止我尝试过的值都没有导致正确的投影。

具体问题是:为什么第二个立方体看起来如此可怕地扭曲,我能做些什么来纠正它?

0 投票
0 回答
179 浏览

c++ - 如何将透视变换应用于椭圆?

在矩阵中进行变换,可以应用于点,如何将相同的变换应用于椭圆?最通用的参数ellipse函数接受的是RotatedRect,它不像参数getPerspectiveTransform函数接受的那么通用。因此,如果我将矩形转换为某个四边形,我将无法在其上刻上椭圆。

如何实现?

0 投票
3 回答
22999 浏览

c++ - 如何从旋转角度计算 OpenCV 的透视变换?

我想从旋转角度和到对象的距离开始计算透视变换(warpPerspective 函数的矩阵)。

怎么做?

我在OE的某个地方找到了代码。示例程序如下:

但不幸的是,这种变换做了一些奇怪的事情

在此处输入图像描述

为什么?上图的另一半是什么时候alpha>0?以及如何围绕其他轴旋转?为什么dist工作如此奇怪?