问题标签 [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 回答
410 浏览

opengl-es - OpenGL ES 中的相机

我有一个场景如下:

一个 3D 盒子,其底部以原点为中心,四个矩形围绕盒子底部。我们可以把它想象成一座四面都有街道的建筑。我想得到投影视图模型矩阵。我已经根据相机设置准备了投影和视图矩阵,但不确定模型矩阵。场景中的每个对象都会有不同的模型矩阵还是整个场景只有一个模型矩阵?

立方体和矩形的模型矩阵是什么?

我希望在建筑物四个侧面的街道上移动相机。

0 投票
2 回答
5415 浏览

wpf - WPF 3D:适合整个图像以使用 PerspectiveCamera 查看

我有以下图像,我需要在 a 中显示Viewport3D

在此处输入图像描述

图像纹理以 (0,0) 为中心,其角坐标为 (-1,-1,0), (1,-1,0),(-1,1,0),(1,1,0 )。

由于我使用PerspectiveCamera的是固定视野,因此我必须计算足够的距离才能将整个图像放入视野:

在此处输入图像描述

图像用蓝线表示,w是图像宽度(w=2)。

相机位置为 (0,0,d),因此形成了一个三角形:

现在我将 3D 模型的 XAML 代码和用于计算相机距离的代码组合在一起:

XAML

代码隐藏

但是,Viewport3D不显示整个图像:

在此处输入图像描述

还有其他一些因素在起作用吗?我不想在我的计算中使用任何调整或捏造因素。

请注意,调整窗口大小不会影响水平视野范围,因为这是由相机 FOV 及其距离决定的,因此问题与控件大小无关 - 它与 WPF 如何将点从 3D 投影到二维。

0 投票
0 回答
113 浏览

gps - 为什么我必须在透视投影中使用笛卡尔坐标?

在编写的任何教程中,笛卡尔坐标对于透视投影都是必需的。

假设我在球坐标(经度、纬度、高度)中有相机和物体的位置。为什么我必须将它们转换为笛卡尔坐标?是否可以用我的球坐标计算投影?

谢谢

0 投票
1 回答
1060 浏览

opengl - OpenGL 着色器 - 相机转换应该发生在 GPU 还是 CPU 上?

所以目前我正在做的是在将我的元素加载到 VBO 之前创建一个新矩阵并将它们添加到其中。我这样做是为了可以随心所欲地使用矩阵。所以我所做的只是将相机位置添加到矩阵中的坐标上。

注意:对象的实际位置保存在其他地方,矩阵是一个平移阶段。

现在,这可行,但我不确定它是否正确,或者我是否应该在着色器中而不是在 CPU 中转换为相机位置。

所以这是我的问题:

相机转换应该发生在 GPU 还是 CPU 上?

0 投票
1 回答
247 浏览

delphi - 如何移动世界视图而不是相机视图

我有一个带有相机的 viewport3d 和里面的一些块。当前使用键盘向上/向下/向左/向右/旋转等移动相机。

但我想移动世界观而不是相机。因此,当用户按下 W 键向上移动时,它不仅仅是将相机移动到 +x 位置。因为用户可能处于 20 度视角。

0 投票
1 回答
1038 浏览

css - Three.js - 使 CSS3D 渲染的 DIV 全屏显示

在我对 three.js 库的实验中,我设法设置了两个不同的场景(一个是画布渲染的,一个是 css3d 渲染的),用相同的透视相机显示。

注意:我使用的是 IE 10(没办法解决这个问题)。

虽然画布渲染场景的对象被大量旋转和移动,但 css3d-scene 仅包含单个 DIV 元素,其中包含包含图像的子 DIV。无论窗口大小如何,css3d 渲染的 DIV 都应该(几乎)全屏显示。由于使用 DIV 的 z 轴坐标不会使其看起来更大,因此缩放可以使其更大。但是,对于不同的窗口大小,不同的缩放因子将提供最佳结果。

但是,我发现我也可以操纵原始 div 的高度和宽度来使渲染的对象变大或变小。由于可以像 div 一样简单地操作其中的图像,因此我更喜欢这种方法而不是缩放。

但我缺乏计算正确像素数量的能力,以便 DIV 在场景中全屏呈现。

这是我到目前为止得到的...

有人可以帮我计算“元素”的正确宽度和高度值,使其在上述设置中看起来全屏吗?

非常感谢您,

奥利弗

0 投票
0 回答
194 浏览

3d - Three.js 幻觉:如何重新缩放和重新定位对象

重复发布 什么公式指向已知起点、终点和距离

我想用物体的透视图创建一个眼睛错觉。我想展示物体的透视图。以下链接中有一个简单的示例。

http://jsfiddle.net/omerfarukz/32TLZ/6/

中心对象比其他对象更小更近,但在模拟结束时,它看起来与其他对象大小相同。

我手动计算了中心对象的大小和 z 坐标。我的问题是:如何以编程方式计算中心对象的大小和z坐标?

0 投票
1 回答
4726 浏览

opencv - 使用单个静态相机从运动物体获取深度图像

我需要从移动物体的单个静态相机拍摄的图像序列中重建深度图。

据我了解,我可以使用截距定理使用立体相机计算在两个图像中找到的点的深度。有没有办法只使用单个相机和来自多个图像的匹配点来计算深度信息?

欢迎任何意见和替代解决方案。在此先感谢您的帮助!

0 投票
2 回答
4827 浏览

libgdx - 如何像图片一样在游戏中设置透视相机?(引擎 libgdx)

我是 3D 游戏的新手?我正在使用 Libgdx。如何计算像 Tetromino Revolution 游戏这样的透视相机的参数?请给我任何想法。

见图片:http ://www.terminalstudio.com/screens/tetrisrev/big1.jpg

0 投票
1 回答
966 浏览

opencv - 寻找两个平面之间的透视变换

我有一个从多个图像创建的点云。我从中提取了一个平面,它也在 3d 坐标系中,这意味着我有那个平面的平面方程。但在所有原始图像中,平面都没有正交视图,即平面不平行于观察平面。但是,由于我有平面的 3d 云,我想将它投影到 XY 平面上,即我想让平面平行于观察平面并从中创建图像。在 C++/OpenCV 中执行它的算法或函数是什么?