Lighting

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
服务

Lighting 服务控制体验中的全球照明。它包括一系列可调整的属性,您可以使用它来改变灯光的显示和与其他对象的互动方式,如在 灯光属性 中概述的。

Lighting 也可能包含一个 Atmosphere 对象来渲染真实的大气效果,包括粒子密度、雾、闪光和颜色。请参阅大气效应获取详细信息。

此外,(以及)可能包含后期处理效果,例如和。

概要

属性

方法

活动

属性

Ambient

读取并联

Ambient 是应用于被天空遮蔽的区域,例如室内区域的照明色调。

Ambient 默认为 [0, 0, 0] (黑色)。只要这个属性的红、绿、蓝通道不超过相应通道在 OutdoorAmbient 中,调色将保留给被太阳/月亮遮蔽的区域

注意,当 GlobalShadows 被禁用时,天空被遮蔽的区域和未被遮蔽的区域之间没有区别。在这种情况下,OutdoorAmbient将被忽略,从Ambient属性的颜色将被应用到所有地方。

Brightness

读取并联

地场景的照明强度。

更改此值会影响光源(太阳或月亮)对场场景照明的影响。请注意,AmbientOutdoorAmbient 也可以用来影响地方的亮度。例如,将 设置为 将使地方显得比其默认值 (因为它更白)更亮。

ClockTime

未复制
读取并联

用于 Lighting 的当前时间的数字表示(以小时计)。请注意,这个属性不会与实际时间相匹配,在游戏期间不会更改,除非它被脚本更改。

对于长度为 Lighting 时间格式为 24 小时字符串的测量,请使用 TimeOfDay。更改 TimeOfDay 或使用 SetMinutesAfterMidnight() 也会更改此属性。

ColorShift_Bottom

读取并联

在光中反映的色调与面向太阳或月亮的表面相反。

受到 影响的 表面取决于对太阳或月亮位置的相对位置和方向。当太阳直接在BasePart上方时,颜色切换仅适用于底部表面。

这个效果可以通过修改 Brightness 来增加或减少。

请注意,ColorShift_TopColorShift_Bottom 将与AmbientOutdoorAmbient 属性互动,如果它们大于 。请注意,当 ColorShift_Bottom 启用时,识别 GlobalShadows 的影响可能很难 (默认启用)。

ColorShift_Top

读取并联

表示在阳光或月亮面前的表面上反射的色调。

受到 影响的 表面取决于对太阳或月亮位置的相对位置和方向。当太阳直接在BasePart上方时,颜色切换仅适用于顶部表面。

这个效果可以通过修改 Brightness 来增加或减少。

请注意,ColorShift_TopColorShift_Bottom 将与AmbientOutdoorAmbient 属性互动,如果它们大于

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 属性被更改或添加到 Sky 或移除到 Lighting 时,此事件会触发,但有一些例外:

在这种行为不被允许的情况下,可以使用 Object.Changed 事件或 Object:GetPropertyChangedSignal() 方法。

参数

skyChanged: boolean