三角形绕序与面朝向
概述
三角形的顶点定义顺序(绕序)决定哪一面是"正面",进而影响背面剔除和光照法线方向。错误绕序会导致面不可见或光照颠倒。
关键内容
规则
从观察者(相机)方向看,顶点排列为逆时针(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"/>
来源
- raw/articles/personal/ai-dev-kit/coding-insights/Graphics-Rendering/custom-geometry-for-missing-primitives.md — 绕序规则与半球实例(2025-12-23)
相关
- CustomGeometry程序化几何体 — relates_to,绕序在程序化几何中最为关键
- PBR材质系统 — relates_to,双面剔除设置在材质层控制