多边形处理
转化隐患
顶点数暴涨

2. 自动三角化导致的“拉丝”或“闪烁”
这种边缘有点类似跑道或复杂轮廓的巨大 N-gon(多边形),如果里面没有任何内部连线,直接扔给 glb 导出器,导出器会自动去连线三角化。
-
极易产生极其狭长的“畸形三角形”(拉丝)。自动三角化产生的极端狭长三角形,在三维领域被称为 “退化三角形”
-
如果这个面稍微有一点点不平整(非绝对共面),在 Babylon.js 里移动视角时,会发生严重的画面闪烁(Z-Fighting)或黑斑暗影。根本原因就是在分uv的地方,这种像素周围的黑色背景(Padding 边缘色)会因为插值错误渗透进模型里

修复方法:
又要性能,又要不出现狭长三角形
1.先切割连成“井”

2.然后专业优化

如果模型顶点本身带着类似 GIS / 总图坐标的大数值
这类模型在实时渲染里有两个潜在问题:
-
浮点精度下降
GPU 用 32 位浮点处理顶点。坐标越大,小数精度越差。比如百万级坐标下,很细的边、薄板、贴近的面,可能会出现轻微抖动、闪烁、接缝、Z fighting。 -
深度精度更敏感
如果场景范围、相机远近裁剪面很大,两个很近的表面会更容易深度判断不稳定。
这不是说“模型真实尺寸不能大”。真实尺寸大没问题,比如楼长 100 米、城市 2 公里都可以。问题是“模型离原点特别远”或者“顶点数据里塞了百万级坐标”。
最佳做法是:
- 单体导出时,尽量把模型移动到局部原点附近。
- 保留真实坐标可以放在外部元数据里,或者用父节点/场景定位管理。
- 如果是城市/GIS 场景,要做“相机附近原点重定位”或分块加载,不要所有 mesh 顶点都直接带百万级坐标。
- Blender 导 GLB 前,如果只是单体展示,建议应用/清理掉这种大坐标偏移,让几何本身在 (0,0,0) 附近。
操作核心 优化面,优化uv,优化光照uv
要先零件专业优化,在合并
对,面数这里要分清“能不能自动减”和“该不该自动减”。
你这个楼的白色外框是大量圆角、长条、重复楼层边框。4.4 万三角形在 PC 上不算大,但移动端如果还加 HDR、阴影、SSAO、透明、草地大贴图、多模型,就会吃紧。目标应该不是盲目 Decimate,而是分层优化。
最推荐方案
-
先清理重复和不可见面
- 每层边框之间、墙体内部、楼板压住的背面,如果永远看不到,直接删。
- 这是最安全的优化,不改变外观。
- 对建筑模型非常有效,因为很多面是建模过程留下的内侧面、重叠面、封盖面。
-
圆角边框用更低段数重建
- 你这个白色框的成本主要在圆角和弯曲护栏。
- 如果 bevel 或曲线分辨率太高,移动端没必要。
- 比如圆角截面从 16/24 段降到 6/8 段,视觉基本不变,面数能降很多。
- 这个比 Decimate 更可控。
-
重复楼层做实例化
- 多层白色边框如果形体重复或接近重复,不要每层都是独立 mesh。
- 在 Blender 里用 linked duplicate / geometry nodes 实例,导出时尽量保留实例。
- WebGL 里同几何多实例,GPU 成本比多份独立网格低很多。
-
按距离做 LOD
- 近距离用完整模型。
- 中距离用简化白边。
- 远距离用烘焙贴图的低模盒体。
- 对移动端最实际,因为用户多数时候不会贴脸看圆角边框。
-
烘焙细节到贴图
- 楼板格子、细小凹凸、轻微接缝,不要全靠几何。
- 用 normal map / AO / lightmap 表现。
- 几何只保留大轮廓。
不太建议直接做的
- 直接
Decimate整栋楼:容易破坏圆角、边线、UV、法线,建筑会脏。 - 自动合并所有东西:会影响材质选择、烘焙、遮挡剔除。
- 把所有圆角都保留高精度:移动端不值得。
针对你这个模型的具体建议
白色“哑光”外框这类物体,建议手动回 Blender 检查:
- 圆角 bevel 段数降到
6~8 - 删除贴在楼板下面、内部、背面的不可见面
- 相同楼层边框尽量实例化
- 远景版本可以把多层细边框合并成简化轮廓
- 灰色楼板的格子细节尽量用贴图,不要用几何
4.4 万三角形如果只有一栋楼还可以,但如果你要加载一片建筑群,移动端目标最好是一栋楼控制在几千到一两万三角形以内,远景 LOD 更低。最现实的路线是:手动删不可见面 + 降 bevel 段数 + LOD。
实例化
Billboard广告牌
1.复位
必须要先进行数据复位,如果不复位,灯光在计算距离衰减会严重失真,导致大面积黑死漏光

2.确认打光渲染
找到一个物体,给他确定好打光渲染没问题了。
3.物体打帧,预备好平视摄像机
给这个物体打摄像机,并设定好8帧,给物体Z旋转定好每帧的旋转角度
- 指针拖到 第 1 帧 旋转 Z 改为
0°鼠标悬停按I键。 - 指针拖到 第 2 帧 旋转 Z 改为
45°鼠标悬停按I键。 - 指针拖到 第 3 帧 旋转 Z 改为
90°鼠标悬停按I键。 - 指针拖到 第 4 帧 旋转 Z 改为
135°鼠标悬停按I键。 - 指针拖到 第 5 帧 旋转 Z 改为
180°鼠标悬停按I键。 - 指针拖到 第 6 帧 旋转 Z 改为
225°鼠标悬停按I键。 - 指针拖到 第 7 帧 旋转 Z 改为
270°鼠标悬停按I键。 - 指针拖到 第 8 帧 旋转 Z 改为
315°鼠标悬停按I键。
如果是斜向下看45度,那就是摄像机可以(X=60,Y=0,Z=45)
4.渲染输出
只做Sprite Shee雪碧图
256像素就可以,渲染采样调节256

5.实现广告牌逻辑
原理:当视轨相机(Camera)绕着工位转圈时,代码在后台实时计算相机和这个平面的夹角,只要相机偏了 45°,代码就瞬间把贴图切换到对应角度的那一格
还需要的技术:匹配相机俯角烘焙 + 锁定 Y 轴广告牌,
锁定U轴:常规的广告牌是全轴朝向相机。当相机飞到物体头顶时,常规广告牌会跟着抬头,整个片子会“躺”在地上,瞬间露馅。
解决做法是:锁死 X 轴和 Z 轴,只允许平面绕着垂直于地面的 Y 轴旋转。
-
不管相机怎么高低起伏,这个平面永远像一扇旋转门一样,笔直地立在地面上。
-
当相机在高处左右环绕时,平面绕 Y 轴转动迎合相机,同时由于贴图本身已经自带了俯视角度,二者完美契合。