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.

物理燈光與相機單位

為什麼使用物理燈光和相機單元?

Godot 對許多適用於光的物理屬性(如顏色、能量、相機視野和曝光)使用任意單位。預設情況下,這些屬性使用任意單位,因為使用精確的物理單位會帶來一些權衡,這對於許多遊戲來說是不值得的。由於 Godot 在預設情況下下注重易用性,因此預設會停用實體光單元。

物理單位的優點

如果您的目標是在專案中實作照片級真實感,那麼使用現實世界的單位作為基礎可以幫助您更輕鬆地進行調整。有關現實世界材質、燈光和場景亮度的參考資料可以在「基於物理 <https://physicallybased.info/>」等網站上找到。

當從使用物理光單位的其他 3D 軟體(例如 Blender)移植場景時,在 Godot 中使用現實世界單位也很有用。

物理單位的缺點

使用實體光單元的最大缺點是您必須密切注意給定時間使用的動態範圍。將非常高的光強度與非常低的光強度混合時,可能會遇到浮點精度錯誤。

實際上,這意味著您必須手動管理曝光設定,以確保場景不會過度曝光或曝光不足。自動曝光可以幫助您平衡場景中的光線,使其進入正常範圍,但它無法恢復因動態範圍過高而損失的精確度。

使用實體光和相機單元不會自動讓您的專案看起來*更好*。有時,遠離現實主義實際上可以讓場景在人眼看來更好。此外,與非物理單位相比,使用物理單位需要更嚴格的要求。只有正確設定物理單位以符合現實世界的參考,才能獲得物理單位的大多數好處。

備註

物理光單位僅在 3D 算繪中可用,在 2D 算繪中不可用。

設定實體光源單位

實體光單元可以與實體相機單元分開啟用。

要正確啟用物理光單元,需要 4 個步驟:

  1. 啟用專案設定。

  2. 設定攝影機。

  3. 設定環境。

  4. 設定 Light3D 節點。

由於實體光和相機單元僅需要少量計算來處理單位轉換,因此啟用它們不會對 CPU 產生任何明顯的效能影響。然而,在 GPU 方面,實體相機單元目前強制執行景深。這對性能有中等影響。為了減輕這種效能影響,可以在進階專案設定中降低景深品質。

啟用專案設定

開啟專案設定,啟用**高級**開關,然後啟用**算繪>燈光和陰影>使用物理光單位**。重新啟動編輯器。

設定攝影機

警告

當啟用實體光源單位,且場景內有 WorldEnvironment 節點(例如編輯器 Environment 已停用)時,你**必須**將 CameraAttributes 資源指定給 WorldEnvironment 節點。否則,如果場景內有可見的 DirectionalLight3D 節點,3D 編輯器檢視區將會非常明亮。

在 Camera3D 節點上,你可以將 CameraAttributes 資源加入其 Attributes 屬性。這個資源可用來控制攝影機的景深與曝光。當你使用 CameraAttributesPhysical 時,其焦距屬性也會用來調整攝影機的視野。

啟用物理光單位後,CameraAttributesPhysical 的 Exposure 部分中將提供以下附加屬性:

  • 光圈: 相機光圈的大小,以光圈值為單位測量。光圈值是相機焦距與光圈直徑之間的無單位比率。高光圈設定將導致較小的光圈,從而導致影像更暗和焦點更清晰。低光圈會導致大光圈,讓更多的光線進入,產生更亮、聚焦度更低的影像。

  • 快門速度: 快門開啟和關閉的時間,以*倒數秒* (1/N) 為單位測量。較低的值將允許更多的光線進入,從而導致影像更亮,而較高的值將允許較少的光線進入,從而導致影像更暗。 使用腳本取得或設定此屬性時,單位為秒,而不是秒的倒數。

  • 靈敏度: 相機感光元件的靈敏度,以 ISO 為單位測量。靈敏度越高,影像越亮。當啟用自動曝光時,這可以用作曝光補償的方法。該值加倍將使曝光值(以 EV100 測量)增加 1 級。

  • 乘數: * 非物理*曝光乘數。較高的值將增加場景的亮度。這可用於後製調整或動畫目的。

預設 光圈 值 16 光圈值適合白天戶外使用(即與預設 DirectionalLight3D 一起使用)。對於室內照明,2 到 4 之間的值更合適。

攝影和電影製作中使用的典型快門速度為 1/50(0.02 秒)。夜間攝影一般使用1/10(0.1秒)左右的快門,而運動攝影則使用1/250(0.004秒)至1/1000(0.001秒)之間的快門速度以減少運動模糊。

現實生活中,白天戶外攝影會根據天氣狀況,感光度通常設定在 50 ISO 到 400 ISO 之間。較高的值用於室內或夜間攝影。

備註

與現實生活中的相機不同,Godot 中不會模擬提高 ISO 感光度或降低快門速度(例如可見顆粒或光跡)的不利影響。

詳見 設定實體攝影機單位 ,該處也說明了在**未**使用實體光源單位時仍可使用的 CameraAttributesPhysical 屬性。

設定環境

警告

預設配置是針對白天戶外場景設計的。夜間和室內場景需要調整 DirectionalLight3D 和 WorldEnvironment 背景強度才能看起來正確。否則,位置燈在預設強度下幾乎不可見。

