跳到主要內容
設計與3D技術

GLB檔案怎麼變小?貼圖縮小、減面、壓縮三步驟,以及可以減到什麼程度

想讓GLB變小,請照這個順序:先降低貼圖解析度,再減少多邊形,最後用Draco或meshopt壓縮幾何資料。本文介紹怎麼看出容量由什麼構成、Blender與glTF-Transform的操作步驟、Figmee匯出的GLB要注意的地方,以及依用途可以減到什麼程度。

Figmee 編輯部發布日期: 2026-11-07更新日期: 2026-11-07閱讀時間 21 分鐘
GLB輕量化貼圖減面Draco
GLB檔案怎麼變小?貼圖縮小、減面、壓縮三步驟,以及可以減到什麼程度

想讓GLB變小,請照這個順序嘗試:① 降低貼圖(貼在表面的圖像)的解析度,② 減少多邊形(面)的數量,③ 用Draco或meshopt壓縮幾何資料。Draco這類壓縮只會縮小幾何資料、不會縮小圖像,所以對於用圖像保存顏色和凹凸的角色GLB,跳過第①步,有時會發現檔案沒有想像中那麼小。

本文依序整理:怎麼看出GLB裡是什麼占了容量、三種方法各自的做法與對外觀的影響、用Figmee製作的GLB的瘦身步驟,以及依用途可以減到什麼程度。工具的功能都以2026年11月的官方文件(Blender 5.2 LTS手冊、glTF-Transform、gltfpack、model-viewer)為準。

※目前 Figmee 提供的是:依你畫的插畫生成的公仔風格圖像、3D模型資料(GLB / 3MF),以及3D模型的旋轉影片。實體3D列印訂購功能正在準備中(Coming Soon)。另外,照片和看起來像照片的圖片都無法做成3D(對象是畫出來的圖)。

GLB為什麼這麼大?

GLB的容量主要由「貼圖(圖像)」和「網格(幾何資料)」兩部分決定。用圖像保存顏色、凹凸和質感的角色模型,圖像有時會占很大比例,所以先看清楚構成,再決定用哪種方法。

GLB是glTF的二進位版本,把形狀、顏色、材質打包成一個檔案(內部結構與開啟方法請見GLB檔案是什麼)。影響容量的有三類,其中占大宗的是前兩類:

  • 網格:頂點位置、法線(面的朝向)、UV(圖像貼在哪裡)等。多邊形越多,資料越大。面數與容量的關係請見多邊形數是什麼。
  • 貼圖:顏色(基礎色)、凹凸(法線貼圖)、金屬感與粗糙度等圖像。長寬解析度各加倍,像素就變成4倍。
  • 材質與擺放資訊:材質設定和模型位置是文字資訊,通常只占很小比例。帶動畫的GLB則會多出動畫的部分。

想用數字看構成,glTF-Transform的inspect最省事。它會輸出場景、網格、材質、貼圖、動畫的表格,官方說明表示可用來了解檔案中幾何與圖像各占多少(來源:glTF-Transform CLI原始碼(inspect的說明),2026年11月)。在裝有Node.js的電腦上這樣使用:

npm install --global @gltf-transform/cli
gltf-transform inspect model.glb

安裝指令與glTF-Transform官方頁面相同。不想用指令列的話,可以在Blender視埠開啟統計(Statistics)查看三角形數量,並在影像編輯器裡查看各張貼圖的解析度。

除了檔案大小,也要留意顯示時占用的記憶體。glTF-Transform的說明寫到,PNG、JPEG、WebP圖像在GPU記憶體中必須以解壓縮後的形式存在。例如一張4096×4096像素的圖像,以每像素4位元組計算約為67MB,就算檔案本身只有幾MB,在手機上也可能造成顯示卡頓。

三種方法的差異整理如下:

方法變小的是什麼對外觀的影響主要工具
降低貼圖解析度圖像(檔案,以及顯示時的記憶體)靠近看時細節變模糊Blender影像編輯器、glTF-Transform resize
減少多邊形幾何資料輪廓變得有稜角,細的部分最先走樣Blender的Decimate、glTF-Transform simplify、gltfpack -si
壓縮(Draco、meshopt)幾何資料幾乎沒有變化Blender匯出、glTF-Transform draco/meshopt、gltfpack -c

要讀取壓縮後的GLB,讀取端需要有解碼器(解開壓縮的程式)(詳見下文「什麼時候用壓縮(Draco、meshopt)?」)。

