Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

環境和後期處理

Godot 3提供了重新設計的環境資源(Environment resource), 以及一個全新的後期處理(post-processing)系統, 其開箱即用, 具有許多可用的效果.

備註

從 Godot 4 開始,環境*效能/品質*設定是在專案設定中定義的,而不是在環境資源中定義的。這使得全域調整變得更加容易,因為您不再需要單獨調整環境資源來適應各種硬體配置。

請注意,大多數環境效能/品質設定僅在專案設定中啟用**進階**開關後才可見。

環境

Environment資源儲存控制渲染環境所需的所有資訊. 這包括天空, 環境照明, 色調對應, 效果和調整. 它本身什麼都不做, 但是一旦在以下位置之一中按優先順序順序使用它就會啟用:

陣列索引(最高優先度)

可以為 Camera3D 節點設定 Environment。優先於其他所有設定。

../../_images/environment_camera.webp

這在想要覆蓋現有環境時非常有用, 但通常使用下面的選項更好.

賦值(最低優先度)

備註

從 Godot 4 開始,預覽環境和太陽的系統替代了 Godot 3 專案中使用的 default_env.tres 檔案。

如果目前場景中不存在 WorldEnvironment 節點或 DirectionalLight3D 節點,編輯器會改為顯示預覽環境和太陽。可以使用 3D 編輯器頂部的按鈕禁用:

../../_images/environment_preview_sun_sky_toggle.webp

點擊右側的垂直排列的三個點就會顯示一個對話方塊,能夠用來自定義預覽環境的外觀:

../../_images/environment_preview_sun_sky_dialog.webp

**預覽太陽和天空只在編輯器中可見,運作專案時不可見。**使用對話方塊底部的按鈕就可以將預覽太陽和天空作為節點加入到場景中。

小訣竅

在預覽環境編輯器中,點擊**將太陽新增到場景**或**將環境新增到場景**時按住 Shift,就會將預覽太陽和預覽環境一同新增到目前場景中(就像單獨點擊了這兩個按鈕一樣)。可以使用這個方法加速專案的設定和原型。

相機屬性

備註

在 Godot 4 中,曝光和景深資訊從環境資源中分離到單獨的 CameraAttributes 資源中。這樣可以更輕鬆地獨立於其他環境設定來調整這些屬性。

class_CameraAttributes 資源儲存曝光和景深資訊。它還允許根據場景亮度自動調整曝光。

要保存資源有兩種方法:

  • 相機屬性實用: 使用任意單位公開功能,這對於大多數遊戲用例來說更容易推理。

  • 相機屬性物理: 使用現實世界單位曝光特徵,類似數位相機。例如,視野是使用以毫米為單位的焦距而不是以度為單位的值來設定的。當物理精確度很重要時建議使用,例如照片級真實感渲染。

兩種 CameraAttribute 資源型別都允許您使用相同的功能,但它們的配置不同。如果您不知道該選擇哪一個,請使用 CameraAttributesPractical

備註

在 Camera3D 節點上使用 class_CameraAttributesPhysical 將鎖定該 Camera3D 中的 FOV 和方面調整,因為視野是在 CameraAttributesPhysical 資源中調整的。如果在 WorldEnvironment 中使用,CameraAttributesPhysical 將不會覆蓋場景中的任何 Camera3D。

CameraAttributes 資源可以加入到 Camera3D 或 WorldEnvironment 節點。當目前相機設定了 CameraAttributes 時,它將「覆蓋」 WorldEnvironment 中設定的CameraAttributes(如果有)。

在大多數情況下,建議在 Camera3D 節點而不是 WorldEnvironment 上設定 CameraAttributes 資源。與 WorldEnvironment 不同,將 CameraAttributes 資源指派給 Camera3D 節點會阻止景深顯示在 3D 編輯器視窗中,除非正在預覽相機。

環境可選項

以下是所有環境選項的詳細說明以及如何使用它們.

背景

