Lighting

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

無法建立
服務

服務 Lighting 控制體驗中的全球照明。它包括一系列可調整的屬性,您可以使用它來變更照明的外觀和與其他對象的互動方式,如在 照明屬性 中總結的。

Lighting 也可能包含一個 Atmosphere 對象來渲染實際的大氣效果,包括粒子密度、霧、閃光和顏色。見 大氣效應 了解詳情。

此外, Lighting (以及 Workspace.CurrentCamera) 可能包含 後期處理效果 ,例如 SunRaysEffectBlurEffect .

概要

屬性

方法

活動

屬性

Ambient

平行讀取

Ambient 是適用於被天空遮蓋的區域,例如室內區域的照明顏色。

Ambient 預設為 [0, 0, 0] (黑色)。只要這個屬性的紅、綠、藍通道不超過對應通道在 OutdoorAmbient 中,顏色變更將用於遮蓋太陽/月亮的區域。

注意,當 GlobalShadows 被禁用時,從天空遮蓋的區域和未遮蓋的區域之間沒有區別。在這種情況下,OutdoorAmbient將被忽略,從Ambient屬性的顏色將在所有地方應用。

Brightness

平行讀取

場空間的照明強度。

變更此值會影響光源(太陽或月亮)對場空間的照明影響。請注意,AmbientOutdoorAmbient也可以用來影響地方的亮度。例如,將 設置為 將使地方看起來比預設值 更亮(因為它更白)。

ClockTime

未複製
平行讀取

數值代表(以小時表示)當前由 Lighting 使用的時間。請注意,此屬性不會與實際時間相對應,在遊戲期間不會更改,除非它被腳指令碼更改。

對於格式為 Lighting 時間的測量,使用 TimeOfDay 。變更 TimeOfDay 或使用 SetMinutesAfterMidnight() 也會更改此屬性。

ColorShift_Bottom

平行讀取

在光中反映的色彩與正面對著太陽或月亮的表面相反。

受到 BasePart 影響的 ColorShift_Bottom 表面取決於太陽或月亮位置相對於 BasePart 的位置和方向。當太陽直接在BasePart上方時,顏色切換只適用於底部表面。

這個效果可以通過修改 Brightness 來增加或減少。

請注意,ColorShift_TopColorShift_Bottom 將與 AmbientOutdoorAmbient 屬性互動,如果它們大於 [0, 0, 0] 。請注意,當 ColorShift_Bottom 啟用時,識別 GlobalShadows 的影響可能很困難 (預設值)。

ColorShift_Top

平行讀取

表示在陽光或月亮面前的表面上反射的顏色。

受到 BasePart 影響的 ColorShift_Top 表面取決於太陽或月亮位置相對於 BasePart 的位置和方向。當太陽直接在BasePart上方時,顏色切換只適用於最上層。

這個效果可以通過修改 Brightness 來增加或減少。

請注意,ColorShift_TopColorShift_Bottom 將與 AmbientOutdoorAmbient 屬性互動,如果它們大於 [0, 0, 0]

EnvironmentDiffuseScale

平行讀取

環境中的環境光,默認值為 0 。這個屬性與 AmbientOutdoorAmbient 相似,但是它是動態的,可以根據天空和時間變化。當此屬性增加時,建議減少 AmbientOutdoorAmbient 相應地減少。

EnvironmentSpecularScale

平行讀取

從環境中得到的反射光,默认值為 0 。這個特性會讓平滑對象反映環境,特別是使金屬看起來更具現實感。

ExposureCompensation

平行讀取

此屬性決定了曝光補償量,會對場景的曝光等級在調色圖步驟之前進行偏移。預設為 0 (無曝光補償),範圍為 -55 。值 1 表示兩倍的暴露量,值 -1 表示一半的暴露量。

FogColor

平行讀取

一個 值提供了霧的色調。注意,當 > 包含 個對物件時,霧的屬性會被隱藏。

FogEnd

平行讀取

Workspace.CurrentCamera 的深度,以厘米為單位,在那裡霧將完全不透明。注意,當 Lighting 包含 Atmosphere 對物件時,霧屬性會隱藏。

FogStart

平行讀取

Workspace.CurrentCamera 的深度,以厘米為單位,在此開始顯示霧。注意,當 Lighting 包含 Atmosphere 對物件時,霧屬性會隱藏。

GeographicLatitude

平行讀取

場景的地理緯度,以度計,對太陽和月亮的位置影響 Lighting 時間的結果。當計算太陽的位置時,地球的傾斜也會被考帳號。

變更 GeographicLatitude 將在每次 TimeOfDay 改變太陽的位置。如果您想獲得太陽或月亮的位置,請使用 GetSunDirection()GetMoonDirection()

GlobalShadows

平行讀取

