Cesium使用面向web的glTF 格式三维模型,同时提供了一个 dae在线转gltf的工具, 把dae和它纹理拖放到这个工具里,就能获得一个glTF格式的模型。这篇文章是一些对三维数据建模和导出到COLLADA dae 的小提示,帮助提升模型的性能和稳定性。
纹理图片
-
所有的纹理使用同一个顶点数据。可以使用多重纹理把uv的作用最大化,但是所有纹理只能分享同一个纹理坐标。
-
尽量使用纹理合并集( texture atlases 多个小纹理和到一张大纹理上)而不是很多独立纹理 。这样会使文件下载次数最小化,并且使引擎批量渲染,会提升不少性能。
-
尽管WebGL标准承诺的最大纹理是6464,但是现代显卡系统都支持到20482048,这个也是glTF纹理资源合理的尺寸上限。
-
使用mipmaping。这个会提升显示效果和渲染性能,尤其是对大的纹理合并集 ,否则会产生很多内存碎片( poor memory
coherence)。 -
使用2的幂次方大小的纹理。对于非2的幂次方的纹理,引擎实际会实时的进行缩放。并不是要求纹理的宽度和高度相同,而是说宽度或者高度都是2的幂次方即可。
几何体
- 不要包含任何比不需要的顶点元素。虽然导出Collada dae会增大一点点,但是对glTF确增大了很多。因为glTF不支持顶点属性的索引(
per-attribute indices),所有的顶点属性都是和顶点个数一致。 - 尽量减少节点(node)和 三角网(mesh)的个数。通常一个大的三角网渲染效率要比很多个小的三角网效率高。
3DS Max 软件
- 纹理图片必须是jpg,png等web兼容格式。
- 把纹理和.max文件放在一个目录下。
- 材质命名最好和纹理图片文件名称一致。
- 在同一个目录下导出FBX会带着图片。