Graphics 需要有关Direct 3D的注视功能的帮助吗

Graphics 需要有关Direct 3D的注视功能的帮助吗,graphics,vector,matrix,direct3d,3d,Graphics,Vector,Matrix,Direct3d,3d,我需要一些关于Direct3D的概念性帮助。。。。作用在他们的官方文件中,他们说发生的计算可以总结如下: zaxis=正常眼 xaxis=法线交叉,zaxis yaxis=交叉Zaxis,xaxis xaxis.xyaxis.xzaxis.x0 xaxis.y yaxis.y zaxis.y 0 xaxis.zyaxis.zzaxis.z0 -点X轴,眼-点X轴,眼-点X轴,眼l 现在我不明白的是,在前两行中使用“normal”函数做了什么?如何用两个向量计算法线?!飞机的法线不是计算出来的吗

我需要一些关于Direct3D的概念性帮助。。。。作用在他们的官方文件中,他们说发生的计算可以总结如下:

zaxis=正常眼 xaxis=法线交叉,zaxis yaxis=交叉Zaxis,xaxis

xaxis.xyaxis.xzaxis.x0 xaxis.y yaxis.y zaxis.y 0 xaxis.zyaxis.zzaxis.z0 -点X轴,眼-点X轴,眼-点X轴,眼l

现在我不明白的是,在前两行中使用“normal”函数做了什么?如何用两个向量计算法线?!飞机的法线不是计算出来的吗

在第二行中,normal只处理一个向量,因为crossUp,zaxis将返回一个3D向量

所以基本上我需要知道在前两个方程中使用法线意味着什么


我需要这个来练习自己手动进行计算。

法线函数使向量正常化

向量有一个长度单位。其定义如下:

length = sqrtf( (x * x) + (y * y) + (z * z) );
如果你有一个定义为10,0,0的向量,它的长度为

length = sqrtf( (10 * 10) + (0 * 0) + (0 * 0) );
这是一个很好的简单计算,返回长度/大小为10

现在法向量的大小为1。因此,你可以很容易地看到,通过将向量的每个元素除以大小,你将得到长度/大小为1

因此,正常函数只是:

const float length = sqrtf( (vx*vx) + (vy*vy) + (vz*vz) );
vx                 = vx / length;
vy                 = vy / length;
vz                 = vz / length;