為什麼要先縮小貼圖?

Draco和meshopt壓縮的是GLB的幾何資料,不會縮小圖像。在圖像占大宗的GLB裡,降低貼圖解析度的效果最明顯,而且完全不會改變形狀。

glTF-Transform的說明也指出,Draco只作用於幾何資料,不壓縮動畫和貼圖(來源:glTF-Transform CLI原始碼(draco的說明),2026年11月)。讓貼圖變輕有三種做法:

  1. 降低解析度:長寬各減半,像素就只剩四分之一。在Blender中,可以用影像編輯器的「Image > Resize」以像素指定新的寬和高(來源:Blender 5.2 LTS手冊「Editing Images」,2026年11月)。glTF-Transform的resize會把PNG和JPEG貼圖縮到--width和--height指定的最大尺寸以內。
  2. 重新選擇格式與畫質:Blender手冊說明,glTF要求圖像為PNG或JPEG;PNG無損、一般較合適,但用在網頁時,檔案較小的JPEG可能更好。Blender匯出時可以選擇圖像格式(Images),以及JPEG、WebP時的畫質(Image Quality)(來源:Blender 5.2 LTS手冊「glTF 2.0」,2026年11月)。
  3. 改用適合GPU的格式(KTX2):model-viewer的FAQ說明,KTX2的檔案大小和JPEG差不多,但能大幅減少GPU記憶體用量(來源:model-viewer FAQ「What is KTX2?」,2026年11月)。可以用glTF-Transform的etc1s、uastc或gltfpack的-tc產生,但讀取端必須支援KHR_texture_basisu擴充。

處理貼圖時有兩點要注意:

  • 凹凸圖像(法線貼圖)最好不要轉成JPEG。JPEG的壓縮模糊可能破壞明暗,所以Figmee的凹凸圖像也維持PNG。glTF-Transform的官方範例在轉換圖像時,也把法線貼圖(normalTexture)排除在外(來源:glTF-Transform「textureCompress」,2026年11月)。
  • 有些軟體讀不了WebP。WebP不是glTF的標準圖像格式,而是透過EXT_texture_webp擴充使用的格式(來源:Khronos「EXT_texture_webp」,2026年11月)。Figmee以前也在GLB貼圖裡用過WebP,但由於有些軟體讀不了WebP,所以2026年10月25日以後產生的GLB改為顏色用JPEG、凹凸用PNG。只在確認目標檢視器支援時才選WebP,檔案交給別人時就不會出問題。

怎麼減少多邊形?

減面可以用Blender的Decimate(精簡)修改器、glTF-Transform的simplify或gltfpack的-si。減得越多,輪廓越有稜角,髮梢、手指這類細的部分會最先變形,所以要以實際顯示的大小邊看邊一點一點降低。

在Blender中減面的步驟如下(約10~20分鐘):

  1. 加入精簡修改器(1分鐘):選取模型,從新增修改器選擇「Generate > Decimate」。
  2. 選擇方式(1分鐘):共有三種。Collapse會考慮形狀、逐步合併頂點;Un-Subdivide相當於細分的反向操作,適合格狀的面;Planar用來減少以平面為主的形狀上的細節(來源:Blender 5.2 LTS手冊「Decimate Modifier」,2026年11月)。像AI生成的模型這種由大量細小三角形組成的網格,多半適合用Collapse。
  3. 降低Ratio(5~15分鐘):Ratio是精簡後保留的面的比例,1.0代表不變,0.5大約保留一半。對照修改器上顯示的面數與外觀;左右對稱的角色還可以試試Symmetry(沿一個軸維持對稱)。
  4. 顯示貼圖來檢查(2分鐘):減面後,UV的接縫處可能出現顏色錯位。切換到材質預覽,靠近看臉、髮梢和手。
  5. 套用(幾秒):滿意後套用修改器。

如果用指令列減面,glTF-Transform的simplify會藉由meshoptimizer減少三角形和頂點:它朝目標比例(ratio)靠近,一旦誤差(error)超過上限就停下。官方說明建議先執行weld(合併位置相同的頂點)再使用,效果較好(來源:glTF-Transform「simplify」,2026年11月)。gltfpack則以-si 0.5這樣的寫法,用0~1指定保留的三角形比例(來源:gltfpack的README,2026年11月)。

重新產生面的重構網格(Remesh)會遺失UV,顏色會錯位,所以以瘦身為目的時請用精簡。兩者的差異請見Blender重構網格與紋理編輯基礎,多邊形多與少的取捨請見低面數模型與高面數模型的差異。