如果你尚未將 WorldEnvironmentCamera3D 節點加入目前場景,請點擊 3D 編輯器檢視區上方的三個垂直點。點選 加入太陽至場景,再重複開啟對話框並點選 加入環境至場景

啟用物理光單元後,可以在 Environment 資源中編輯一個新屬性:

  • 背景強度: 背景天空的強度,以 nits (每平方公尺燭光)為單位。如果環境光或反射光模式設為 背景 ,這也會影響它們。若自訂 背景能量,則會將強度與能量相乘。

設定光源節點

啟用物理光單元後,Light3D 節點中有 2 個新屬性可用:

  • 強度: 光源的強度,對 DirectionalLight3D 為 lux,對 OmniLight3D/SpotLight3D 為 lumens。如有自訂 能量,則會將能量與強度相乘。

  • 色溫: 光源的*色溫*,以開爾文為單位。若自訂 顏色,則該顏色會與色溫相乘。

OmniLight3D/SpotLight3D 強度

流明是光通量的量測,是光源每單位時間所發出的可見光總量。

對於 SpotLight3D,我們假設可見錐體外部的區域被完美的光吸收材料包圍。因此,錐體區域的表觀亮度不會隨著錐體尺寸的增加和減少而改變。

典型的家用燈泡的亮度範圍約為 600 流明至 1200 流明。一支蠟燭的亮度約為 13 流明,而一盞路燈的亮度約為 60000 流明。

DirectionalLight3D 強度

勒克斯是單位面積光通量的度量,等於每平方公尺一流明。勒克斯是在給定時間內照射到表面的光量的度量。

使用 DirectionalLight3D,在晴朗的晴天,陽光直射下的表面可能會接收到大約 100000 勒克斯。家中的典型房間可能接收到大約 50 勒克斯的亮度,而月光照射下的地面可能接收到大約 0.1 勒克斯的亮度。

色溫

6500 開爾文是白色。較高的值會導致較冷(較藍)的顏色,而較低的值會導致較暖(較橙色)的顏色。

陰天的太陽溫度約為 6500 開爾文。晴天時,太陽溫度在 5500 至 6000 開爾文之間。在晴朗的日子裡,日出或日落時,太陽溫度約為 1850 開爾文。

色溫圖從 1,000 開爾文(左)到 12,500 開爾文(右)

色溫圖從 1,000 開爾文(左)到 12,500 開爾文(右)

其他 Light3D 屬性(例如 EnergyColor) 出於動畫目的以及偶爾需要建立具有非真實屬性的燈光時仍可編輯。

設定實體攝影機單位

實體相機單元可以與實體燈光單元分開啟用。

CameraAttributesPhysical 資源新增至 Camera3D 節點的 Camera Attributes 屬性後,某些屬性(例如 FOV)將不再可編輯。相反,這些屬性現在由 CameraAttributesPhysical 的屬性(例如焦距和光圈)控制。

CameraAttributesPhysical 在其 Frustum 部分中提供以下屬性:

  • 對焦距離: 將對焦的物體與相機的距離,以公尺為單位測量。在內部,這將被限制為至少比 焦距 大 1 毫米。

  • 焦距: 相機鏡頭和相機光圈之間的距離,以毫米為單位測量。控制視野和景深。焦距越大,視野越小,景深越窄,這意味著聚焦的物體更少。較小的焦距將導致更寬的視野和更大的景深,這意味著更多的物體將成為焦點。此屬性會覆寫 Camera3D 的 FOVKeep Aspect 屬性,使它們在屬性檢視器中為唯讀。

  • 近/遠: 近和遠距離剪輯距離(以公尺為單位)。它們的行為與同名的 Camera3D 屬性相同。較低的**近**值允許相機顯示非常近的物體,但代價是遠處可能存在精度(Z-fight)問題。較高的 值允許相機看得更遠,但也以遠處潛在的精度(Z-fighting)問題為代價。

預設焦距 35 毫米對應於廣角鏡頭。與預設的 75 度「實用」垂直 FOV 相比,它的視野仍然明顯更窄。這是因為電影製作和攝影等非遊戲用例更喜歡使用較窄的視野來獲得更具電影感的外觀。

電影製作和攝影中常用的焦距值有:

  • 魚眼(超廣角): 15 毫米以下。幾乎看不到景深。

  • 廣角: 15 毫米至 50 毫米之間。景深減小。

  • 標準: 50 毫米至 100 毫米之間。標準景深。

  • 長焦: 大於 100 毫米。景深增加。

與使用 保持高度 寬高比模式時一樣,有效視野取決於視口的寬高比,較寬的寬高比會自動產生更寬的「水平」視野。

還可以在 自動曝光 部分啟用基於相機平均亮度等級的自動曝光調整,具有以下屬性:

  • 最小靈敏度: 相機允許達到的最暗亮度,以 EV100 為單位測量。

  • 最大靈敏度: 相機允許達到的最亮值,以 EV100 為單位測量。

  • 速度: 自動曝光效果的速度。影響相機執行自動曝光所需的時間。較高的值允許更快的過渡,但根據場景的不同,最終的調整可能看起來會分散注意力。

  • 比例: 自動曝光效果的比例。影響自動曝光的強度。

EV100 是在 ISO 感光度為 100 時測量的曝光值 (EV)。有關現實生活中常見的 EV100 值,請參閱「此表 <https://en.wikipedia.org/wiki/Exposure_value#Tabulated_exposure_values>」。