问题标签 [fieldofview]

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 回答
304 浏览

actionscript-3 - 缩放对象以匹配视野

我在 Flash (as3) 中的专有全景查看器应用程序顶部覆盖了一些可点击的热点,我需要确保热点根据用户放大/缩小时不断变化的视野进行缩放,但我是不确定使用什么公式。

我分别设置了 90 和 25 的最大和最小视野。我得到了一些关于如何计算图标比例的建议:

来自全景软件的制造商:

这似乎对我不起作用。和:

让我靠近,但在某些时候,即使全景图继续缩放,热点也会停止缩放。我以为我可以做类似的事情:

但这也不完全正确。一切都变得太大或太小。

有任何想法吗?

0 投票
0 回答
151 浏览

three.js - 奇怪的粒子系统投影/相机方面问题

我想了解为什么粒子系统呈现的粒子在相机四处观察/移动时会改变它们的比例。虽然必须根据 fov 缩放粒子以适应 3d 场景是可以的,但是我注意到一些我无法解释或理解的奇怪行为,我愿意分享一个显示我的问题的示例代码:

http://jsfiddle.net/JFQCM/2/

在此示例中,画布设置为 640x640,这使得粒子的呈现看起来几乎没问题,我在这里没有看到关于我的问题的问题,但是..

http://jsfiddle.net/JFQCM/1/

将视口的高度切换为 h=360 px(用于表示不同的监视器纵横比)粒子现在开始在我的眼前跳舞 在我看来,引擎使用某种错误计算的纵横比,导致它们的视觉外观打破 3D 场景构图。他们只是不再和红色矩形一起玩了,你明白吗?我找不到更好的词来解释它。

我的问题的第二部分是问,我可以做些什么来反对这种行为,意味着保持粒子在“视觉上稳定”的大小,就像在前面的例子中一样?

然而这个问题在某些情况下可能看起来并不有趣,我碰巧在这些粒子上放置了一些巨大的涂抹纹理来构建一个云系统,但是当相机移动和旋转时它们总是改变它们的大小和位置,它们'在我 16:10 的显示器上,我永远不会像这样看起来很现实。

我还注意到,当我更改透视相机的 fov 设置时,粒子将无法正确缩放,导致它们看起来更远/更近,但无论我设置什么 fov,它们都保持相同的大小。还有一个问题,当相机非常接近一个粒子时,它就会开始以一种非常奇怪的方式移出屏幕。

我相信这可能是一个错误;还是我只是在这里遗漏了什么?

0 投票
5 回答
11355 浏览

ios - 如何计算FOV?

初始上下文

我正在开发一个基于位置的增强现实应用程序,我需要获取视野 [FOV](我只是在方向改变时更新值,所以我正在寻找一种可以在调用时获取该值的方法)

目标是制作与现实相关的“度数尺”,如下所示: 度数尺 - AR App

我已经在使用AVCaptureSession来显示相机流;和一条路径加上一个CAShapeLayer用来绘制标尺的路径。这工作得很好,但现在我必须使用视野值将我的元素放置在正确的位置(例如,选择 160° 和 170° 之间的正确空间!)。

实际上,我正在使用以下来源对这些值进行硬编码:https : //stackoverflow.com/a/3594424/3198096(特别感谢@hotpaw2!)但我不确定它们是否完全精确,这不是处理 iPhone 5 等. 我无法从官方来源(Apple!)获得值,但有一个链接显示我认为我需要的所有 iDevice 的值(4、4S、5、5S):AnandTech | 关于 iphone 5s 相机改进的一些想法

注意:经过个人测试和其他一些在线研究,我很确定这些值是不准确的!这也迫使我使用外部库来检查我使用哪种型号的 iPhone 来手动初始化我的 FOV ......而且我必须检查所有支持设备的值。

###我更喜欢“代码解决方案”!###

