Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
渲染器總覽
也參考
本頁面介紹 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 遊戲。
你希望在所有裝置上獲得最佳效能,且不需要進階算繪功能。
Keep in mind every game is unique, and this is only a starting point. For example, you might choose to use the Compatibility renderer even though you have the latest GPU, so you can support the widest range of hardware. Or you might want to use the Forward+ renderer for a 2D game, so you can use advanced features like compute shaders.
切換算繪器
在編輯器右上角點擊算繪器名稱,即可隨時切換不同的算繪器。
切換算繪器時,可能需要手動調整場景、光源與環境設定,因為不同算繪器的行為會有差異。通常,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+ |
|---|---|---|---|
光源處理方式 |
Forward single-pass. Lights with shadows use a multi-pass approach and less accurate blending. |
Forward single-pass. |
Clustered 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 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
SMAA |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
SSAA |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
螢幕空間粗糙度限制器 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
StandardMaterial 功能
詳情請參考 標準 3D 材質與 ORM 3D 材質。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
次表面散射 |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
著色器功能
詳情請參考 著色參考。
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
螢幕紋理 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
深度紋理 |
✔️ 支援。 |
✔️ 支援。 |
✔️ 支援。 |
Normal/Roughness buffer |
❌ 不支援。 |
❌ 不支援。 |
✔️ 支援。 |
運算著色器 |
❌ 不支援。 |
⚠️ 支援,但舊裝置效能可能受影響。 |
✔️ 支援。 |
其他功能
功能 |
相容性 |
行動裝置 |
Forward+ |
|---|---|---|---|
Color precision |
RGBA8. Low dynamic range, medium precision. |
RGB10A2. Medium dynamic range, low precision. RGBA16F if HDR 2D is enabled. |
RGBA16F. High dynamic range, good precision. |
Depth precision |
24-bit without reverse Z. Medium precision. |
24-bit with reverse Z. Medium precision. |
32-bit with reverse Z. Good precision. |
Debanding |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
可變速率著色 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
貼花 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
粒子軌跡 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
Particle SDF collision |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
景深模糊 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
自適應與 Mailbox 垂直同步模式 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
2D HDR 檢視區 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
HDR output |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |
RenderingDevice 存取 |
❌ 不支援。 |
✔️ 支援。 |
✔️ 支援。 |