Algorithm 什么是注视函数的算法?
我的相机仅通过设置以下值进行控制:Algorithm 什么是注视函数的算法?,algorithm,math,3d,camera,geometry,Algorithm,Math,3d,Camera,Geometry,我的相机仅通过设置以下值进行控制: [[position_x, position_y, position_z], [focal_point_x, focal_point_y, focal_point_z], [view_up_x, view_up_y, view_up_z]] 我有一个我想看的点,在那个点上是正常的,还有我想看的距离 如何设置这样的相机模型来观察一个点(具有法向量和从何处观察的距离)?我不确定是否正确,但应该是这样的: C = P + (d/len(N)) * N k =
[[position_x, position_y, position_z],
[focal_point_x, focal_point_y, focal_point_z],
[view_up_x, view_up_y, view_up_z]]
我有一个我想看的点,在那个点上是正常的,还有我想看的距离
如何设置这样的相机模型来观察一个点(具有法向量和从何处观察的距离)?我不确定是否正确,但应该是这样的:
C = P + (d/len(N)) * N
k = [0 0 1]
V = -N;
T = cross(V, k)
U = cross(T, V)
F = C + (z*/len(V)) * V
其中,C
:摄像机位置(品红色点)P
:目标位置(红点)N
:法向量(黑向量)d
:所需距离len()
:返回向量长度的函数k
:Z轴单位矢量(灰色矢量)V
:视图方向(红色向量)T
:与X-Y平面平行的临时向量(蓝色向量)cross()
:返回两个向量的叉积的函数U
:摄像机上方向向量(绿色向量)F
:相机焦点(洋红色x)z
:缩放因子(正标量,即焦点到相机位置的距离)
需要记住的几点:
- 这将始终保持上方向向量的z分量为正。根据
函数的实现,可能需要交换参数李>cross()
实际上形成了一个三维局部坐标系,其中[C,V,U,T]
是其原点,其余是循环满足右手法则的[unit]轴向量C
- 当
与N
平行时,不能使用此选项。在这种情况下,上方向向量可以是平行于X-Y平面的任意向量k
- 您应该决定的其余参数是控制缩放的
。焦点的位置取决于目标对象的大小和所需的缩放量z
法线是什么意思?@MBo:我尝试查看网格上的一个点,因此在该点处有一个法线来帮助我查看该网格-查看它