什麼時候用壓縮(Draco、meshopt)?

Draco和meshopt是讓GLB的幾何資料變小的壓縮,應在確定要放在哪裡之後,最後再使用。讀取端支援時,幾乎不改變外觀就能縮小容量;不支援的軟體則根本打不開。

壓縮縮小的內容讀取端需要什麼主要工具
Draco(KHR_draco_mesh_compression)三角形網格Draco解碼器。model-viewer預設從Google的CDN載入Blender匯出、glTF-Transform draco
meshopt(EXT_meshopt_compression)網格、變形目標、動畫meshopt解碼器。model-viewer預設未啟用Blender匯出、glTF-Transform meshopt、gltfpack -c

表格的來源如下(皆為2026年11月):Blender 5.2 LTS的glTF匯出有Draco壓縮(Data - Draco Compression,含壓縮強度以及位置、法線、UV等的量化設定)和meshopt壓縮(Data - Meshopt Compression)選項(Blender 5.2 LTS手冊「glTF 2.0」)。model-viewer預設從Google的CDN載入Draco解碼器,meshopt解碼器則預設沒有啟用(model-viewer文件)。gltfpack的README寫到,讀取以-c壓縮的檔案時,載入器必須支援EXT_meshopt_compression,three.js自r122起需要呼叫GLTFLoader.setMeshoptDecoder(gltfpack的README)。

要選哪一種,取決於放在哪裡:

  • 用model-viewer放到自己的網站:不需設定就能讀取的Draco最省事。
  • 用three.js等自己做頁面:只要能幫載入器設定解碼器,兩種都可以。
  • 交給別人或在其他軟體編輯:不壓縮比較穩妥。你無法確定對方的軟體有解碼器。

glTF-Transform還有一次處理完的optimize。官方範例加了--compress draco --texture-compress webp,但從原始碼看,什麼都不加時的預設是:開啟形狀簡化(--simplify)、用meshopt壓縮、貼圖限制在2048像素以內(來源:glTF-Transform CLI原始碼,2026年11月)。不想改變形狀就加--simplify false,要放進model-viewer就加--compress draco,先確認預設值再使用。

用Figmee做的GLB怎麼瘦身?

Figmee的GLB把形狀和顏色打包成一個檔案,2026年10月25日以後產生的GLB,貼圖的顏色是JPEG、凹凸是PNG。顏色已經是JPEG,所以剩下的做法是「降低解析度」「減少多邊形」「壓縮」三種。面數和圖像解析度因作品而異,請先在自己的檔案裡確認數字,再決定要減多少。

  1. 儲存GLB(1分鐘):在作品畫面點選「儲存」,選擇「3D模型(GLB)」。儲存時不需要額外的代幣。儲存下來的檔案不要刪除,用副本來操作。
  2. 匯入Blender查看構成(5分鐘):用「File > Import > glTF 2.0」匯入,在統計裡看三角形數量,在影像編輯器裡看顏色和凹凸圖像的解析度。詳細的匯入步驟請見把Figmee的GLB匯入Blender的步驟。
  3. 縮小貼圖(5~10分鐘):把顏色和凹凸圖像縮到適合目標位置的大小(例如長寬各減半)。凹凸圖像維持PNG。
  4. 減少多邊形(10~20分鐘):一點一點降低精簡的Ratio,以實際顯示大小查看臉、髮梢和手,在還沒變形的地方停下。
  5. 匯出並比較(5分鐘):用「File > Export > glTF 2.0」匯出GLB,目標位置支援的話就開啟Draco壓縮。確認匯出的檔案比原本小,並在目標檢視器裡檢查顏色和形狀沒有走樣。

用指令列做同樣的事,順序如下。數字只是範例,請選比原解析度小的值。2026年10月25日以前產生的GLB,顏色圖像是WebP,resize無法縮小這些顏色圖像(resize只縮小PNG和JPEG)。這種情況請使用Blender的步驟。

gltf-transform resize character.glb step1.glb --width 1024 --height 1024
gltf-transform weld step1.glb step2.glb
gltf-transform simplify step2.glb step3.glb --ratio 0.5
gltf-transform draco step3.glb character-small.glb

