法线,切线和双法线向量是什么,如何使用它们?


47

我想了解以下信息:

  • 这些是什么?
  • 游戏开发中的用法示例(使用区域)

关于以下向量类型:

  • Normal
  • Tangent
  • Binormal

一个简单的以游戏开发为中心的解释就足够了。


1
您问的问题太多了。最好只是阅读一下向量的工作原理。从头开始。沿途还修补三角函数。
2013年

3
我认为这可能要问的很多,但是另一方面,将这些信息汇总在一个问题下会很好。这也是我特意要求简单解释的原因。
Jaanus Varus

Answers:


43

一般而言,法线向量表示直接从表面指向“方向”的方向,这表示法线向量与(在平面情况下)或与(在平面上)相切的任何向量正交(与90度角成直角)。在非平坦表面的情况下)在给定点的表面。

切向量通常被认为是一个存在于表面平面内(对于平面而言)或与曲面上的参考点相切的向量(即,如果一个平面是从参考点以相同法线构造的) ,切线向量将与该平面共面)。

Binormal向量的概念稍微复杂一些。在计算机图形学中,它通常指的是Bitangent向量(此处为参考),实际上是表面的“其他”切线向量,该向量与法线向量和所选的切线向量均正交。正常,切线,双切线

至于计算方式,这取决于曲面的复杂程度以及您希望法线的精确度(在某些情况下,例如使用平滑着色器时,更希望为近似曲面计算法线,当表面的实际信息不存在),但也有给出了几个通用的公式在这里

在它们发生在哪里看,答案是无处不在。法线向量用于在3D空间中定位相机和对象,确定物理计算中的轨迹,反射和角度,将皮肤和纹理映射到3D模型,确定AI编程中的目标轨迹偏移,以向着色器提示如何相对于灯光,照相机和其他对象等等的表面上的光照,阴影和色点。它们可能是3D环境中最有用的信息之一,甚至在2D中也非常方便。


2
该死的,我应该添加一张照片:p
RobCurr

感谢您的详尽解释!标记为答案。
Jaanus Varus

2
这篇文章可能会有助于理解为什么平方补丁假设是无效的,以及为什么每个人关于切线切线的所有说法都是虚假的。它概述了一个人应该使用的正确数学,但可悲的是,我没有能力撰写正确的答案。
拉尔斯·维克隆德

切线向量和双法线向量是等效的。它们是属于同一事物的名称,它仅取决于您使用“名称”的“心理观点”。
Nikos

15

法线向量通常用于照明计算。它是一个矢量,该矢量应该垂直于由网格的顶点近似的表面。在每个顶点位置都定义了法线,但是可以根据要在该顶点处对光进行光照的方式或对着色器中的光计算要执行的操作来进行不同的计算。

切线和Bi法线向量是彼此垂直的向量,法线向量实质上是描述u,v纹理坐标相对于要渲染的表面的方向的向量。通常,它们可以与法线贴图一起使用,从而使您可以为模型创建次表面照明细节(凹凸)。

显然,还有其他利用这些向量的方法,而我刚刚描述了它们的平均用法。有关更多技术信息,建议您选择一本有关计算机图形学的书,或者在互联网上浏览一些文章。有很多关于此的信息。


4
+1-不过,下次;添加图片。
Pieter Geerkens

9

切线和双法线之间的差异在表面上不太明显,但这并不令人惊讶-双法线最初不是为曲面定义的,而是为曲线定义的,该概念更有意义(以及它实际存在的位置)作为“法线”,因为它与运动方向正交,因此得名。更具体地说,给定一个空间曲线,形式为p = V(t)=(V x(t),V y(t),V z(t)),则切线-是指向向量的切线运动方向-由T u = dp / dt =(dV x / dt,dV z / dt,dV z/ dt)。(我在这里使用下标来区分“未归一化”,因为这里没有MathJax。)然后,沿曲线的(瞬时)速度仅为s = | T u |,即切向量的长度,并且“归一化”正切向量就是T = T u / s。

然后曲线的法线向量是归一化切线向量随时间的导数,N u = dT / dt;在此使用归一化切线的原因是为了防止沿曲线的速度偏斜法线向量-您可以证明,使用此定义,我们总是TN u =0。请注意,N u不一定是单位向量,不超过T u;实际上,其大小k = | N u | 是曲线在给定点的(瞬时)曲率,而点p + N u是所谓的闭合圆的中心(在给定点)。然后归一化的法线就是N = N u/ k,并且切线B是叉积B = TxN; 由于T和N都是单位向量,并且彼此正交,因此B也是单位向量,并且(T,N,B)是正交帧。

请注意,根据此定义,曲线的“双法线”更接近于我们认为的曲面法线(即曲线的“局部”平面的法线),曲线的法线更接近于我们认为是表面的咬切。

(可悲的是,这张图片并没有真正做到概念正义,但这是我在网上可以找到的最好的图片,而且我不能轻易建立自己的图片...)

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.