通过正方体体看三维模型设计架构
一、基础拓扑分析
1.1 原始顶点分布(未优化)
理论构造:
- 每个立方体面由4个独立顶点构成四边形
- 6个面 × 4顶点 = 24个原始顶点
- 每个顶点包含:
struct Vertex { Vector3 position; Vector3 normal; Vector2 uv; // 其他顶点属性... }
可视化拓扑:
graph TD
F1[Front Face] --> V1((0,0,0))
F1 --> V2((1,0,0))
F1 --> V3((1,1,0))
F1 --> V4((0,1,0))
B1[Back Face] --> V5((0,0,1))
B1 --> V6((1,0,1))
B1 --> V7((1,1,1))
B1 --> V8((0,1,1))
// 其他面类似分布...
1.2 三角形分解
三角化规则:
- 每个四边形面分解为2个三角形
- 6个面 × 2三角形 = 12个三角形
- 索引缓冲结构示例:
// 前面三角形索引 0,1,2, 2,3,0 // 后面三角形索引 4,5,6, 6,7,4 // 其他面类似...
二、顶点合并机制
2.1 顶点合并条件
合并条件 | 技术原理 |
---|---|
几何位置相同 | 必须满足 float3 坐标完全一致(考虑浮点精度误差) |
法线方向一致 | 硬边处理时需要保持原始法线,平滑着色时可合并 |
UV坐标匹配 | 同一纹理映射区域的顶点才能合并 |
切线空间一致 | 当使用法线贴图时,切线空间计算需要保持一致 |
合并流程: