Realistic 光照是您可以在体验中用于渲染 3D 环境的最先进和最强大的 LightingStyle。它提供了像素完美的光照发射、细致的阴影和模拟现实世界光照的高光,适用于室内和室外空间。
使用 Lighting Indoors - Start .rbxl 文件作为起点,并将 Lighting Indoors - Complete 作为参考,本教程展示了如何利用真实光照以及战略性的全局和局部光源配置,生成真实的、沉浸式的室内光照行为,以引导玩家走向小屋的出口,包括以下指导:
- 确保光亮表面拥有准确的反射,且会随着环境的动态变化定期更新。
- 将太阳和地球移动到新的位置,以便将阳光从窗户倾斜到特定的表面。
- 自定义气氛的环境色调和密度。
- 选择光源以应对独特的环境问题,同时考虑性能和优化。
- 根据相机对光照行为的感知来平衡光源。
如果在过程中遇到困难,可以使用 Lighting Indoors - Complete 作为参考来比较您的进展。


配置全局光照
全局光照是来自体验中的太阳或月亮的光亮。虽然本教程专注于增强小屋内部的光照(被阳光遮蔽),但配置全局光照很重要,因为它影响体验的一般环境中的空气颗粒,无论它们是在室内还是室外。
通过调整 Lighting 服务及其子 Atmosphere 对象中的几个关键默认属性,您可以显著改变空气和通过窗户进来的阳光在玩家眼中的外观,以及这些光照与您放置在体验中的任何其他对象的交互方式。
启用真实光照
LightingStyle 属性决定了体验中的全局和局部光照行为。工作室开始每个体验时使用 Soft 光照,这会产生更平坦的外观,使用更柔和的光和阴影。然而,要增强环境并使您的局部光源也能产生精确的阴影、照明和高光,您必须启用 Realistic 光照。
这种光照配置允许您的全局和局部光源共同工作,提供更加真实和沉浸的视觉效果。为了演示这一点,检查当 Lighting Indoors - Complete 使用不同光照风格时,收音机的光照行为是如何变化的。使用 Soft 光照风格的烛光和收音机的局部光照无法产生像来自太阳的全局光照那样的阴影,收音机的皮革和木材材料的细节也会消失。
需要注意的是,由于 Realistic 光照系统检测室内空间以计算和渲染适用阴影的方法,因此最好用 Part 对象将室内空间围住,厚度至少为 1 stud,以防止不必要的室外光线泄漏到小屋内。例如,为了避免室内和室外光照混合,示例 Lighting Indoors - Start 使用至少 2.5 studs 厚的部件将所有 MeshPart 墙壁和天花板对象包围,而不阻碍窗户,以便阳光仍然可以照射进房间。


要启用 Realistic 光照:
在 资源管理器 窗口中,选择 Lighting。
在 属性 窗口中,单击 LightingStyle 下拉菜单,然后选择 Realistic。

增强金属反射
使用真实光照的一个核心优势是其能够在光亮的金属表面上产生高光。这增加了室内环境的真实感,因为它模拟了现实世界光照的行为,并为 3D 空间中的物体提供了深度感。
默认情况下,所有材质使用 物理基础渲染(PBR)纹理,这允许您在各种光照场景下使用多个纹理图层在单个对象上显示逼真的表面。这意味着当您使用工作室内置材质时:
- 特定表面的金属性和粗糙度已经为您定义,无需额外步骤。
- 使用工作室内置材质的对象会更准确地响应环境中的光照,并提供真实的反射。
通过增加全局光照的 Lighting.EnvironmentDiffuseScale 和 Lighting.EnvironmentSpecularScale 属性值来增强此效果,特别是当您将每个属性设置为 1 时。这一步在本教程中尤其重要,因为它确保体验中的任何 PBR 纹理,包括来自 MaterialVariants 或 SurfaceAppearance 对象的纹理,能够展现最佳效果,并准确反射周围环境。
为了演示这一概念,请检查不同 Lighting.EnvironmentDiffuseScale 和 Lighting.EnvironmentSpecularScale 属性值下蜡烛金属底座的情况。当您增加这些值时,金属会更准确地反射来自全局和局部光源的光线,这使得材料在玩家探索环境时更具触感。
要在示例 Lighting Indoors - Complete 位置文件中重建金属反射:
- 在 资源管理器 窗口中,选择 Lighting。
- 在 属性 窗口中,确保 EnvironmentalDiffuseScale 和 EnvironmentSpecularScale 设置为 1。如果是,则体验中的金属反射将准确无误。
改变时间
除了自定义 3D 空间的整体气氛外,全局光照在创建您希望玩家探索的环境中的兴趣点方面也是一个强大的工具。当您将此技巧与局部光源搭配使用时,您可以间接引导玩家进入游戏区域的每个部分,确保他们不会错过任何重要内容。
为了演示这一过程,Lighting Indoors - Complete 示例将太阳战略性地重新定位,使其光线按角度照射到小屋内,突出小屋的唯一门。在玩家扫描房间时,每个光源间接吸引玩家的注意,顺时针引导他们:首先是壁炉的局部光源,其次是靠近窗户的全局和局部光源,最后是照射出口的全局光源。

要在示例 Lighting Indoors - Complete 位置文件中重建时间:
在 资源管理器 窗口中,选择 Lighting。
在 属性 窗口中,
- 将 ClockTime 设置为 15.6。太阳移动到大约 3:45 pm 的位置。
- (可选) 将 GeographicLatitude 设置为 323。

放大太阳光线
现在太阳位于理想的位置,通过窗户照射光线并创建兴趣点,您可以使用 Lighting 服务的子对象 SunRays 通过放大其单独的太阳光线来夸大太阳的光照。与其他静态环境效果不同,太阳光线会随着物体在玩家相机与太阳之间的变化而动态地改变形状,从而创建真实的光影效果。
为了演示,检查在增加强度和扩散时太阳光线的形状是如何变化的。使用默认配置的太阳光线微微靠近窗户,而使用自定义配置的太阳光线则照射进小屋。除了增强视觉效果外,这一效果还改善了稍后教程中的空气颗粒密度效果,因为太阳光线从几乎每个角度突显出稠密的空气颗粒。


要在示例 Lighting Indoors - Complete 位置文件中重建大气中的太阳光线:
- 在 资源管理器 窗口中,选择 Lighting 服务的子对象 SunRays。
- 在 属性 窗口中,
- 将 Intensity 设置为 0.023,以增加阳光光环的透明度。
- 将 Spread 设置为 0.266,以加大太阳光线在天空中的扩散。
调整环境光颜色
自定义环境光的颜色,或 3D 空间中的一般间接光,是设置环境气氛和确定其照明是温暖还是凉爽的常见方法。有两个 Lighting 属性控制环境光的颜色:
- Lighting.OutdoorAmbient 控制可以看到天空的环境光。
- Lighting.Ambient 控制在任何阻挡天空的空间内的环境光,例如室内环境。
默认情况下,这两个属性设置为产生冷灰色调,但这与小屋内的光源并不匹配。为了解决这个问题,Lighting Indoors - Complete 示例调整了 Lighting.Ambient 的设置,以生成匹配壁炉和蜡烛火光的温暖的橙色调,以及落日的光辉。虽然这个变化很微妙,但您可以在间接照明区域(比如地板上的阴影)显著看到差异。


要在示例 Lighting Indoors - Complete 位置文件中重建环境光的颜色:
在 资源管理器 窗口中,选择 Lighting。
在 属性 窗口中,将 Ambient 设置为 83, 70, 57。环境光变为更加温暖和暗的橙色调。

选择一个互补的天空盒
Lighting 服务具有一个子对象 Sky,其中六个单独的属性共同创建了构成体验天空的天空盒。天空盒可以对环境的外观和感觉产生重大影响,因此仔细考虑如何选择一个增强体验视觉质量的天空盒很重要,尤其是它影响渗透到室内空间的整体氛围。
因为 Lighting Indoors - Complete 示例需要温暖的氛围,所以它使用一个主要优先考虑天空线附近的温暖色调的天空盒,例如明亮的黄色、生动的橙色和一些淡绿色。有关如何创建和自定义天空盒的信息,请参阅 天空盒。






要在示例 Lighting Indoors - Complete 位置文件中重建天空盒:
在 资源管理器 窗口中,选择 Lighting 服务的子对象 Sky。
在 属性 窗口中,
- 将 SkyboxBk 设置为 rbxassetid://162001887。
- 将 SkyboxDn 设置为 rbxassetid://161998893。
- 将 SkyboxFt 设置为 rbxassetid://162001897。
- 将 SkyboxLf 设置为 rbxassetid://162001904。
- 将 SkyboxRt 设置为 rbxassetid://162001919。
- 将 SkyboxUp 设置为 rbxassetid://162001926。

增加空气颗粒密度
Lighting 服务的子对象 Atmosphere 具有允许您通过以独特的方式散射阳光来模拟真实环境的属性。虽然有些属性在室外环境中更为明显,例如那些影响远处物体在天空线附近的轮廓和混合的属性,但其他属性影响整个 3D 空间中存在空气颗粒的密度和颜色,无论它们是在室内还是室外。
例如,Atmosphere.Density 属性控制您体验中空气中存在多少颗粒。当您增加此属性时,额外的颗粒会在 3D 空间中产生厚度和重量的感觉,这对正在探索您的世界的玩家来说是可触及的。这有助于在没有明显的局部光照对象的情况下为环境添加纹理和间接光照。
为了说明这一技巧,请查看 Lighting Indoors - Complete 小屋的以下两张图像,展示不同空气颗粒密度的效果。当 Atmosphere.Density 设置为 0 时,小屋即使有局部光源也显得寒冷而黑暗,但当 Atmosphere.Density 设置为 0.5 时,小屋则显得温暖而朦胧。此效果尤为显著,因为 Atmosphere 对象根据天空盒的颜色为空气颗粒增加了温暖的橙色调。

要在示例 Lighting Indoors - Complete 位置文件中重建大气的空气颗粒密度:
在 资源管理器 窗口中,选择 Lighting 服务的子对象 Atmosphere。
在 属性 窗口中,将 Density 设置为 0.5。空气变得朦胧。

配置局部光照
局部光照是您体验中来自局部 光源 的光亮,例如 PointLight、SpotLight 和 SurfaceLight 对象。在您配置好全局光照以满足体验的一般照明和气氛需求后,利用这些局部光源以满足您希望在 3D 空间中照亮景象中的特定光照需求就显得重要。
以下部分演示如何创建每种类型的局部光源,并调整其几个默认属性,以显著改变局部光照对全局光照的补充效果及其与整体环境的互动。
照亮蜡烛
场景中需要照亮空间的第一个物体是窗边梳妆台上的蜡烛组合。在 Lighting Indoors - Start 示例中的默认配置包括以下 ParticleEmitter 对象,以为其火焰增添柔和的运动:
- CandleFire - 生成 tapered 颗粒以模拟蜡烛的火焰。
- CandleSmoke - 生成深色 tapered 颗粒以模拟蜡烛的烟雾。
- CandleFillLight - 生成圆形颗粒以模仿蜡烛的柔和光泽。
虽然这是一个很好的开端,但蜡烛仍然不会产生能够充分照亮周围区域或反射周围物体的真实光照行为。为了解决这个照明需求,Lighting Indoors - Complete 示例在蜡烛组合中引入了 PointLight 对象。
PointLight 对象从单个点在各个方向发光,就像一个小太阳。这种光照行为使它们适合发出全方位光源的物体,如未遮盖的灯泡、火炬和蜡烛光。为了说明这一点,请查看以下两张蜡烛局部光源有无点光源的场景图。没有点光源的场景只产生蜡烛本身的柔和光照,而有点光源的场景则产生更强的光照,照亮蜡烛、附近墙壁和雕像的细微细节。


在低端设备上,点光源比其他局部光源对性能要求更高,因为点光源向各个方向投射。为了优化体验,请考虑在不影响理想照明行为的情况下所需的点光源数量。例如,在蜡烛中仅放置一个点光源,因为每根蜡烛火焰都足够小,单独的点光源不会显著增强游戏区域内的视觉效果。
要在示例 Lighting Indoors - Complete 位置文件中重建蜡烛局部照明:
在一个蜡烛组合中插入一个点光源。
- 在 资源管理器 窗口中,展开 Candle_Group_A 模型。
- 将鼠标悬停在 FillLight 部件上,然后单击 ⊕ 图标。会显示上下文菜单。
- 从上下文菜单中插入一个 PointLight。
选择新点光源,然后在 属性 窗口中,
- 将 Brightness 设置为 0.7,以降低光源的强度,使其与烛光更兼容。
- 将 Color 设置为 255, 202, 156,将光线渲染为桃色,以复现烛光的温暖感。
- 启用 Shadows 以使蜡烛光产生阴影。
对 Candle_Group_B 重复此过程。
(可选) 使用上面的相同技术向壁炉中燃烧的火添加您的配置点光源,以照亮其火焰。
打开台灯
场景中需要照亮空间的第二个对象是靠近小屋后角的台灯。在决定您想使用哪种局部光照对象时,回顾光源的类型和形状对其在现实世界中照射光线的影响非常重要。例如,由于 Lighting Indoors - Start 示例的台灯下方有一个白色灯泡,覆盖着一个弯曲的深绿色灯罩,该灯必须产生两种不同类型的光:
- 明亮的白光,仅照射到桌子方向。
- 微弱的绿色光,通过深绿色灯罩向其他方向漏出,除了明亮的白光方向。
为了解决第一个光照需求,Lighting Indoors - Complete 示例在台灯中引入了 SpotLight,以从台灯罩未遮盖的地方向外照射。SpotLight 对象沿着一条方向以锥形发光,带有一个球形底座,并包括一个 Face 属性,用于决定哪一面/轴发光。这使它们的光照行为非常适合发出方向性光源的物体,例如路灯、手电筒和大灯。
为了解决第二个光照需求,该示例使用提供微弱绿色光的 PointLight,以照亮小屋角落的整个空间,而不会明显影响明亮的白光。为了说明这一点,请查看以下两张没有额外点光源和有点光源的场景图。两个场景都包括可比较的明亮白光,但带有点光源的场景产生了真实的光照行为,折射到附近的雕像和书架,使小屋的角落可见,并形成兴趣点。


要在示例 Lighting Indoors - Complete 位置文件中重建台灯局部光照:
在一个蜡烛组合中插入一个聚光灯。
- 在 资源管理器 窗口中,展开 Bankers_Lamp 模型,然后展开 Lamp_Hood 网格。
- 将鼠标悬停在 Lightbulb 网格上,然后单击 ⊕ 图标。会显示上下文菜单。
- 从上下文菜单中插入一个 SpotLight。

选择新聚光灯,然后在 属性 窗口中,
- 将 Face 设置为 Bottom,以将聚光灯照射到桌子上。
- 将 Angle 设置为 140,以便光线呈半球形,而非锥形。
- 将 Brightness 设置为 4,以增强光的强度。
- 将 Color 设置为 255, 238, 202,将光线渲染为浅棕色调,以重现台灯源的微妙温暖。
- 将 Range 设置为 12,以减小聚光灯照射的区域,确保光能触及地面。
- 启用 Shadows,让灯光产生阴影效果,营造戏剧效果。

插入一个点光源来模拟灯罩下的间接绿光。
- 在 资源管理器 窗口中,将鼠标悬停在 FillLight 部件上,然后单击 ⊕ 图标。会显示上下文菜单。
- 从上下文菜单中插入一个 PointLight。

选择新点光源,然后在 属性 窗口中,
- 将 Range 设置为 12,以增大点光源照射区域大小,从而照亮桌子身后的墙壁。
- 将 Color 设置为 142, 157, 125,将光线渲染为浅苔藓绿调,并间接减少明亮度。

照亮收音机屏幕
场景中需要照亮空间的最后一个对象是中间放置的经典收音机,雕像环绕在梳妆台周围。与前一部分类似,在决定您想要使用的局部光照对象时,回顾光源的类型和形状是如何 不 在现实世界中发光的。例如,前面提到的局部光源都不适合这个收音机,因为它的屏幕不会像 PointLight 那样向各个方向发光,也不会像 SpotLight 那样从单个点朝一个方向发光。


