1. 程式人生 > >Cesium官方教程11--建模人員必讀

Cesium官方教程11--建模人員必讀

原文地址:https://cesium.com/blog/2014/12/15/gltf-tips-for-artists/

這篇文章是Branden Coker, an artist from AGI 寫的,他是 AGI 的一個藝術家,做過很多事情,包括 為追蹤聖誕老人專案建模。感謝3dben 編寫的Blender和3DS Max建模建議。
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)的個數。通常一個大的三角網渲染效率要比很多個小的三角網效率高。

Modo 軟體

  • Collada匯出的時候禁用相機,光照,頂點顏色,頂點權重等應用程式層面的屬性,這些在Cesium載入的時候都用不上。
  • 刪除相機和燈光物件。
  • 如果模型沒有帶動畫,那麼刪除所有三級網中用不到的平移,旋轉,縮放矩陣。
  • instance形式的關鍵幀(Instanced keyframes)在匯出前必須烘培。這種情況是因為把一個帶動畫的三角網instance了。儘管在Modo軟體裡動畫沒問題,但是如果不烘培(baked)匯出不了。
  • 帶動畫的模型不能使用 Bake Matrices 選項匯出,這麼匯出的模型動畫就丟了。

Blender 軟體

  • 對於帶紋理的模型,在 COLLADA匯出器中勾選 Include UV TexturesInclude Material Textures

3DS Max 軟體

  • 紋理圖片必須是jpg,png等web相容格式。
  • 把紋理和.max檔案放在一個目錄下。
  • 材質命名最好和紋理圖片檔名稱一致。
  • 在同一個目錄下匯出FBX會帶著圖片。
  中國最專業的Cesium開發者社群