在空間方切換基於體素的動態燈光。當設為 true 時,陰影會在太陽和月亮位置的保護區中渲染。對這些受保護區域的照明顏色由 Ambient 屬性決定,而對所有其他區域的照明顏色由 OutdoorAmbient 屬性決定。

false 時,陰影不會被繪製,並且室內和室外區域之間沒有區分。因結果,Ambient屬性決定了照明顏色,而OutdoorAmbient將不做任何操作。

陰影使用沃克斯系統計算,每個照明沃克斯是 4×4×4 格。這意味著物件必須比 4×4×4 格大才能顯示出現實的陰影。陰影也會在 BaseParts 移動時重新計算。

LightingStyle

無法建立指令碼
平行讀取

OutdoorAmbient

平行讀取

OutdoorAmbient 是應用於戶外區域的照明顏色。

OutdoorAmbient 預設為 [127, 127, 127] 。只要 Ambient 的紅、綠、藍通道不超過對應通道在 OutdoorAmbient 中,戶外區域的燈光顏色就會由此屬性決定。

有效的 OutdoorAmbient 值被限制為大於或等於 Ambient 在所有通道上,這意味著如果一個通道的 Ambient 超過相應的 OutdoorAmbient 頻道,顏色的 Ambient 將開始適用於戶外區域。

注意,當 GlobalShadows 被禁用時,從天空遮蓋的區域和未遮蓋的區域之間沒有區別。在這種情況下,OutdoorAmbient將被忽略,從Ambient屬性的顏色將在所有地方應用。

PrioritizeLightingQuality

無法建立指令碼
平行讀取

ShadowSoftness

平行讀取

控制陰影模糊度的預設值為 0.2 。此屬性只在 Technology 模式為 ShadowMapFuture 且裝置能夠渲染陰影地圖時才能運作。

Technology

Roblox 指令碼安全性
平行讀取

決定渲染 3D 世界的照明系統。此屬性不可寫入並只能在工作室中修改。請參閱 Enum.Technology 獲得可用選項,以及 照明技術 提供每個選項的詳細說明和視覺效果。

TimeOfDay

平行讀取

Lighting 使用的 24 小時字串代表當前時間的表示。請注意,此屬性不會與實際時間相對應,在遊戲期間不會更改,除非它被腳指令碼更改。

對於數字測量的 Lighting 時間,使用 ClockTime 。變更 ClockTime 或使用 SetMinutesAfterMidnight() 也會更改此屬性。

方法

GetMinutesAfterMidnight

平行寫入

返回在午夜後通過的分鐘數,用於點亮。這個數字將與 ClockTime 乘以 60 幾乎相同。

請注意,此數字不一定會等於在 SetMinutesAfterMidnight() 中提供的值,因為它會在當前日期的午夜後返回分鐘。


返回

午夜後的分鐘數。

GetMoonDirection

平行寫入

返回一個 Vector3 代表月亮方向從位置 (0, 0, 0) 。注意,當月亮「設設定」並不再可見時,這個方法返回的 Vector3 將繼續指向地平線下的月亮。

GetSunDirection() 是取得太陽方向的變體方法。


返回

Vector3 代表月亮的方向。

GetMoonPhase

返回月亮目前的階段。沒有方法可以更改月亮的階段,因此這將永遠返回 0.75


返回

GetSunDirection

平行寫入

返回一個 Vector3 代表太陽方向從位置 (0, 0, 0) 。請注意,當太陽「設設定」並不再可見時,這個方法返回的 Vector3 將繼續指向地平線下的太陽。

GetMoonDirection() 是取得月亮方向的變體方法。


返回

Vector3 代表太陽的方向。

SetMinutesAfterMidnight

()

TimeOfDayClockTime 設置為午夜後指定的分鐘數。

這個方法允許使用數字值,例如在一天/夜週期 Script 中,而無需轉換為 TimeOfDay 所需的格式。它也允許提供超過 24 小時的值,對應於下一天的時間。

以下代碼示例包含簡單的日/夜周期指令碼。使用 TIME_SPEEDSTART_TIME 參數可以更改時間速度和初始時間。


local Lighting = game:GetService("Lighting")
local TIME_SPEED = 60 -- 1 分 = 1 小時
local START_TIME = 9 -- 9 AM
local minutesAfterMidnight = START_TIME * 60
local waitTime = 60 / TIME_SPEED
while true do
minutesAfterMidnight = minutesAfterMidnight + 1
Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)
task.wait(waitTime)
end

參數

minutes: number

午夜後的分鐘數。

預設值:""

返回

()

活動

LightingChanged

Lighting 屬性發生變更或 SkyLighting 移除或添加時,此事件會發生,但有一些例外:

在這種行為不需要的情況下,可以使用 Object.Changed 事件或 Object:GetPropertyChangedSignal() 方法。

參數

skyChanged: boolean