渲染器總覽

也參考

本頁面介紹 Godot 的各種算繪器,並著重於它們在算繪功能上的差異。若需更多技術細節,請參閱 內部算繪架構

前言

Godot 4 包含三種算繪器:

  • Forward+ 。最先進的算繪器,僅適用於桌上型平台。在桌上型平台預設使用此算繪器。此算繪器使用 VulkanDirect3D 12Metal 作為算繪驅動程式,並使用 RenderingDevice 後端。

  • 行動裝置 。功能較少,但能更快地算繪簡單場景。適用於行動裝置和桌面平台。在行動裝置平台上預設使用。此算繪器使用 VulkanDirect3D 12Metal 作為繪圖驅動程式,並使用 RenderingDevice 後端。

  • 相容性 ,有時也稱為 GL 相容性 。這是最基礎的算繪器,適用於低階桌上型和行動平台。在網頁平台預設使用此算繪器。此算繪器使用 OpenGL 作為其繪圖驅動程式。

算繪器、繪圖驅動程式與 RenderingDevice

算繪層級示意圖。相容性算繪器運行於 OpenGL 驅動程式。 Forward+ 和 Mobile 算繪器則運行於 RenderingDevice,可使用 Vulkan、Direct3D 12 或 Metal 作為繪圖驅動。

Godot 的算繪抽象層級。

算繪器*(或稱*算繪方法)會決定哪些功能可用。大多數情況下,你只需考慮這一點。Godot 目前有三種算繪器:Forward+Mobile相容性

繪圖驅動程式*透過圖形 API 指示 GPU 執行操作。Godot 支援 **OpenGL*VulkanDirect3D 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 存取

❌ 不支援。

✔️ 支援。

✔️ 支援。