【问题标题】:order of vector cross-product for a CCW triangleCCW 三角形的向量叉积的阶
【发布时间】:2014-03-04 12:17:22
【问题描述】:

我需要为准备传递给 opengl 链的三角形计算法线向量。它具有以逆时针顺序枚举的顶点,这是 opengl 的默认值。将它们表示为ABC,并将C-B 表示为u,将B-A 表示为v

我应该以什么顺序交叉乘积向量以获得与内部opengl程序计算的法线同向的法线向量? v × uu × v?

我发现了很多关于面剔除和顶点排序的主题,但不是关于取决于顶点顺序以及坐标系方向的三角形计算法线。

【问题讨论】:

  • 如果你只关心共线性那没关系,因为v x u = -(u x v)

标签: opengl normals


【解决方案1】:

使用右手定则,假设您的三角形按 CCW 顺序排列为 A、B、C。那么你需要

Normal = Cross(B-A, C-A);

你设置 u,v 和不一致的方式,两个向量应该有相同的尾巴,这样更一致。

如果你想按照你设置的方式使用 u,v,那就是 v x u 使用 right hand rule

【讨论】:

  • 为什么向量应该有相同的尾巴? C-A = -(A-C) 和循环通过 A、B、C 我们可以用 uv 表示正常
  • 这种方式更加一致,不过你可以使用右手定则。
  • @ayvango 如果有任何不清楚的地方,我可以提供更多信息。请随时询问。
  • 一切都清楚了。坐标系是右向的,这个完全理解
猜你喜欢
  • 2021-12-21
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 2015-10-15
相关资源
最近更新 更多