如果只在Figmee裡展示,就不需要瘦身:在分享連結的頁面上,可以用Figmee的檢視器旋轉3D模型(公開方法請見3D模型怎麼在網路上公開)。只有把模型帶到自己的網站或遊戲裡時,才需要花這份工夫。如果還沒有3D模型,在Figmee上只要一張畫,就能先產生公仔風格圖像,再做成3D模型(3D模型消耗5個代幣,每個帳號的第1個免費)。什麼樣的畫適合做成3D,請見插畫轉3D完整指南。

可以減到什麼程度?

用外觀來判斷,而不是數字。以實際放置的頁面或畫面相同的大小顯示,看到臉、髮梢、手開始走樣時,就退回上一步的設定,這是大致的標準。不同用途的思考方式如下:

放在哪裡要注意什麼減法的參考
自己的網站(model-viewer等)載入等待時間、手機記憶體先縮小貼圖,最後再用Draco
遊戲引擎同一畫面顯示的數量、執行負擔看是一個模型占滿畫面,還是很多個並排顯示。原始GLB也要保留
交給別人、用通訊軟體傳送對方服務的檔案大小上限、對方的軟體上限因服務而異,請確認對方的說明。不壓縮比較穩妥
3D列印形狀的細節不要瘦身。用3MF而不是GLB(Figmee的實體3D列印訂購正在準備中,Coming Soon)

關於手機上的AR顯示,Google公開了Android Scene Viewer的建議值:檔案不超過10MB,三角形不超過10萬個(理想範圍是3萬~5萬個),貼圖解析度不超過2048×2048(來源:Google ARCore「Scene Viewer」,2026年11月)。這是針對特定顯示環境的數字,並非所有場合的標準答案,但可以當作放上網頁時的參考。同一頁面列出的擴充很有限,沒有提到Draco和KTX2,所以用於AR顯示的GLB請用未壓縮的版本來確認。

反過來,也有不宜減太多的情況。在作品集中想讓人放大看臉的作品,或以細小裝飾為看點的角色,貼圖和多邊形最好只稍微減一點,載入時間則用海報圖(載入完成前顯示的圖像)來彌補,一般比較不會影響觀看者的第一印象。

常見問題

GLB瘦身後畫質會下降嗎?

降低貼圖解析度和減少多邊形後,靠近看時的細節會變少。Draco和meshopt改變的是GLB幾何資料的儲存方式,外觀變化通常很小,但讀取端需要解碼器。以實際顯示大小查看,減到看不出差別為止,是一個參考標準。

用Draco壓縮的GLB在其他軟體裡打不開。

讀取Draco壓縮的GLB,軟體或檢視器需要有Draco解碼器。model-viewer預設會載入解碼器,但不支援的軟體打不開。請保留壓縮前的GLB,給那個軟體用未壓縮的版本。

Figmee的GLB可以直接放到網站上嗎?

可以。2026年10月25日以後產生的GLB,貼圖是顏色JPEG、凹凸PNG的標準格式,可以在支援glTF的檢視器中讀取。覺得載入慢的話,就照本文的順序:貼圖、多邊形、壓縮,逐步瘦身。嵌入頁面的方法請見如何把GLB嵌入網站。

總結

幫GLB瘦身時,先用inspect或Blender看清楚是幾何還是圖像占了容量。接著依降低貼圖解析度、減少多邊形、依放置位置用Draco或meshopt壓縮的順序進行。凹凸圖像不要轉成JPEG,WebP只在目標位置支援時使用,壓縮前的GLB一定要保留。要減到什麼程度,以實際顯示大小查看時開始走樣之前為止。

想用自己角色的3D試試看的話,可以在Figmee上用你畫的畫產生3D模型,儲存GLB,再照本文的步驟瘦身。

相關指南

把自己的角色以GLB帶進Blender或遊戲

一張畫就能做成3D模型,並儲存為GLB。可在Blender、Godot等支援glTF的軟體中匯入。模型沒有骨架,要讓它動起來需要另外處理。

從一張畫到第一個3D模型都免費

分享這篇文章

Unreal Engine匯入GLB的方法|Interchange匯入設定,以及材質發白、反光過強時的處理方式
設計與3D技術

Unreal Engine匯入GLB的方法|Interchange匯入設定,以及材質發白、反光過強時的處理方式

Unreal Engine 5可以用標準匯入功能讀取GLB。本文依據官方文件,說明把GLB拖進Content Browser後開啟的Interchange對話方塊怎麼看、沒有骨架的GLB為什麼會以Static Mesh匯入、材質發白或像金屬一樣反光時的處理、大小與方向的調整,以及與Unity、Godot的差異。

2026年11月7日閱讀時間 17 分鐘
閱讀更多