背景(Background) 部分包含有關如何填充背景的設定(螢幕中未繪製物件的部分). 在Godot 3.0中, 背景不僅用於顯示圖像或顏色, 還可以改變物體受環境光和反射光影響的方式.

因此,背景天空可能會極大地影響場景的整體外觀,即使天空在螢幕上永遠不會直接可見。調整場景中的光照時應考慮這一點。

../../_images/environment_background1.webp

有四種可用於取得設定的巨集:

  • ** 清晰顏色(Clear Color )** 使用專案設定中定義的預設清晰顏色. 背景將是恒定的顏色.

  • 自訂顏色(Custom Color) 與清晰顏色(Clear Color)類似, 但具有自訂顏色值.

  • 天空(Sky) 可讓您定義全景天空(360 度球體紋理)或程式式天空(具有漸變和可選太陽的簡單天空)。物體將反射它並從中吸收環境光。

  • Canvas displays the 2D scene as a background to the 3D scene. This can be used to make environment effects visible on 2D rendering, such as glow in 2D.

  • **保留**不會繪製任何天空,而是保留前一影格中存在的內容。這提高了純室內場景中的性能,但如果天空隨時可見,則會產生“鏡廳”視覺故障。

材質

使用 Sky 背景模式(或環境光/反射光模式設定為 Sky)時,Sky 子資源可在環境資源中進行編輯。編輯此子資源可讓您在 Sky 中建立 SkyMaterial 資源。

有 3 種內建天空材質可供選擇:

  • PanoramaSkyMaterial: 使用 360 度全景天空影像(建議長寬比為 2:1)。為了受益於高動態範圍,全景影像必須採用 HDR 相容格式,例如“.hdr”或“.exr”,而不是標準動態範圍格式,例如“.png”或“ .jpg``。

  • ProceduralSkyMaterial: 使用程式產生的天空,並可調整地面、太陽、天空和地平線的顏色。這是編輯器預覽中使用的天空型別。太陽的位置是從場景中存在的前 4 個 DirectionalLight3D 節點自動得出的。給定時間最多可以有 4 個太陽。

  • PhysicalSkyMaterial: 使用具有可調整散射參數的基於物理的程式天空。太陽的位置會自動從場景中存在的第一個 DirectionalLight3D 節點匯出。與 ProceduralSkyMaterial 相比,PhysicalSkyMaterial 的渲染成本稍高。給定時間最多可以有 1 個太陽。

全景天空影像有時稱為 HDRI(高動態範圍影像)。您可以在「Poly Haven <https://polyhaven.com/hdris>」上找到免費授權的 HDRI。

備註

具有非常亮點的 HDR PanoramaSkyMaterial 紋理(例如可見太陽的現實生活照片)可能會導致環境反射和鏡面反射出現可見的閃光。這是由於紋理的峰值曝光過高所造成的。

若要解決此問題,請在檔案系統塢站中選擇全景紋理,前往匯入塢站,啟用 HDR 箝位曝光,然後按一下 重新匯入