相反,为了解决这一光照问题,Lighting Indoors - Complete 示例引入了一个 SurfaceLight 对象,使得收音机整个屏幕向外照射。SurfaceLight 对象从 Attachment 或 BasePart 的一面发光,并包含一个 Face 属性,用于决定从哪个面/轴发光。这使它们的光照行为非常适合从近乎平坦表面发出方向性光的物体,例如电视或计算机屏幕、广告牌和荧光面板。
重要的是要注意,尽管表面灯和聚光灯都使用 Face 属性来决定发光的立方面,但由于其光的发射会根据父对象的表面大小而变化,因此表面灯与聚光灯是不同的。为了演示这一点,请检查以下图像,以查看表面灯如何相对于其父方块的大小改变其发光方式。


要在示例 Lighting Indoors - Complete 位置文件中重建收音机表面光:
在收音机的屏幕上插入一个表面灯。
- 在 资源管理器 窗口中,展开 Radio_Noise 模型,然后展开其子 Radio 模型。
- 将鼠标悬停在 Radio_Backglow 网格上,然后单击 ⊕ 图标。会显示上下文菜单。
- 从上下文菜单中插入一个 SurfaceLight。

选择新的表面灯,然后在 属性 窗口中,
- 将 Face 设置为 Left,将光照射到时钟表面之外。
- 将 Brightness 设置为 2,以稍微增强光的强度。
- 将 Color 设置为 146, 255, 251,将光线渲染为青色。
- 将 Range 设置为 4,以减小表面灯照亮的区域大小,使其只接触桌子。

平衡光源
照亮环境是光源与相机对其照明的感知之间的平衡。即使您的光源拥有适合现实中的照明设置,您仍然可能需要调整和重新平衡相机对该照明的感知,以实现理想的照明效果。
例如,当前状态下的场景在小屋中拥有故意的温暖光晕,但其颜色和阴影显得黯淡且缺乏饱和度。为了解决这个问题,Lighting Indoors - Complete 示例调整其全局光照,以在玩家的相机中增加其丰富感,同时保留 3D 空间中明暗色调之间的细节或对比度。
调整光照曝光
类似于自定义现实生活中相机镜头打开快门的时间的方式,Lighting 服务的 ExposureCompensation 属性允许您调整进入相机的光线量。使用这个属性与调整 Brightness 属性的不同之处在于,ExposureCompensation 对环境中亮的部分的效果进行增益。
例如,检查以下图像,以查看通过提高全局光照的 Brightness 或 ExposureCompensation 属性来增亮小屋时光照是如何变化的。拥有更高 Brightness 属性的小屋将整个空间的亮度提升,包括阴影中的亮度,这导致小屋出现意想不到的浑浊感。相反,具有更高 ExposureCompensation 属性的小屋不会同等增加光与阴影的亮度,使空间看起来更亮,而不会完全洗掉其较暗的颜色。



要在示例 Lighting Indoors - Complete 位置文件中重建曝光级别:
在 资源管理器 窗口中,选择 Lighting。
在 属性 窗口中,将 ExposureCompensation 设置为 0.5,为场景施加额外曝光。

调整颜色对比度
与在相机上应用滤镜相似,您可以向 Lighting 服务添加一个 ColorCorrectionEffect 后期处理对象,以调整相机对颜色的感知。这在您想对影响整个环境的颜色进行调整,而不仅仅是单个对象或游戏区域时非常有用。
Lighting Indoors - Complete 示例使用 ColorCorrectionEffect 增加所有暗色和亮色之间的饱和度和对比度。这对于创建温暖、色彩丰富的空间非常有用,能够吸引玩家。
要在示例 Lighting Indoors - Complete 位置文件中重建相机对颜色的感知:
在 资源管理器 窗口中,将鼠标悬停在 Lighting 服务上,然后单击 ⊕ 图标。会显示上下文菜单。
从上下文菜单中插入一个 ColorCorrectionEffect。
选择新的后期处理效果,然后在 属性 窗口中,
- 将 Contrast 设置为 0.05,以增加暗色与亮色之间的对比。
- 将 Saturation 设置为 0.1,使所有颜色更生动。





