问题标签 [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.
c++ - 在 glOrtho 和 gluPerspective 之间切换
我正在使用一个小的 OpenGL - GLUT 程序(我完全是菜鸟),并且我在 gluPerspective 和 glOrtho 之间切换时遇到了很多问题(例如“p”)。
我拍摄了一些屏幕截图来说明问题......使用gluPerspective和glOrtho
这是我的代码...
假设我应该在 glOrtho 视图中看到绿色的“地板”……我做错了什么?
附言。模型对象是教师提供的 .obj 文件。
编辑:
最后,glOrtho 可以正常工作。但是现在......我还有另一个问题,我怎样才能最大化窗口并且(在 glOrtho 模式下)图像不会变形?
在 changeSize() 函数中......当我使用 gluPerspective 它工作正常,但不能使用 glOrtho!
opengl - gluPerspective 参数——它们是什么意思?
我想知道gluPerspective
参数。
在我看到的所有示例中,我fovy
都设置为 45-60 度左右,我尝试将其设置为不同的值,但对象只是消失了,对此有何解释?
该aspect
值应该始终是比率?为什么要改变它?
zNear, zFar
- 再一次,通常的值是 10 和 500+ 它反映了什么?
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 的前面。关于如何做的任何建议解决这个问题将不胜感激。我试过搜索谷歌,但找不到任何有帮助的东西。
android - Android 中的透视投影在增强现实应用程序中
目前我正在编写一个增强现实应用程序,但在将对象显示在屏幕上时遇到了一些问题。令我非常沮丧的是,我无法将 gps 点转换为我的 android 设备上的相应屏幕点。我已经阅读了很多关于 stackoverflow 的文章和许多其他帖子(我已经问过类似的问题),但我仍然需要你的帮助。
我做了维基百科中解释的透视投影。
我与透视投影的结果有什么关系才能获得最终的屏幕点?
opengl-es - 如何计算观察点的 Z 位置?
我画了一个矩形并将其与图像的纹理绑定。然后我做了一些旋转、过渡和缩放。它与正交投影完美配合。
现在我正在尝试透视投影。
例如,我的图像等于 200*300 像素。我希望我的矩形在 iPad 屏幕上不超过 200*300 点。所以我需要正确计算eyeZ
如何计算eyeZ?
android-camera - 透视投影中的笛卡尔坐标系
我仍在为我的增强现实应用程序实现透视投影。我已经问过一些关于视口计算和其他相机东西的问题,这在这个线程中的 Aldream 中有解释
但是,目前我没有得到任何有用的价值,我认为这取决于我对笛卡尔坐标空间的计算。
我有一些不同的方法可以将纬度、经度和高度转换为笛卡尔坐标空间,但它们似乎都不能正常工作。目前我正在使用 ECEF(以地球为中心),但我也尝试了不同的计算,例如将半正弦公式和三角函数相结合(从两点之间的距离和方位角计算 x 和 y)。
所以我的问题是:
笛卡尔坐标空间如何影响我的透视投影?我必须在哪里“补偿”我的单位?(例如,当我使用米或厘米时)?
假设我使用的是 ECEF,而不是获得以米为单位的值,例如,我的相机位于(0,0,2m 高度),而我的点位于(10,10,0)。现在我可以轻松地使用维基百科上提到的功能,然后使用我的另一个线程中解释的 dx、dy、dz 的转换(如上所述)。我仍然没有得到:这个投影如何“知道”我在坐标系中的单位是什么?我认为这是我目前正在做的错误。我不处理坐标系的单位,因此无法从我的投影中获得任何好的价值。
当我使用以厘米为单位的坐标系时,我的透视投影的所有值都在增加。我必须在哪里“解决”这个单位问题?我是否必须将我的相机宽度和相机高度从像素“转换”为米?我必须将坐标系转换为像素吗?应该使用哪个坐标系来处理这种情况?我希望你能理解我的问题。
编辑:我自己解决了。 我已经将我的坐标系从 ecef 更改为自己的系统(使用 hasrsine 和轴承,然后计算 x、y、z),现在我得到了很好的值!:)
css - CSS3 透视图:可视化视图金字塔
通过阅读这篇文章:
http ://www.eleqtriq.com/2010/05/understanding-css-3d-transforms/
我可以理解如何将perspective
属性可视化为在 3d 空间中创建金字塔。
我不太清楚的是那句话,“立方体的侧面被扭曲并投影到金字塔上”,然后“视角越高,金字塔越陡,所以变换后的物体大小会更接近它的未转换的大小。”
该图似乎显示了如果从右侧照射光会发生什么,并且立方体右侧的正方形在金字塔上投下扭曲的阴影。但由于这是在金字塔的边缘——在我们视野的边缘,这实际上有什么用处?
而且我知道更高的视角会创建一个更陡峭的金字塔 - 但是为什么这会创建更少扭曲的对象?
任何人都可以澄清这些观点吗?谢谢你。
java - OpenGL 透视图在 z 轴上的场景扭曲程度远超预期
我在 LWJGL 工作,并且一直在努力编写一个允许简单 3d 查看场景的程序。我遇到的主要问题是,每当我应用透视时,我的场景在 z 轴上被拉伸得非常非常远。
中间的正方形是用正交投影绘制的立方体(这里立方体的意思是“所有边都相等”)。从左下角到中心的形状也是一个立方体,但是用透视投影绘制的!
显然,这看起来不像一个立方体。这是我的代码(它有点像一堵墙,所以我把它拆了):
这些都在另一个类中,每秒被调用 30 次。
这是切换视角的功能。这大概就是问题所在。
这些函数用于转换。它们可能不相关,但我认为将它们包括在内是件好事。
我玩过 zNear 和 zFar,但到目前为止我尝试过的值都没有导致正确的投影。
具体问题是:为什么第二个立方体看起来如此可怕地扭曲,我能做些什么来纠正它?
c++ - 如何将透视变换应用于椭圆?
在矩阵中进行变换,可以应用于点,如何将相同的变换应用于椭圆?最通用的参数ellipse
函数接受的是RotatedRect
,它不像参数getPerspectiveTransform
函数接受的那么通用。因此,如果我将矩形转换为某个四边形,我将无法在其上刻上椭圆。
如何实现?
c++ - 如何从旋转角度计算 OpenCV 的透视变换?
我想从旋转角度和到对象的距离开始计算透视变换(warpPerspective 函数的矩阵)。
怎么做?
我在OE的某个地方找到了代码。示例程序如下:
但不幸的是,这种变换做了一些奇怪的事情
为什么?上图的另一半是什么时候alpha>0
?以及如何围绕其他轴旋转?为什么dist
工作如此奇怪?