渲染器總覽
也參考
本頁面介紹 Godot 的各種算繪器,並著重於它們在算繪功能上的差異。若需更多技術細節,請參閱 內部算繪架構 。
前言
Godot 4 包含三種算繪器:
Forward+ 。最先進的算繪器,僅適用於桌上型平台。在桌上型平台預設使用此算繪器。此算繪器使用 Vulkan 、 Direct3D 12 或 Metal 作為算繪驅動程式,並使用 RenderingDevice 後端。
行動裝置 。功能較少,但能更快地算繪簡單場景。適用於行動裝置和桌面平台。在行動裝置平台上預設使用。此算繪器使用 Vulkan 、 Direct3D 12 或 Metal 作為繪圖驅動程式,並使用 RenderingDevice 後端。
相容性 ,有時也稱為 GL 相容性 。這是最基礎的算繪器,適用於低階桌上型和行動平台。在網頁平台預設使用此算繪器。此算繪器使用 OpenGL 作為其繪圖驅動程式。
算繪器、繪圖驅動程式與 RenderingDevice
Godot 的算繪抽象層級。
算繪器*(或稱*算繪方法)會決定哪些功能可用。大多數情況下,你只需考慮這一點。Godot 目前有三種算繪器:Forward+、Mobile 和 相容性。
繪圖驅動程式*透過圖形 API 指示 GPU 執行操作。Godot 支援 **OpenGL*、Vulkan、Direct3D 12 以及 Metal 等繪圖驅動。並非所有顯示卡都支援所有驅動,因此也無法支援所有算繪器。Vulkan、Direct3D 12、Metal 都是現代化、低階的圖形 API,需要較新的硬體。OpenGL 則是較舊的圖形 API,能在大多數硬體上運行。
RenderingDevice 是一種*算繪後端*,它是算繪器與繪圖驅動程式間的抽象層。Forward+ 與 Mobile 算繪器會使用 RenderingDevice,因此有時也被稱為「基於 RenderingDevice 的算繪器」。
選擇算繪器
選擇哪一種算繪器取決於你的硬體與目標平台,這通常需要綜合考量。以下是基本建議:
若符合以下條件,建議選擇 Forward+:
你的目標平台為桌上型電腦。
你擁有支援 Vulkan、Direct3D 12 或 Metal 的新款硬體。
你正在開發 3D 遊戲。
你需要使用最先進的算繪功能。
若符合以下條件,建議選擇 Mobile:
你的目標平台是較新的行動裝置、桌面 XR 或桌上型電腦。
你擁有支援 Vulkan、Direct3D 12 或 Metal 的新款硬體。
你正在開發 3D 遊戲。
你希望使用進階算繪功能,但會受限於行動裝置硬體效能。
若有以下需求,請選擇 相容性:
你要支援較舊的行動裝置、桌面裝置或獨立 XR。相容性算繪器支援最廣泛的硬體。
你要部署到網頁平台,這時只能使用相容性算繪器。
你的硬體不支援 Vulkan,這時也只能選擇相容性算繪器。
你正在製作 2D 遊戲,或是不需要進階算繪效果的 3D 遊戲。
你希望在所有裝置上獲得最佳效能,且不需要進階算繪功能。
請記住,每款遊戲需求都不同,這些建議僅供參考。例如,為了支援更多舊硬體,即使你有最新 GPU,也可以選擇相容性算繪器。或者你開發 2D 遊戲但需要進階功能(如運算著色器),也可以選用 Forward+ 算繪器。
切換算繪器
在編輯器右上角點擊算繪器名稱,即可隨時切換不同的算繪器。
切換算繪器時,可能需要手動調整場景、光源與環境設定,因為不同算繪器的行為會有差異。通常,Mobile 與 Forward+ 間的切換所需調整較少;而相容性算繪器與其他兩者間的切換,則可能需要較多調整。
自 Godot 4.4 起,當使用 Forward+ 或 Mobile 算繪器時,如果 Vulkan 不被支援,引擎會自動退回使用 Direct3D 12,反之亦然。若這些備用驅動也無法啟用,且 RenderingDevice 不被支援時,則會自動退回使用相容性算繪器(OpenGL)。如此即使硬體有限,專案仍能執行,但畫面效果可能會和預期不同。你可以在專案設定中,取消勾選 Rendering > Rendering Device > Fallback to OpenGL 3 來關閉此行為。
功能比較
本表僅列出部分算繪器功能。若某個功能未出現在下方表格,代表三種算繪器皆支援,只是效能表現可能有差異。完整功能清單請見 功能列表。
支援 RenderingDevice 的硬體,必須能運行 Vulkan、Direct3D 12 或 Metal。
整體比較
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
所需硬體 |
舊型或低階。 |
新型或高階。需支援 Vulkan、Direct3D 12 或 Metal。 |
新型或高階。需支援 Vulkan、Direct3D 12 或 Metal。 |
可在新型硬體執行 |
✔️ 是. |
✔️ 是. |
✔️ 是. |
可在舊型與低階硬體執行 |
✔️ 是. |
✔️ 是,但效能不如相容性算繪器。 |
✔️ 是,但三者中效能最差。 |
可在不支援 RenderingDevice 的硬體上運行 |
✔️ 是. |
❌ 否. |
❌ 否. |
目標平台 |
行動裝置、低階桌上型電腦、網頁。 |
行動裝置、桌上型電腦。 |
桌上型電腦。 |
桌上型電腦 |
✔️ 是. |
✔️ 是. |
✔️ 是. |
行動裝置 |
✔️ 是(低階). |
✔️ 是(高階). |
⚠️ 支援,但效能優化有限。建議改用 Mobile 或相容性算繪器。 |
XR |
✔️ 是。建議用於獨立式頭戴裝置。 |
✔️ 是。建議用於桌面端頭戴式裝置。 |
⚠️ 支援,但效能優化有限。建議改用 Mobile 或相容性算繪器。 |
Web |
✔️ 是. |
❌ 否. |
❌ 否. |
2D 遊戲 |
✔️ 是. |
✔️ 是,但通常相容性算繪器對 2D 已足夠。 |
✔️ 是,但通常相容性算繪器對 2D 已足夠。 |
3D 遊戲 |
✔️ 是. |
✔️ 是. |
✔️ 是. |
功能集 |
2D 與基礎 3D 功能。 |
大多數算繪功能。 |
所有算繪功能。 |
2D 算繪功能 |
✔️ 是. |
✔️ 是. |
✔️ 是. |
核心 3D 算繪功能 |
✔️ 是. |
✔️ 是. |
✔️ 是. |
進階算繪功能 |
❌ 否. |
⚠️ 是,但受限於行動裝置硬體效能。 |
✔️ 是。支援所有算繪功能。 |
新功能 |
⚠️ 相容性算繪器偶爾會加入新功能,但通常晚於 Mobile 和 Forward+。 |
✔️ 大多數新功能會同步加入 Mobile,通常與 Forward+ 同步獲得新功能。 |
✔️ 所有新功能皆會先加入 Forward+。新功能開發優先支援此算繪器。 |
算繪效能負擔 |
基礎效能負擔低,但規模擴增時效能下降明顯。 |
基礎效能負擔中等,規模擴增時效能下降也屬中等。 |
基礎效能負擔最高,但規模擴增時效能下降較小。 |
算繪驅動程式 |
OpenGL。 |
Vulkan、Direct3D 12 或 Metal。 |
Vulkan、Direct3D 12 或 Metal。 |
光源與陰影
詳情請參考 3D 燈光與陰影。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
光源處理方式 |
前向 |
前向 |
叢集前向 |
OmniLight 最大數量 |
每個 Mesh 8 盞,可手動增加。 |
每個 Mesh 8 盞、每個畫面 256 盞。 |
每個叢集 512 盞,可手動增加。 |
SpotLight 最大數量 |
每個 Mesh 8 盞,可手動增加。 |
每個 Mesh 8 盞、每個畫面 256 盞。 |
每個叢集 512 盞,可手動增加。 |
DirectionalLight 最大數量 |
8 |
8 |
8 |
OmniLight 與 SpotLight 支援 PCSS |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
DirectionalLight 支援 PCSS |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
光影投影紋理 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
全域照明
詳情請參考 序言。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
反射探針 |
✔️ 支援,每個 Mesh 可用 2 個。 |
✔️ 支援,每個 Mesh 可用 8 個。 |
✔️ 支援,數量無限制。 |
LightmapGI |
⚠️ 支援光照貼圖的渲染,但要進行貼圖烘培需支援 RenderingDevice 的硬體。 |
✔️ 支援。 |
✔️ 支援。 |
VoxelGI |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
螢幕空間間接光照(SSIL) |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
有符號距離場全域照明(SDFGI) |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
環境與後製處理
詳情請參考 環境與後製處理。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
霧(深度與高度) |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
體積霧 |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
色調映射 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
螢幕空間反射(SSR) |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
螢幕空間環境遮蔽(SSAO) |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
螢幕空間間接光照(SSIL) |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
有符號距離場全域照明(SDFGI) |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
泛光 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
色彩調整 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
全螢幕四邊形自訂後製效果 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
使用 CompositorEffects 的自訂後製 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
抗鋸齒
詳情請參考 3D 抗鋸齒。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
3D MSAA |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
2D MSAA |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
TAA |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
FSR2 |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
FXAA |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
SSAA |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
螢幕空間粗糙度限制器 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
StandardMaterial 功能
詳情請參考 標準 3D 材質與 ORM 3D 材質。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
次表面散射 |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
著色器功能
詳情請參考 著色參考。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
螢幕紋理 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
深度紋理 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
法線/粗糙度紋理 |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
運算著色器 |
❌ 不支援。 |
⚠️ 支援,但舊裝置效能可能受影響。 |
✔️ 支援。 |
其他功能
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
可變速率著色 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
貼花 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
景深模糊 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
自適應與 Mailbox 垂直同步模式 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
2D HDR 檢視區 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
RenderingDevice 存取 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |