十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

HDRP 示例场景深度解析:为 Entities 配置光照探针(Light Probes)

HDRP 示例场景深度解析:为 Entities 配置光照探针(Light Probes) HDRP 示例场景深度解析为 Entities 配置光照探针Light Probes【免费下载链接】EntityComponentSystemSamples项目地址: https://gitcode.com/GitHub_Trending/en/EntityComponentSystemSamples本指南围绕 Lightprobes 示例场景 展开讲解如何在 HDRP Entities Graphics 项目中通过烘焙全局光照Baked Global Illumination与光照探针Light Probes为 ECS 实体提供间接光照。读完本文你将掌握子场景SubScene内的静态灯光与动态实体在光照探针体系下的正确协作方式并学会从零复现该示例的烘焙与场景配置流程。示例定位Entities 光照探针支持Lightprobes 是 HDRPSamples 工程 中 1. Lighting 主题下的三个光照示例之一。该目录下三个场景构成了 ECS 间接光照的完整拼图场景主题AmbientAndBlendProbes环境探针与混合探针Blend Probes的配置对比LightmapsEntities 的烘焙光照贴图Lightmap支持LightprobesEntities 的光照探针Light Probes支持原文档明确指出本示例用于demonstrates lightprobe support for Entities即验证 ECS 世界中动态实体同样能通过光照探针获得烘焙间接光照。场景中的球体使用不同的受光着色器lit shaders全部依靠光照探针来照亮而非直接光照贴图。场景构成从序列化文件看探针体系从仓库的 Unity 序列化文件可以还原场景的实际构造这比只看文档更直观地理解谁在发光、光从哪来。主场景中的 Light Probe Group主场景 Lightprobes.unity 中实际放置了一个名为Light Probe Group的 GameObject见该文件第 519 行附近m_Name: Light Probe Group。这正是光照探针的位置数据来源烘焙时 Unity 会以这些探针点为采样点记录空间各处的间接光照与球谐SH系数运行时再插值到动态物体上。子场景中球体的探针配置核心场景内容位于子场景 SubScene.unity。其中的球体如SphereSG由 SphereCollider、MeshRenderer、MeshFilter、Transform 组成其 MeshRenderer 关键配置为m_LightProbeUsage: 1——对应 Inspector 中Mesh Renderer → Probes → Light Probes的Blend Probes模式1 即 Use Light Probes / Blend Probesm_ReflectionProbeUsage: 1——启用反射探针m_ProbeAnchor: {fileID: 0}——未显式指定锚点使用世界原点附近的探针插值m_StaticEditorFlags: 0——球体未标记为 Static这正是文档第 3 步要强调的点动态物体靠探针接收烘焙间接光。子场景中的多个球体文件中多处出现m_LightProbeUsage: 1的 MeshRenderer使用不同着色器用以对比各类 lit shader 在探针光照下的表现一致性。复现步骤完整烘焙流程以下为原文档提供的操作流程结合仓库中的实际文件给出补充说明。第 12 步打开子场景在 Hierarchy 中选择 Subscene在 Inspector 中点击Open进入子场景编辑模式。仓库中该子场景位于 Subscenes/SubScene.unity。第 3 步核对 Static 标记在子场景中确认灯光标记为 Static烘焙时作为光源参与计算球体不标记 Static它们作为动态实体通过探针采样间接光照而非直接烘焙光照贴图。这一静态/动态划分是整个示例的技术核心。第 45 步开启 Baked GI 并生成光照打开Window Rendering Lighting窗口切到Scene标签页勾选Baked Global Illumination按需配置 Lightmapping 参数分辨率、采样数、弹射次数等点击Generate Lighting开始烘焙。烘焙完成后场景目录下会生成一份LightingData.asset见 LightingData.asset子场景的 LightmapSettings 会通过m_LightingDataAsset引用它。此外目录中还会产出两张 1024×1024 的光照贴图产物Lightmap-0_comp_dir.png/Lightmap-1_comp_dir.png——方向光照贴图DIR 通道Lightmap-0_comp_light.exr/Lightmap-1_comp_light.exr——HDR 光照贴图LIGHT 通道EXR 保留高动态范围。这些文件证明该场景在烘焙时同时产出了光照贴图与探针数据二者共同构成 Baked GI 体系。第 6 步保存并关闭保存主场景与子场景然后Close子场景。之后在 Play Mode 或构建的玩家程序中球体将始终以 Entities Graphics 管线渲染参见 HDRPSamples README 中对子场景渲染方式的说明SubScene 中的 GameObject 在编辑模式、播放模式与构建产物中都会以 Entities Graphics 渲染。底层原理烘焙参数与 GI 模式从子场景的 LightmapSettings 序列化数据第 43 行起可以还原示例使用的烘焙配置理解这些参数有助于调整自己的场景参数示例值含义m_GIWorkflowMode: 11On Demand手动触发光照烘焙对应 Generate Lighting 按钮m_EnableBakedLightmaps: 1开启烘焙光照贴图m_EnableRealtimeLightmaps: 0关闭不启用实时 GIEnlighten 实时模式m_AtlasSize: 10241024光照贴图图集尺寸m_BakeResolution: 4040 texels/unit烘焙贴图分辨率m_PVRSampleCount: 512512Progressive Lightmapper 的采样数m_PVRBounces: 22间接光弹射次数m_PVREnvironmentSampleCount: 256256环境光采样数m_LightProbeSampleCountMultiplier: 44光照探针采样数倍率直接影响探针烘焙质量其中m_LightProbeSampleCountMultiplier是决定探针精度的重要参数倍率越高每个探针位置的采样越密集烘焙出的间接光照越平滑但烘焙耗时也越长。本示例取 4是质量与速度的平衡点。进阶参考相邻示例与 SH 覆盖如果希望进一步理解探针体系在 Entities 下的应用仓库提供了两个可直接对照的场景AmbientAndBlendProbes将 2 个 GameObject 与 2 个相同配置的实体MeshRenderer.Probes.LightProbes组件配置并排放置演示 Ambient 与 Blend Probes 两种模式的差异BuiltInMaterialSHProperties演示如何在 Entities 上覆盖内置材质的 SH球谐属性值即在探针数据之上进一步自定义间接光颜色。小结Lightprobes 示例用一个简洁的场景回答了ECS 实体如何获得烘焙间接光照这一问题静态灯光 动态球体 Light Probe Group Baked GI四者结合即可让使用不同 lit 着色器的实体在子场景中获得一致、平滑的探针光照。其场景文件主场景 与 子场景本身就是最直观的配置范本可直接参照复刻到自己的 HDRP Entities 工程中。/DSMLparameter /DSMLinvoke /DSMLtool_calls【免费下载链接】EntityComponentSystemSamples项目地址: https://gitcode.com/GitHub_Trending/en/EntityComponentSystemSamples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表