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


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


要启用 Realistic 光照:
在 Explorer 窗口中,选择 Lighting。
在 Properties 窗口中,单击 LightingStyle 下拉菜单,然后选择 Realistic。

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

要在示例 Lighting Indoors - Complete 文件中重现一天中的时间:
在 Explorer 窗口中,选择 Lighting。
在 Properties 窗口中,
- 将 ClockTime 设置为 15.6。太阳移动到大约下午 3:45 的位置。
- 可选将 GeographicLatitude 设置为 323。

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


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


要在示例 Lighting Indoors - Complete 文件中重现环境光的颜色:
在 Explorer 窗口中,选择 Lighting。
在 Properties 窗口中,将 Ambient 设置为 83, 70, 57。环境光变为更温暖和深色的橙色调。

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






要在示例 Lighting Indoors - Complete 文件中重现天空盒:
在 Explorer 窗口中,选择 Lighting 服务的子对象 Sky。
在 Properties 窗口中,
- 将 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 文件中重现大气的空气颗粒密度:
在 Explorer 窗口中,选择 Lighting 服务的子对象 Atmosphere。
在 Properties 窗口中,将 Density 设置为 0.5。空气变得朦胧。

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


点光源在低端设备上的性能消耗可能比其他局部光源更高,因为点光源向每个方向投射光。为了优化您的游戏,请考虑在不妥协理想光照行为的情况下需要多少点光源。例如,示例中仅在蜡烛中间放置一个点光源,因为每个蜡烛火焰都足够小,单独的点光源不会显著增强游戏区域内的视觉效果。
要在示例 Lighting Indoors - Complete 文件中重现蜡烛的局部光照:
在蜡烛组合中插入一个点光源。
- 在 Explorer 窗口中,展开 Candle_Group_A 模型。
- 将鼠标悬停在 FillLight 部件上,然后单击 ⊕ 图标。上下文菜单将显示。
- 从上下文菜单中插入一个 PointLight。
选择新的点光源,然后在 Properties 窗口中,
- 将 Brightness 设置为 0.7,以降低光线强度,使其更适合蜡烛光。
- 将 Color 设置为 255, 202, 156,以将光线染成桃色,复制蜡烛光源的温暖。
- 启用 Shadows,以允许蜡烛光产生阴影。
对 Candle_Group_B 重复此过程。
- 可选使用前面步骤中的相同技术,添加一个点光源以照亮壁炉中的火焰。
打开台灯
场景中需要照亮空间的第二个物体是小屋后角的台灯。当您决定要使用哪种局部光源时,重要的是要查看光源的类型和形状如何影响其在现实世界中的光照。例如,由于 Lighting Indoors - Start 示例的台灯在弯曲的深绿色灯罩下包含一个白色灯泡,因此灯必须产生两种不同类型的光:
- 明亮的白光,仅在桌子方向照亮。
- 透过深绿色灯罩向其他方向泄漏的微弱绿色光。
为了解决第一个光照需求,Lighting Indoors - Complete 示例在台灯中引入了一个 SpotLight,从灯罩未覆盖的地方向外照射。SpotLight 对象以锥形的形状向单一方向发出光,并包括一个 Face 属性,决定光从哪个面/轴发出。这使得它们的光照行为适用于产生定向光的物体,例如路灯、手电筒和车灯。
为了解决第二个光照需求,示例使用一个 PointLight,产生微弱的绿色光,照亮小屋的整个角落,而不会在明亮的白光中显得过于明显。为了说明,请查看以下两张图像,展示了有无额外点光源的场景变化。两个场景都包含相似的明亮白光,但带有点光源的场景创造了真实的光照行为,反射在附近的雕像和书架上,使小屋的角落可见并成为一个兴趣点。


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

选择新的聚光灯,然后在 Properties 窗口中,
- 将 Face 设置为 Bottom,以将聚光灯照向桌子。
- 将 Angle 设置为 140,以将光投射为半球形而不是锥形。
- 将 Brightness 设置为 4,以增加光的强度。
- 将 Color 设置为 255, 238, 202,以将光染成浅棕色,复制灯源的微妙温暖。
- 将 Range 设置为 12,以减小聚光灯照亮的区域大小,使其触及地面。
- 启用 Shadows,以让灯光产生阴影和戏剧效果。

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

选择新的点光源,然后在 Properties 窗口中,
- 将 Range 设置为 12,以增加点光源照亮的区域大小,使其能够照亮桌子后面的墙壁。
- 将 Color 设置为 142, 157, 125,以将光染成浅苔藓绿色,并间接降低其亮度。

照亮收音机屏幕
场景中需要照亮空间的最后一个物体是梳妆台中间的经典收音机。与前一部分类似,当决定要使用哪种局部光源时,重要的是要查看光源的类型和形状 不 在现实世界中发出光。举例来说,之前的局部光源都不适用于这台收音机,因为它的屏幕不会像 PointLight 对象那样向每个方向发光,也不会像 SpotLight 那样从一个点向一个方向发光。


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


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

选择新的表面光,然后在 Properties 窗口中,
- 将 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 文件中重现曝光水平:
在 Explorer 窗口中,选择 Lighting。
在 Properties 窗口中,将 ExposureCompensation 设置为 0.5,以对场景施加额外曝光。

调整颜色对比度
类似于在相机上应用滤镜,您可以向 Lighting 服务添加一个 ColorCorrectionEffect 后处理对象,以调整相机对颜色的感知。当您想要进行影响整个环境的颜色调整,而不仅仅是单个物体或游戏区域时,这非常有用。
Lighting Indoors - Complete 示例使用 ColorCorrectionEffect 来增加所有深色和浅色之间的鲜艳度和对比度。这对于创建一个温暖、饱和的空间,使玩家感到舒适非常有用。
要在示例 Lighting Indoors - Complete 文件中重现相机对颜色的感知:
在 Explorer 窗口中,将鼠标悬停在 Lighting 服务上,然后单击 ⊕ 图标。上下文菜单将显示。
从上下文菜单中插入一个 ColorCorrectionEffect。
选择新的后处理效果,然后在 Properties 窗口中,
- 将 Contrast 设置为 0.05,以增加深色和浅色之间的对比度。
- 将 Saturation 设置为 0.1,以使所有颜色更加生动。





