Skip to content

三角形绕序和正方向

本文介绍三角形顶点绕序和正方向之间的关系,为什么 d3d api 默认使用顺时针绕序。

如何判定三角形正方向

假设三角形的三个顶点依次为 A、B、C,可以通过叉乘计算三角形的法向量:\(\vec{n}=(B-A)\times(C-A)\),也就是 A->B、A->C 两个向量的叉乘结果,法向量指向的方向就是三角形的正方向。

图像渲染中对正面的定义

在图形渲染中,我们把朝向观察者的三角形称为正面,因此,三角形法向量指向屏幕外时,三角形是正面。

坐标系手性影响三角形正方向的判定

坐标系的手性和叉积的手性是一致的。对于右手坐标系,A->B->C 逆时针绕序时,法向量指向屏幕外;对于左手坐标系,A->B->C 顺时针绕序时,法向量指向屏幕外。

d3d api 默认使用左手坐标系,因此,当三角形顶点按顺时针绕序时,三角形法线朝向屏幕外,此时三角形为正方向。