AI生成的3D模型可以快速地將您從空白場景帶到可識別的道具、建築或生物。它們也可以帶著密集的地形、零碎的材料、超大小的紋理、無名的節點或幾何圖形到達,這些幾何圖形在轉盤中看起來無害,但在遊戲關卡重複時變得昂貴。
因此,最佳化在生產結束時不是一個按鈕。它是一個序列:定義資產必須做什麼,在代表性場景中測量,清除浪費,簡化相機無法獎勵的東西,壓縮交付檔案,並在真實裝置上再次測試。
目標不是最小的可能檔案。 目標是一個可靠資產, 可以快速載入, 在場景預算範圍內進行, 仍然容易除錯, 並且仍然可以溝通預定的 silhouette 和 material 語言。
快速閱讀
核心要點
- 設定完整場景背景下的資產預算, 而不是孤立地從多邊形計數中選擇。
- 在應用壓縮前,先修復重複的幾何,隱藏的表面,過多的材料,變形,以及紋理浪費。
- 幾何壓縮可以減少傳輸大小,但並不能消除繪製過於複雜的網狀元件的執行時間成本。
- 保留一個可編輯源模型,並匯出一個單獨的交付GLB,可以驗證,測量,安全替換。
在最佳化前定義瀏覽器- Ready
從資產的工作開始。 近鏡頭看到的英雄人物需要從背景岩石上重複50次的不同幾何和紋理處理。 靜態地標比起皮膚上的敵人, 其頂點必須被改變, 更能忍受複雜的淤泥。
在觸控網格之前寫一個小的驗收表。 僅使用區域作為專案專用的守護欄, 然後在配置後加以精細。 這樣可以防止團隊將任意三角計數作為質量的通用定義來對待。
| 預算領域 | 回答問題 | 須記錄的證據 |
|---|---|---|
| 視覺角色 | 相機能接近多少,什麼必須保持可讀性? | 近、典型和遠距離的參考截圖 |
| 場景密度 | 一次出現多少份或類似的資產? | 代表最壞情況 |
| 渲染 | 有多少個網格和材料通行證,一個例項會增加多少? | 繪製呼叫和渲染器統計 |
| 記憶體 | 目標裝置上的解碼紋理和幾何尺寸有多大? | 紋理尺寸、格式和裝置記憶體觀測 |
| 交付 | 在玩家互動之前, 需要下載什麼? | GLB 尺寸、紋理有效載荷和裝載跟蹤 |
在真實場景中測量原始模型
切勿僅從模型檢視埠最佳化。 將未觸動的資產匯入遊戲使用的相同的渲染器、照明裝置、相機範圍、以及物體密度。 單靠模型本身表現良好,仍可能使場景擁擠,超出預算。
記錄一個基線:檔案大小、網格和原始的計數、材料計數、紋理計數和維度、動畫剪輯和可見渲染統計。 三.j透過渲染器資訊暴露出繪圖呼叫、三角形、點、線、幾何和紋理;即使不解釋每個裝置級別的成本,這些值也可用於比較修改。
將兩到三個截圖和數字並列。 效能測量可以顯示變化, 配對影象可以顯示變化是否損壞了矽、 陰影、 紫外線接合或可識別的特性。
- 測試一份副本和預期的可見副本最大數量。
- 包括動畫,透明,陰影,以及製作中使用的後處理。
- 使用至少一個低功率的目標裝置,而不是隻依靠一臺開發膝上型電腦。
- 保持基線GLB,以便以後的迴歸可以複製。
清潔幾何和場景等級
生成的模型往往包含與倉促組裝的手工資產相同的結構廢物:隱藏在模型內的鬆散塊、重複的表面、微小的斷開元件、空節點、未應用的變換以及比形狀更密集的地形。 在毀滅之前消除這些廢物,簡化器有更清潔的問題需要解決。
保護帶有身份特徵的特徵。對於建築物來說,這些特徵可能是屋頂、門道和窗體節奏。對於生物來說,它們可能是頭部、手或附屬形狀。 保持平面的螢幕區域通常比橫跨天空的輪廓損失更多的幾何形狀。
如果資產動畫,則在每次大減後驗證變形。網格可以保持固定姿勢,在肩部、膝蓋、手指或面部關節上仍然會崩潰。保留關節周圍的額外支援,測試實際動畫片段,而不僅僅是旋轉預覽。
減少繪圖呼叫而不點燃藝術方向
瀏覽器場景往往受到渲染器必須提交的多個獨立的片段的限制,而不僅僅是三角形的數量。 十種有十種材料的微小的網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網狀網
將靜態部件合併, 當它們總是移動在一起時, 透過沉澱來重新使用相同的幾何圖形, 併合並共享同一陰影模型的材料。 刪除不再影響可見面的材料槽。 這些變化應該遵循場景行為: 如果遊戲必須獨立開啟, 請不要將一個門合併到一個建築中。
材料還原也是藝術決定。 將每個表面合併為一個地圖集可以儲存提交檔案,但會使作者、 mip行為或未來變體更加難。 當它們傳達真正的渲染需要時,例如透明玻璃或發射訊號,保持單獨的通行證,並刪除僅僅因為生成的檔案是零散的而存在的分離。
將紋理作為執行時的預算, 而不僅僅是影象檔案
壓縮影象在磁碟上可以看起來很小,在解碼後仍然佔據大量的GPU記憶體。 審計畫素尺寸,通道使用,α,色彩空間,紋理實際覆蓋的螢幕區域有多少,背景道具很少從與特寫字元相同的解析度中獲益。
將紋理大小調整到目標相機最有用的詳細級別。 包裝相容的灰色比例通道, 刪除未使用的地圖, 當材料完全不透明時避免α, 並在可重複的情況下重複使用可重用瓦片的材料。 對於道具的家族來說, 共享的地圖集或材料庫可以提高一致性和分批性。
KTX2/ Basis 紋理送出可以在您的管道和目標瀏覽器支援時降低網路和GPU的成本。 將轉換作為視覺QA步驟:在批准結果前,在遊戲播放距離上比較梯度,正常細節,透明邊緣和顏色變化。
在視覺QA之後壓縮 GLB 交付
一旦幾何,層次,材料,紋理都是有意的,應用送行壓縮。 Three.js GLTFLoader支援常見的glTF路徑,包括Draco壓縮幾何,Meshopt壓縮的meses,以及配置對應解碼器時的KTX2紋理。
根據滿載體驗選擇壓縮。 較小的下載需要解碼碼和CPU時間, 因此比較時間與第一個有用的框架, 而不是單獨慶祝檔案大小。 網格簡化和幾何壓縮解決了不同的問題: 簡化會減少GPU處理的內容, 而壓縮會主要減少這些資料的行程和儲存方式。
glTF Transform提供檢查,驗證,除錯,prune,簡化,調整大小,紋理轉換,壓縮命令。 它的文件還警告說,預設最佳化的透過對於每個場景來說並不理想,這就是為什麼生產預設應該被版本和審查而不是盲目應用的原因。
目標瀏覽器和裝置驗證
執行 glTF 驗證透過, 然後透過遊戲所用的相同生產路徑載入送貨資產。 請檢查控制檯警告, 缺少紋理, 翻轉正常, 動畫損壞, 色彩空間差異, 透明排序, 玩家離開現場時處理。
配置每個支援的效能級別上的代表性級別。 注意穩定的幀體驗, 但也檢查載入暫停、 重複的場景變化後的記憶體增長、 以及多個模型一起出現時的懸念。 正確的結果是, 版本可以滿足您的專案目標, 而不明顯喪失視覺。
完成替換測試: 將資產換成新的修訂,而不改變遊戲遊戲程式碼。 可預測的節點名稱、小點、尺度、物質慣例和碰撞代理使得未來的AI生成的變體更不費錢整合。
- 將可編輯的高細節源儲存在已運出捆綁之外。
- 使用資產版本匯出和最佳化設定。
- 比較基線和遊戲播放相機距離的最佳化截圖。
- 如果一個較小的檔案導致可見的文物或較慢的首次互動,則拒絕它。
- 將核准的交付模式作為下一個資產家族的模板。
常見問題
瀏覽器遊戲模型的最佳多邊形算什麼?
資料沒有通用,因為成本取決於場景密度、材料、動畫、陰影和目標裝置。 從具有代表性的場景設定專案預算,並根據背景衡量每項資產。
Draco壓縮是否提高了幀率?
Draco主要減少幾何傳輸大小,可以提高下載成本,它不會取代網目簡化,也不會在模型解碼後減少繪圖呼叫次數。
每個AI生成的模型是否應該轉換成GLB?
GLB 是支援 glTF 的瀏覽器執行時間的方便的傳送容器, 但選擇仍然取決於您的引擎和管道。 將可編輯源格式分開, 以便所運出的檔案不會成為生產主機。
我首先應該最佳化什麼:多邊形或紋理?
在選擇前同時測量。在一些場景中,紋理記憶和物質計數占主導地位,而在另一些場景中,皮膚幾何、陰影或重複的網狀體則產生更大的成本。
我能把每個網狀的網狀都合併成一個物體嗎?
僅合併那些共享動作,能見度和物質需要的部件。 門,武器,可毀滅的部件和動畫元件往往需要保持獨立才能進行遊戲。
我該如何儲存生成的3D模型的風格?
識別在簡化前可以識別模型的形狀、比例、顏色塊和材料提示。比較實際遊戲播放相機的修改,而不是隻判斷特寫渲染。
壓縮的紋理看起來總是更糟糕嗎?
否,但每一種格式和質量設定都會產生不同的權衡。在批准轉換前,先審查正常、梯度、透明度以及目標裝置上小幅高爭議細節。
我該怎麼測試一個最最佳化的模型?
裝入最壞情況代表場景, 並比較傳送大小, 渲染統計、 記憶體行為和視覺輸出與基線。 在您支援範圍內至少一個低功率裝置上重複測試。
資料來源與延伸閱讀
- 3.js GLTF 記錄器文件
支援glTF擴充套件和解碼器整合,包括Draco,Meshopt,以及KTX2路徑。
- 3.js WebGLRender 文件
呼叫、三角形、點、線、幾何和紋理的渲染器資訊域。
- glTF 變形 CLI 文件
檢查,驗證,查核,簡化,紋理處理,以及glTF資產壓縮命令。
下一步

