发布网友 发布时间:2022-04-25 12:49
共2个回答
热心网友 时间:2024-04-01 03:11
人眼到视平面的距离视固定的(视距),视平面左右两个边缘到人眼的连线得到的角度是视角。
一般我们设置视角来计算视距。
为了方便,我们一般取人眼位置为 z 轴原点,这样,物体距离眼睛的距离(物距)还有物体在视平面上投影的长度(像长)以及 物体的实际长度(物长)的关系就是这样:
像长:像距 = 物长:物距
即 像长 = 物长 * 像距 / 物距 (1)
假设我们的视角宽度用x方向(一般哺乳类都是如此,因为两眼是x方向排列的),那么有这样的关系:
(视平面宽度/2) /像距 = tan(视角/2)
于是:
像距 = (2/视平面宽度) * tan(视角/2) (2)
(2) 带入 (1)
就可以得到:
像长 = 物长 * (2/视平面宽度) * tan(视角/2) / 物距
这样我们就可以知道,当视角已知的时候,一个高为 h 的物体在视平面上的投影是多高了。
这是正投影的做法,但是实际上人类的眼睛看到的世界不是这样的。把视平面当成是一个球面,每一点的计算公式仍然和上面的一样,这样计算出来的结果才能更准确地反映宽视角地情形,一般人类地视角是120度的,但是用正投影的话,视角一般只能设置到75度左右。
这就是为什么我们玩 CS 的时候总是觉得视角有点窄,看不到旁边的人的缘故缘故。没有余光对人类来说是很不方便的。
在手机游戏里面广泛使用的视线跟踪算法,用的就是第二种算法。
远的东西看起来小是因为物距比较大,像比较小,视角是视力范围的衡量标准
热心网友 时间:2024-04-01 03:11
视角距 (即两个天体在观测者眼里所张的角度