看完这篇文章:iPhone:实时视频色彩信息、焦距、光圈?,我正在尝试exif data从 AVCaptureStillImageOutput 中获取建议。之后我可以从exif数据中读取焦距,然后通过公式计算水平和垂直视野!(或者也许直接获得像这里显示的FOV:http ://www.brianklug.org/2011/11/a-quick-analysis-of-exif-data-from-apples-iphone-4s-camera-samples/ - - 注意:经过一定次数的更新,似乎我们无法直接从exif中获取视野!)


实际点

来源:http : //iphonedevsdk.com/forum/iphone-sdk-development/112225-camera-app-working-well-on-3gs-but-not-on-4s.html修改后的EXIF 数据不保存适当地

这是我正在使用的代码:

这是输出:

我想我拥有计算 FOV 所需的一切。但它们是正确的价值观吗?因为在阅读了很多不同的网站给出不同的焦距值之后,我有点困惑!另外我的 PixelDimensions 似乎是错误的!

通过http://en.wikipedia.org/wiki/Angle_of_view这是我计划使用的公式:

我的问题

我的方法和公式看起来是否正确,如果正确,我将哪些值传递给函数?


精度

  • 如果您对尺子如何匹配现实有任何建议,我认为我需要使用 FOV;我会接受答案!
  • 增强现实视图控制器中禁用了缩放,因此在初始化相机时我的视野是固定的,并且在用户旋转手机之前无法改变!

0 投票
1 回答
2868 浏览

camera - libGDX - 透视相机和视野

我无法理解 libGDX 中透视相机的视野(或者我的计算可能是错误的)。

我想画一个盒子(例如 800px 宽、480px 高和 20px 深)。该框位于 x 轴和 y 轴之间(换句话说:x 轴上的宽度和 y 轴上的高度)。现在我想站在 x 轴(相机位置)上的盒子后面,朝一个方向看,这样我就可以在屏幕右侧看到盒子了。我画了一些草图:

画盒子

x轴上的相机,看着盒子

框应出现在右侧

在最后一张草图上,盒子位于视野的右侧。

此外,盒子的高度必须完全适合屏幕。换句话说:盒子的顶部边缘必须在我的屏幕顶部,盒子的底部边缘必须在我的屏幕底部。以下是实现此目的的一些代码和计算:

为了适应屏幕中的盒子高度,我必须退后一步 SCREEN_HEIGHT/2,因为 x = SCREEN_HEIGHT/2 / tan(45°) = SCREEN_HEIGHT/2 / 1 = SCREEN_HEIGHT/2,这就是我将这个长度添加到 x 组件的原因在位置设置中。

代码代表草图 2,并给我正确的屏幕截图:

草图 2 的屏幕截图

为了实现草图 3,我必须将我的视野向左旋转大约 45°。但在这方面我必须退后一点,因为视野的边长于中心线。我做了两张手绘草图:

视野旋转

其中 h = SCREEN_HEIGHT。首先,我必须计算 x。x = h/2 / sin(45°) = h/sqrt(2)。现在我必须后退一段 x 并朝一个新的方向看(从框向左 45°)。为了计算我要查看的点,我计算了这个草图上的长度 y:

计算 y

y = sin(45°) * h/2 = h * sqrt(2)/4。因此,重点是例如 (SCREEN_WIDTH + (xy), SCREEN_HEIGHT/2, y)。现在我更改代码中的位置和观察点:

我得到这个屏幕:

应该代表草图 3 的屏幕截图

但是盒子不在最右边:(

所以现在的问题是:出了什么问题?是我对视野的看法错误还是我的计算错误?

此致!

0 投票
2 回答
1126 浏览

ios - 计算特定对象的视场角

我计算了视野

但它是 iPhone 的视野。

我需要使用视野计算对象的宽度。我如何计算 1) 特定对象的视野或 2) 使用相机的对象宽度

我在图片中有以下标记:

角度 AOB = FOV 我有

A'O 和 B'O 我已经计算过了。

需要计算角度 A'OB' 并最终使用它来计算 A'B'(对象的宽度)

在此处输入图像描述

0 投票
1 回答
128 浏览

java - 完全封装对象的透视矩阵

我想生成一个投影矩阵,它将从任意相机渲染一个对象。我已经设法设置了一个 viewMatrix,它将从任意眼睛位置查看对象,但我在设置投影矩阵时遇到了困难。

假设一个以 (x,y,z) 为中心且距离中心最远的点为 r 的对象对于任何任意方向都可以完全封闭在一个半径为 r 且原点为 (x,y,z) 的球体中,我计算了我的视角矩阵如下:

在我的例子中:

  • vec 是从相机到物体的向量
  • 该对象是一个立方体,其最远顶点为 (0.5, 0.5, 0.5),给出 sqrt(0.75) 的 ar

据我所知,几何和三角应该是正确的,但是使用以下片段着色器渲染坐标:

如图所示, FOV太窄,近平面和远平面也太窄。

我怎样才能解决这个问题?

0 投票
1 回答
901 浏览

three.js - ThreeJS:在正交相机中计算网格的 FOV

所以我已经尝试了几个小时来解决这个问题,但无法让它工作。

我创建了一个网格并在正交视图中从上方查看。

网格的尺寸是:400 * 500 高度(需要吗?)是 300

它位于点 0, 0, 0

相机位于 0, 5000, 0 上 正面朝下 0, 0, 0

现在我唯一需要知道的是如何计算 fov

这样相机就可以从上方看到整个网格 + 每侧 100 个单位,因此用户可以看到网格的边界位置。

试过这个,要么我做错了,要么它不适用于 Ortho, https://github.com/mrdoob/three.js/issues/1239

谢谢 :)

更新:

我尝试了一种我认为有意义的新方法,但不...

http://forums.cgsociety.org/archive/index.php/t-725538.html

给我的学位与应有的水平相去甚远。

0 投票
2 回答
6213 浏览

javascript - three.js - 检查物体是否仍在相机的视野中

使用 2d 画布时,如果您想检查某些内容是否不再“在屏幕上”,您只需执行以下操作:

在 three.js 场景中,我将如何检查某些东西是否仍然“在屏幕上”(从相机的角度来看)?

0 投票
1 回答
605 浏览

raytracing - 如何在光线追踪器(比如说 PBRT)中计算渲染图像的焦距?


实际上,我已经在 PBRT 中渲染了 3 个具有不同光线方向的球体的输入图像。
作为该过程的下一步,我将计算该球体的表面法线,因此我需要将焦距值放入我的公式中。
我现在所要做的就是在我的 PBRT 输入文件中拥有视野 (FOV) 值,即 45。
整个图像的尺寸为 32*32,图像中球体的尺寸为 26*26。
如何使用此信息计算焦距的确切数量?

0 投票
1 回答
11344 浏览

camera - 水平、垂直和对角视场之间的关系

这些值之间是否存在数学关系?如果我知道 hFOV 和 vFOV,我是否可以在不涉及焦距等其他值的情况下计算对角线 FOV?

我的第一个想法是使用勾股定理,但也许它是错误的。