如果您需要自訂天空材質(例如程式雲),您可以建立自訂天空著色器 <doc_sky_shader>`。

環境光

環境(如此處定義)是一種光, 它影響具有相同強度的每個幾何體. 它是全域的, 獨立於可能新增到場景中的燈光.

這有幾個原因:

  • 背景: 從背景取得環境光,例如天空、自訂顏色或透明顏色(預設)。環境光強度將根據天空影像的內容而變化,這可以產生更具視覺吸引力的環境照明。必須將天空設定為背景才能使此模式可見。

  • 停用: 不使用任何環境光。對於純室內場景很有用。

  • 顏色: 對環境光使用恆定顏色,忽略背景天空。所有側面的環境光強度都相同,這可能會導致場景的照明看起來更平坦。對於漆黑陰影可能太暗的室內場景很有用,或者可以最大限度地提高低端裝置的性能。

  • 天空: 從指定的天空獲取環境光,即使背景設定為 天空 以外的模式。如果背景模式已經是 Sky,則此模式的行為與 Background 相同。

../../_images/environment_ambient.webp

天空(Sky) 設定為背景時, 可以使用 天空貢獻度(Sky Contribution) 設定在環境顏色(ambient color)和天空(sky)之間進行混合(為方便起見, 此值預設為1.0, 因此只有天空會影響物件).

以下是不同環境光對場景的影響比較:

../../_images/environment_ambient2.webp

最後有一個 能量(Energy) 設定, 這是一個乘數, 在使用HDR時非常有用.

一般來說, 環境光應該只用於簡單的場景和大型外景, 或是出於性能考慮(環境光消耗少), 但它不能提供最好的光照品質. 最好是用ReflectionProbe或GIProbe生成環境光, 這樣可以更忠實地類比間接光的傳播方式. 下面是使用平面環境色和GIProbe在品質上的比較:

../../_images/environment_ambient_comparison.webp

使用上述方法之一, 物體獲得恒定的環境照明, 由來自探頭的環境光代替.

反射

反射光(也稱為鏡面光)是基於影像的照明的兩個組成部分中的另一個。

剛體可以設定為以下四種模式之一:

  • 背景: 從背景反射,例如天空、自訂顏色或透明顏色(預設)。

  • 停用: 不反射環境中的任何光線。適用於純粹的室內場景,或最大限度地提高低階裝置的性能。

  • 天空: 從背景天空反射,即使背景設定為 天空 以外的模式。如果背景模式已經是 Sky,則此模式的行為與 Background 相同。

備註

本節僅涉及非體積霧。可以同時使用非體積霧和 doc_volumetric_fog。

霧, 就像在現實生活中一樣, 使遠處的物體逐漸消失成均勻的顏色. 物理效果實際上非常複雜, 但Godot提供了一個很好的近似. Godot有兩種霧:

  • 深度霧: 這個基於距相機的距離來應用.

  • 高度霧: 此高度應用於任何低於(或高於)某個高度的物體, 無論距離相機的距離如何.

../../_images/environment_fog_depth_height.webp

這兩種霧型別都可以調整它們的曲線, 使它們的過渡或多或少變得清晰.

可以調整兩個屬性以使霧效果更有趣:

第一個是 Sun Amount,它利用霧的太陽顏色屬性。當朝向平行光(通常是太陽)時,霧的顏色將會改變,模擬穿過霧的陽光。

第二個是 Transmit Enabled,可以模擬更逼真的透射率。實踐中會使光線在霧中更加突出。

../../_images/environment_fog_transmission.webp

體積霧

體積霧為場景提供了逼真的霧效果,霧的顏色受到穿過霧的燈光的影響。

也參考

有關設定體積霧的文件,請參閱 doc_volumetric_fog。

色調對映

選擇應用於場景的色調對應曲線,選項為電影和遊戲工業中所使用的標準曲線。除“Linear”(線性)外的色調對應運算子可以使亮部和暗部更均勻,同時防止高亮區域受到裁剪。

而主要缺點如下:

  • **Mode(模式):**色調對應所使用的模式。

    • **Linear(線性):**預設的色調對應模式。這是最快也是最簡單的色調對應運算子,但會導致高亮區域過曝,輸出顏色出現可見的裁剪。

    • **Reinhardt:**對渲染後像素的顏色按照這個公式執行變化:color = color / (1 + color)。可以防止裁剪高亮區域,但最終的圖像可能會有些暗淡。

    • **Filmic:**防止裁剪高亮區域,最終的圖像通常比 Reinhardt 鮮豔。

    • **ACES Fitted:**Academy Color Encoding System(學院色彩編碼系統)色調對應器。ACES Fitted 比其他選項更耗性能一些,但對於高亮區域的處理方式更真實,越亮飽和度越低。ACES 輸出的圖像通常比 Reinhardt 和 Filmic 的對比度更高。想要讓畫面更具真實感時,推薦選用 ACES。

  • **Exposure(曝光):**色調對應曝光,模擬長時間獲取的光照量(預設:1.0)。值越高,整體更亮。修改色調對應運算子或白點後,如果場景看上去太暗,請嘗試將這個值略微調高。

  • **White(白點):**光照對應白點,模擬白色在整個尺度中所處的位置(預設:1.0)。為了讓光照更真實,推薦使用 6.08.0 之間的值。值越高,高光區域更少過曝,但會讓場景整體看起來更暗。

中後期處理效果

環境資源支援許多流行的中間和後製效果。

備註

螢幕空間效果,例如:abbr:SSR(螢幕空間反射)SSAO(螢幕空間環境光線遮蔽)、:abbr:`SSIL(螢幕空間間接照明)`和發光不會對位於相機視圖之外或被其他不透明幾何體遮蔽的幾何體進行操作。調整設定時請考慮這一點,以避免在遊戲過程中發生分散注意力的變化。

螢幕空間反射(SSR)

此選項僅在使用 GLES3 後端時適用。

雖然 Godot 支援三種反射資料來源(Sky、ReflectionProbe、GIProbe),但它們可能無法為所有情況提供足夠的細節。螢幕空間反射最有意義的場景是物體彼此接觸(地板上的物體、桌子上的物體、漂浮在水面上等)。

../../_images/environment_ssr.webp

另一個優點(即使只啟用最小), 它是即時工作(而其他型別的反射是預先計算的). 這可以用來使人物, 汽車等在移動時反射到周圍的表面上.

螢幕空間反射可以與其他反射來源同時使用,以便在可能的情況下從詳細反射中受益,同時在無法使用螢幕空間反射時進行退回(例如,反射螢幕外物件)。

一些使用者控制的參數可用於更好地調整技術:

  • 最大步數 確定反射的長度. 這個數字越大, 計算成本就越高.

  • 淡入 允許調整淡入曲線, 這有助於使接觸區域更柔和.

  • 淡出 允許調整淡出曲線, 因此步長限制會輕微淡出.

  • 深度公差: 可用於允許螢幕空間光線穿過物件後面。光線將把每個物件視為具有此深度,以確定它是否可以從該物件後面穿過。較高的值將使螢幕空間反射表現出較少的“分裂”,但代價是某些物件會建立物理上不正確的反射。

請記住,螢幕空間反射僅適用於反射不透明幾何體。透明物件無法反射,因為它們不會寫入深度緩衝。同樣也適用於使用 SCREEN_TEXTUREDEPTH_TEXTURE 的著色器。

螢幕空間環境遮擋(SSAO)

此選項僅在使用 GLES3 後端時適用。

正如在 環境 部分提到的, 光節點的光線無法到達的區域會被環境光照亮(要麼是因為它在半徑之外, 要麼是陰影).Godot可以使用GIProbe, ReflectionProbe, Sky或恒定的環境色來類比這種情況. 但問題是, 之前提出的所有方法都更多地作用於較大的尺度(大區域), 而不是較小的幾何層面.

恒定環境色和Sky在任何地方都是一樣的, 而GI和反射探查的局部細節較多, 但不足以模擬光線無法填充到中空或凹面特徵內部的情況.

這可以用螢幕空間環境遮擋來類比. 如下圖所示, 它的目的是確保凹陷區域更暗, 類比光線進入的較窄路徑:

../../_images/environment_ssao.webp

啟用此效果, 打開燈光並且無法欣賞它是一個常見的錯誤. 這是因為 SSAO 僅作用於*環境光*,而不是直接光。

這就是為什麼在上圖中,直射光下效果不太明顯的原因(在左邊)。如果你想強制 SSAO 也在直射光下工作,請使用 **Light Affect**(光線影響)參數(儘管並這不好,但有些設計師喜歡它的外觀)。

當與真正的間接光源結合時,SSAO看起來最好, 比如GIProbe:

../../_images/environment_ssao2.webp

可以使用以下幾個參數調整SSAO:

../../_images/environment_ssao_parameters.webp
  • **半徑:**計算螢幕空間環境光遮擋時物件可以互相遮蔽的距離。較高的值將導致更遠距離的遮擋,但會犧牲性能和品質。

  • 強度: 主螢幕空間環境光遮蔽強度。充當螢幕空間環境光遮擋效果的乘數。值越高,遮擋越暗。由於 SSAO(螢幕空間環境光線遮蔽)是一種螢幕空間效果,因此建議對此值保持保守。 :abbr:`SSAO(螢幕空間環境光遮蔽)`太強可能會在遊戲過程中分散注意力。

  • 功效: 遮蔽的分佈。值越高,遮擋越暗,類似**強度**,但衰減更劇烈。

  • 細節: 設定螢幕空間環境光遮擋效果的附加細節等級的強度。高值會使細節通道更加突出,但可能會導致最終影像出現鋸齒。

  • 地平線: 考慮表面上的給定點是否被遮蔽或未表示為對應到 0.0-1.0 範圍內的地平線的角度的閾值。值為 1.0 表示無遮蔽。

  • 銳利度: 讓螢幕空間環境光遮擋效果在物件邊緣模糊的量。設定太高會導致物件邊緣出現鋸齒。設定太低會使物件邊緣顯得模糊。

  • 光線影響: 直射光線下的螢幕空間環境光遮擋強度。在現實生活中,環境光遮擋僅適用於間接光,這意味著在直射光下無法看到其效果。高於 0 的值將使 SSAO(螢幕空間環境光遮蔽)效果在直射光下可見。高於“0.0”的值在物理上並不準確,但一些藝術家更喜歡這種效果。

螢幕空間反射(SSR)

此選項僅在使用 GLES3 後端時適用。

:abbr:`SSIL(螢幕空間間接照明)`為其他全域照明技術無法涵蓋的小細節或動態幾何體提供間接照明。這適用於反射漫反射照明,也適用於自發光材質。當單獨啟用 SSIL(螢幕空間間接照明)時,效果可能不會像預期那樣明顯。

相反,SSIL(螢幕空間間接照明)旨在用作其他全局照明技術(例如 VoxelGI、SDFGI 和 LightmapGI)的「補充」。 :abbr:`SSIL(螢幕空間間接照明)`也提供微妙的環境光遮擋效果,與 SSAO 類似,但細節較少。

此功能僅提供間接照明。它不是一個完整的全域照明解決方案。這使得它不同於其他 3D 引擎提供的螢幕空間全域照明 (SSGI)。 :abbr:`SSIL(螢幕空間間接照明)`可以與:abbr:`SSR(螢幕空間反射)`和/或:abbr:`SSAO(螢幕空間環境光遮蔽)`結合使用,以獲得更好的視覺品質(以性能為代價)。

可以使用以下幾個參數調整SSAO:

  • 半徑: 使用螢幕空間間接照明效果時,反射照明可以行進的距離。較大的值將導致場景中的光線進一步反彈,但可能會導致取樣不足的偽影,看起來像是光源周圍的長尖峰。

  • 強度: 螢幕空間間接照明效果的亮度乘數。數值越高,光線越亮。

  • 清晰度: 讓螢幕空間間接照明效果在物件邊緣模糊的量。設定太高會導致物件邊緣出現鋸齒。設定太低會使物件邊緣顯得模糊。

  • 法線拒絕: 計算螢幕空間間接照明時所使用的法線拒絕量。法線拒絕使用給定樣本點的法線來拒絕背向目前像素的樣本。當僅照亮物體的一側時,為了避免漏光,必須進行正常抑制。但是,如果需要漏光,例如當場景主要包含從相機無法看到的臉部發出光線的發射物件時,可以停用正常拒絕。

../../_images/environment_ssil.webp

有符號距離場全域照明 (SDFGI)

此選項僅在使用 GLES3 後端時適用。

有符號距離場全域照明 (SDFGI) 是即時全域照明的一種形式。它不是螢幕空間效果,這意味著它可以為螢幕外元素提供全域照明(與 SSIL(螢幕空間間接照明)不同)。

也參考

有關設定此全域照明技術的說明,請參閱 doc_using_sdfgi。

../../_images/environment_sdfgi.webp

輝光

This feature is only available when using the Forward+ and Mobile backends, not Compatibility.

在攝影和膠片中,當光量超過介質支援的最大值(無論是類比還是數位)時,它通常會向外滲出到圖像的較暗區域。在 Godot 中使用 Glow 模擬這種效果。

../../_images/environment_glow1.webp

預設情況下,即使啟用了效果,它也會變弱或不可見。實際顯示它需要發生的兩個條件之一:

    1. 像素中的光線超過 HDR閾值 (其中0是所有光線都超過該閾值,1.0是光線超過色調對應器 值). 通常情況下, 這個值應該在1.0, 但它可以調低, 以允許更多的光線滲入. 還有一個額外的參數, HDR Scale , 允許對超過閾值的光線進行縮放(使其更亮或更暗).

../../_images/environment_glow_threshold.webp
    1. 泛光效果的值設定大於 0。隨著它的增加,它會以更高的數量將整個螢幕發送到輝光處理器。

../../_images/environment_glow_bloom.webp

兩者都會導致光從較亮的區域開始逸出。

一旦看到輝光,就可以通過一些額外的參數來控制它:

  • 強度(Intensity) 是效果的整體比例, 可以將其增強或減弱(0.0可以將其刪除).

  • 強度(Strength) 是指高斯濾波器內核的處理強度. 數值越大, 濾波器越飽和並向外擴充. 一般來說, 不需要改變這個值, 因為可以通過 Levels 更有效地調整大小.

效果的**混合模式**也可以改變:

  • Additive 新增是最強的一種,因為它只在圖像上新增輝光效果,不涉及混合。一般來說,它太強了,不能使用,但在低強度的泛光下可能看起來很好,會產生一種夢幻般的效果。

  • Screen 確保輝光永遠不會比自己更亮,它作為一個周圍的方式將非常好。

  • Softlight 是預設的,也是最弱的一種,只在物體周圍產生細微的顏色擾動。這種模式在黑暗場景中效果最好。

  • Replace can be used to blur the whole screen or debug the effect. It only shows the glow effect without the image below.

  • 混合 將發光效果與主影像混合。這可以用於更好的藝術控制。混合因子由出現在混合模式上方的 Mix 屬性控制(僅當混合模式設定為 Mix 時)。除非增加 Bloom,否則高混合因子值將使影像變暗。

Godot 提供了**等級**,用於改變輝光效果的大小和形狀。較小的級別是在物體周圍出現的較強的輝光,而大的級別是覆蓋整個螢幕的朦朧輝光:

../../_images/environment_glow_layers.webp

然而,這個系統的真正優勢在於結合水平來創造更有趣的輝光模式:

../../_images/environment_glow_layers2.webp

最後,可以使用「發光貼圖」來控制發光效果,這是一種紋理,用於確定螢幕每個部分的發光亮度。此紋理可以選擇著色,以將發光效果著色為發光貼圖的顏色。紋理會拉伸以適合視口,因此建議使用與視口最常見的縱橫比(例如 16:9)相配對的縱橫比,以避免可見的失真。

發光貼圖紋理有 2 個主要用例:

  • 使用污垢圖案紋理建立“鏡頭污垢”效果。

  • 使用漸層紋理使螢幕特定部分的輝光減弱。

../../_images/environment_glow_map.webp

Using glow in 2D

There are 2 ways to use glow in 2D:

  • Since Godot 4.2, you can enable HDR for 2D rendering when using the Forward+ and Mobile rendering methods. This has a performance cost, but it allows for a greater dynamic range. This also allows you to control which objects glow using their individual Modulate or Self Modulate properties (use the RAW mode in the color picker). Enabling HDR can also reduce banding in the 2D rendering output.

    • To enable HDR in 2D, open the Project Settings, enable Rendering > Viewport > HDR 2D then restart the editor.

  • If you want to maximize performance, you can leave HDR disabled for 2D rendering. However, you will have less control on which objects glow.

    • Enable glow, set the environment background mode to Canvas then decrease Glow HDR Threshold so that pixels that are not overbright will still glow. To prevent UI elements from glowing, make them children of a CanvasLayer node. You can control which layers are affected by glow using the Background > Canvas Max Layer property of the Environment resource.

Example of using glow in a 2D scene

Example of using glow in a 2D scene. HDR 2D is enabled, while coins and the bullet have their Modulate property increased to overbright values using the RAW mode in the color picker.

警告

The 2D renderer renders in linear color space if the Rendering > Viewport > HDR 2D project setting is enabled, so source_color must also be used for uniform samplers that are used as color input in canvas_item shaders. If this is not done, the texture will appear washed out.

If 2D HDR is disabled, source_color will keep working correctly in canvas_item shaders, so it's recommend to use it when relevant either way.

Using glow to blur the screen

Glow can be used to blur the whole viewport, which is useful for background blur when a menu is open. Only 3D rendering will be affected unless the environment's background mode is set to Canvas. To prevent UI elements from being blurred when using the Canvas background mode, make them children of a CanvasLayer node. You can control which layers are affected by this blurring effect using the Background > Canvas Max Layer property of the Environment resource.

To use glow as a blurring solution:

  • Enable Normalized and adjust levels according to preference. Increasing higher level indices will result in a more blurred image. It's recommended to leave a single glow level at 1.0 and leave all other glow levels at 0.0, but this is not required. Note that the final appearance will vary depending on viewport resolution.

  • Set Intensity to 1.0 and Bloom to 1.0.

  • Set the blend mode to Replace and HDR Luminance Cap to 1.0.

Example of using glow to blur the 2D rendering in the menu's background

Example of using glow to blur the 2D rendering in the menu's background

調整

在處理結束時,Godot提供了進行一些標準圖像調整的可能性.

../../_images/environment_adjustments.webp

基本 BCS 調整

第一個是能夠改變典型的亮度, 對比度和飽和度:

../../_images/environment_adjustments_bcs.webp

使用單維漸變進行色彩校正。

第二個調整是透過提供顏色校正梯度。這可以透過將 GradientTexture1D 資源指派給 Color Correction 屬性或透過載入包含水平漸層的紋理來完成。漸變的最左邊部分代表來源影像中的黑色,而漸變的最右邊部分代表來源影像中的白色。

第二種是通過提供顏色校正梯度. 如下所示的常規黑色到白色漸變將不起作用:

../../_images/environment_adjustments_default_gradient.webp

但是建立自訂的會允許將每個通道對應到不同的顏色:

../../_images/environment_adjustments_custom_gradient.webp

使用單維漸變進行色彩校正。

3D 搜尋紋理 (LUT) 也可用於色彩校正。這是一種特殊的紋理,用於單獨修改每個顏色通道(紅色、綠色、藍色)。該圖像可以是任何分辨率,但由於顏色校正是低頻資料,出於性能原因,建議堅持使用低分辨率。 LUT 紋理的分辨率通常為 17×17×17、33×33×33、51×51×51 或 65×65×65(奇數尺寸允許更好的插值)。

為此,尋找紋理的匯入模式必須在匯入塢中設定為Texture3D(而不是作為常規Texture2D匯入):

../../_images/environment_adjustments_3d_lut_import.webp

確保同時配置要匯入的水平和垂直切片的數量。如果不這樣做,LUT 紋理在使用時將不會正確影響視窗。您可以透過在檔案系統停靠欄中雙擊 3D 紋理來預覽如何匯入 3D 紋理,然後前往屬性面板以翻轉紋理的圖層。

您可以使用這個中性 33×33×33 LUT 範本作為基礎(右鍵單擊並選擇 另存為...):

../../_images/environment_adjustments_3d_lut_template.webp

使用上述LUT 模板,將其匯入模式變更為**Texture3D** 後,在匯入底座中將其**Horizontal** 切片數量設為``33``,然後按一下**Reimport** 。如果將此 LUT 載入到 顏色校正 屬性中,您現在不會看到任何明顯的差異,因為該紋理被設計為中性起點。

可以在影像編輯器中修改此 LUT 模板,以為影像提供不同的氛圍。常見的工作流程是將 LUT 影像放置在專案 3D 視窗的螢幕截圖旁邊,然後使用影像編輯器同時修改 LUT 影像和螢幕截圖。然後可以保存 LUT 並將其應用到遊戲引擎,以即時執行相同的色彩校正。

例如,在影像編輯器中修改 LUT 模板以使其呈現「棕褐色」外觀,結果如下圖所示:

../../_images/environment_adjustments_3d_lut_comparison.webp

備註

調整和色彩校正在色調對應*之後套用。這意味著上面定義的色調對應屬性在啟用調整時仍然有效。

其他建置選項

景深/遠模糊

此效果可模擬高端相機的焦距. 它模糊了給定範圍後面的物體. 它有一個 ** ** 距離 , ** 過渡 區域(世界單位):

../../_images/environment_dof_far.webp

The Amount parameter controls the amount of blur. For larger blurs, tweaking the depth of field quality in the advanced project settings may be needed to avoid artifacts.

景深/近模糊

此效果可模擬高端相機的焦距。它使靠近相機的物體模糊(在遠處模糊的相反方向上作用)。它具有 **Distance**(距離)以及 **Transition**(過渡)區域(使用世界單位):

../../_images/environment_dof_near.webp

** Amount ** 參數控制模糊量. 對於較大的模糊, 可能需要調整 品質 以避免偽影.

通常使用兩種模糊將觀眾的注意力集中在給定物件上。

../../_images/environment_mixed_blur.webp

備註

當使用 CameraAttributesPhysical 而不是 CameraAttributesPractical 時,景深是根據相機屬性的焦距、焦距和光圈自動計算的。

曝光

這會倍增相機可見的整體場景亮度。數值越高,場景視覺上越亮。

自動曝光

此選項僅在使用 GLES3 後端時適用。

儘管在大多數情況下, 照明和紋理都受到藝術家的嚴格控制, 但Godot通過自動曝光機制支援簡單的高動態範圍實作. 當將內部區域與低光和戶外相結合時, 這通常用於真實性. 自動曝光模擬相機(或眼睛), 以適應明暗位置和不同光量.

備註

自動曝光需要每影格評估場景的亮度,效能成本適中。因此,如果自動曝光對場景影響不大,建議停用它。

../../_images/environment_hdr_autoexp.webp

使用自動曝光的最簡單方法是確保室外燈光(或其他強光)的能量超過 1.0。這是通過調整它們的 Energy 乘數(對燈光本身)來實作的。為了使其保持一致,Sky 通常也需要使用能量乘數,以配合平行光。通常情況下,數值在 3.0 到 6.0 之間,就足以模擬室內室外條件。

通過將自動曝光與 Glow 後處理相結合(更多內容如下),超過色調對應 White 的像素將會逸出至輝光緩衝區,從而在攝影中創造典型的泛光效果。

../../_images/environment_hdr_bloom.webp

自動曝光 部分中的使用者可控值具有合理的預設值, 但您仍然可以調整它們:

../../_images/environment_hdr.webp
  • 比例: 用於縮放照明的值. 較亮的值會產生較亮的圖像, 較小的值會產生較暗的圖像.

  • ** Min Luma:** 自動曝光旨在調整的最小亮度. 亮度是螢幕所有像素中光線的平均值.

  • 最大靈敏度/最大曝光值: 自動曝光旨在調整的最大亮度(使用 CameraAttributesPractical 時在 ISO 中,或使用 CameraAttributesPhysical 時在 EV100 中)。

  • 速度: 亮度校正的速度. 值越高, 發生的校正越快.

使用 CameraAttributesPractical 時,使用 ISO 中定義的*靈敏度*而不是 EV100 中的曝光值來設定曝光。典型的 ISO 值在 50 到 3200 之間,數值越高,最終曝光越高。現實生活中,白天攝影一般使用100到800之間的ISO值。

也參考

如果您希望使用現實世界的單位來配置相機的曝光、視野和景深,請參閱 doc_physical_light_and_camera_units`。