Type: concept
Confidence: 0.90
Created: 2026-04-16
Updated: 2026-04-16
Tags: graphicsgeometryrendering3dwinding-order游戏开发

三角形绕序与面朝向

概述

三角形的顶点定义顺序(绕序)决定哪一面是"正面",进而影响背面剔除和光照法线方向。错误绕序会导致面不可见或光照颠倒。

关键内容

规则

从观察者(相机)方向看,顶点排列为逆时针(CCW, Counter-Clockwise)时,该面为正面(Front Face);顺时针(CW)为背面,默认被剔除。

与法线的关系

程序化几何中法线须手动指定并指向外部:

-- 法线 = 归一化位置向量(球面适用)
local nx, ny, nz = x / radius, y / radius, z / radius
geom:DefineNormal(Vector3(nx, ny, nz))

法线方向错误会导致漫反射光照出错(暗面朝外、亮面朝内)。

半球上下半部分的绕序差异

上半球与下半球面朝向相反,三角形顶点顺序需对调:

if isUpperHalf then
    geom:DefineTriangle(current, below, next)   -- CCW from outside
else
    geom:DefineTriangle(current, next, below)   -- 反转保证下半球面朝外
end

双面显示

若需内外均可见(如薄片、透明截面),在材质 XML 中设置:

<cull value="none"/>

来源

相关