Blender 是什麼?從一人的內部工具,到全世界共用的 3D 創作平台
很多人第一次打開 Blender,會先被密密麻麻的按鈕嚇到。那些介面串起的是一條完整的 3D 製作管線:從空白場景開始,做出模型、材質、動畫與燈光,最後算成影片,或交給網站與遊戲即時呈現。
誰做的?從 NeoGeo 的內部工具開始
Blender 的起點可以追到荷蘭開發者 Ton Roosendaal。他在動畫工作室 NeoGeo 工作時,為團隊打造一套自有 3D 工具;最早的 Blender 原始檔日期是 1994 年 1 月 2 日。它起初是工作室每天拿來製作動畫的內部軟體,後來才走向公開。
公司後來結束營運,Blender 的未來一度不確定。2002 年成立的 Blender Foundation 發起 Free Blender 募資,社群在七週內籌到 10 萬歐元,買回原始碼並以 GNU GPL 開源。這段歷史很重要:Blender 不是先有龐大企業,再推出免費版;它是被使用者一起救回來的工具。
Blender 能做什麼?
建模是最容易理解的一段。你可以從方塊開始拉出家具、建築與角色,也能像捏黏土一樣雕刻高細節表面。接著是 UV、材質與貼圖,決定木頭、金屬、皮膚或玻璃看起來如何。
角色需要骨架綁定與動畫;布料、煙霧、流體和破壞效果可以交給模擬。Cycles 和 Eevee 負責算圖,Compositor 處理畫面合成,Video Sequencer 能剪輯影片,Grease Pencil 則讓 2D 線條和 3D 場景放在同一個空間。幾何節點與 Python API 還能把重複工作變成規則或程式。

有哪些作品真的用 Blender 做?
Blender Foundation 長期用 Open Movies 驗證軟體,從 Elephants Dream、Big Buck Bunny、Sintel 到 Spring,製作過程和素材也回到社群。這些短片不只展示畫面,同時逼出角色、毛髮、渲染和資產管理等實際需求。
它也早已走出開源展示片。Blender Foundation 的 2022 年報記錄,西班牙動畫長片 Unicorn Wars 全片以 Blender 製作,印度電影 RRR 也有大量視覺特效工作使用 Blender。獨立創作者、小型工作室到大型製作,都可能把它放進流程的不同位置。
它不是什麼?
Blender 不是素材庫,打開後不會自動出現完整世界;它比較像一間空的工作室。它也不是主要拿來發布網站或執行遊戲的引擎。雖然能做互動預覽與影片,但真正把內容送到玩家或讀者面前,通常仍由 Three.js、Unity、Unreal 或其他 runtime 負責。
這也解釋了為什麼 Blender 和 Three.js 常一起出現。Blender 負責做內容,Three.js 負責在瀏覽器裡即時播放與互動。中間最常用的交接格式是 glTF;如果把模型、材質、貼圖與動畫包成單一二進位檔,就是副檔名 .glb 的 GLB。
從 Blender 到網站:一條可重做的資產管線
本站的 3D Studio 不是手動把幾十個物件逐一匯出。我把場景生成、命名、材質設定與 GLB 匯出寫進 Python。需要修改時,重新執行腳本就能得到同樣結構的新資產;網站只要載入固定路徑,不必跟著改一串物件。
這種做法特別適合產品變體、城市資料、批次縮圖和 CI。Blender 可以不開視窗,在背景模式讀取 .blend、執行 Python、輸出 GLB 或預覽圖。所謂 Headless 不是另一個版本,只是把原本要用滑鼠完成的流程交給命令列。
看看 Blender 資產在本站 Three.js 場景裡如何呈現Blender Headless 匯出 GLB Starter
先準備 source.blend 和 export_glb.py,接著用背景模式執行。雙破折號後面的值不會被 Blender 自己解析,可以安全地傳給 Python 腳本。
blender --background source.blend --python export_glb.py -- build/scene.glbimport bpy
import sys
from pathlib import Path
args = sys.argv[sys.argv.index('--') + 1:]
output = Path(args[0]).resolve()
output.parent.mkdir(parents=True, exist_ok=True)
bpy.ops.object.select_all(action='SELECT')
bpy.ops.export_scene.gltf(
filepath=str(output),
export_format='GLB',
use_selection=True,
export_apply=True,
export_cameras=False,
export_lights=False,
)
print(f'GLB={output}')
print(f'BYTES={output.stat().st_size}')實際上線前還要檢查貼圖是否有打包、材質是否符合 glTF、動畫是否需要輸出、座標方向是否正確,以及檔案大小是否符合網站預算。Headless 自動化的價值不只是省一次點擊,而是讓這些規則每次都能被重複驗證。
初學者應該從哪裡開始?
先別急著做完整角色。用一個方塊練習移動、旋轉、縮放,再做簡單材質和燈光,最後匯出 GLB 放進瀏覽器。當你能從 Blender 完整走到 Three.js,再回頭學雕刻、骨架或幾何節點,會比較知道每個功能解決什麼問題。
Blender 的功能確實龐大,但不需要一次學完。先選一條想完成的輸出路徑,比照著功能表逐項學習更容易留下成果。
上一篇:Three.js 是什麼?從瀏覽器 3D 到捲動文章