UDN
Search public documentation:

DominantLightsCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 光照 & 阴影 > 主光源
UE3 主页 > 关卡设计师 > 主光源
UE3 主页 > 光照师 > 主光源

主光源


文档变更记录: 由 Daniel Wright 创建。

概述


UE3 中现有的关卡和人物光照是非常的全面和灵活的,比如,对于影响一个图元的动态光源或阴影的数量没有代码限制,而且您可以针对不同的光源类型使用很多阴影类型(阴影体积、预计算每个顶点或贴图的阴影贴图、不同类型的阴影贴图过滤)。不幸的是当需要一个非常特殊的光照情境时,这一般会有一定的性能和质量成本,比如在室外光照中太阳是最重要的光源,跟随着的是它的间接光照和天空的影响。主光源是为了特殊情况下的光照设置而存在的,它有几个主要的光源并且较少了性能和质量的消耗。

注意: 主光源只在使用 Lightmass 的关卡中受支持!

版本


第一次引入主定向光源 (DominantDirectionalLight) actor 是在版本QA_APPROVED_BUILD_JUL_2009中。主点光源 (DominantPointLight)、主聚光源 (DominantSpotLight)及对所有主光源的人物阴影的改善(预计算阴影,它是正常阴影而不是调制阴影)在版本QA_APPROVED_BUILD_AUG_2009中被引入。

相关的技术博客文章


技术博客上搜索‘角色阴影改进(Character shadowing improvements)’和‘主定向光源 (Dominant Directional Light)’。

光源类型


有三种主光源类型: 主定向光源 (DominantDirectionalLight)、主点光源 (DominantPointLight) 和主聚光源 (DominentSpotLight),它们可以被放置在关卡中,您可以在 Actor 类别中找到它们,如下所示:

ActorClasses.png

影响静态环境的主光源


主光源使用预计算阴影,来避免整个场景的动态阴影所带来的较大的 GPU 消耗。来自主光源的预计算阴影和光照贴图分开来进行存储,就像可切换的光源一样。这样做有两个好处:

  • 它允许动态阴影仅影响主光源。放入到光照贴图中的光源不能以这种方式来产生阴影,并且它仅能受到模块化阴影的影响。
  • 它允许专门地存储来自主光源的直接阴影。直接阴影是最高频率的光照信息所在的地方,它在存储时的分辨率要比其它光照的分辨率高。我们也可以对阴影数据使用一种不同的表现法,目前所有的主光源类型使用距离场阴影 (DistanceFieldShadows)
  • 仅主光源的阴影是预计算的,所以其它的光源的影响是动态的。来自主光源的高光看上去和来自动态光源的高光一样,而不是放入到光照贴图中的光源所使用的光照贴图高光。由光源衰减所产生的梯度不会受到光照贴图压缩的影响。

影响光照环境的主光源


光照环境 (Light Environments)合成影响它们的静态光照,使用光线踪迹来决定人物是否被遮挡,并使用 2 个虚光源和一个单独的调制阴影来代表这些光源。这种方法在具有很多静态的填充光源的场景中工作的很好,但是在具有高频率来自太阳的环境阴影的室外场景中则会退化。主光源不会被合成到光照环境中,反而它们可以像动态光源一样来影响光照环境。光照环境将会有一个和世界中的主光源的预计算阴影相调和的正常阴影,而不是像调制阴影一样产生两个阴影并投射过几何体。作为一个附加的好处,预计算阴影在光照环境上启用。预计算阴影是从静态光照环境中投射到动态物体的动态阴影。当一个主定向光源因为主光源在静态环境上启用了尖锐的阴影而被激活时,这些对于人物的真实性是特别地重要的。如果人物在现有的 打开的/关闭的 可见性踪迹情况下处于被遮挡的状态,它将不能被影响。

场景中显示了一个在静态环境上的具有距离阴影的主定向光源,同时在使用一个光照环境的人物上投射了动态的预计算阴影,并且在世界中人物的正常阴影和其预计算阴影相调和。

Character.jpg

Character2.jpg

性能影响


由于主光源动态渲染它们的直向光照,所以它们要比完全使用光照贴图的光源消耗的性能更多,例如,DirectionalLight。在游戏机平台上,将主光源并入基础渲染中可以得到更好的性能,但是在 PC 上,它们会在单独的添加型渲染中进行渲染,因为较小的插入值可用。这就意味着在 PC 上,着色器复杂度将会精确地显示关卡,因为在启用主光源的时候消耗的性能更多,但是不会比在游戏机平台上运行关卡时消耗的性能大。主光源会产生多余的性能消耗,因为它们会使用预计算阴影,它需要进行大量的渲染线程设置工作。

请参阅 主光源 Xenon (DominantLightsXenon)获取针对 Xbox 360 的性能信息。

限制


因为主光源使用距离域阴影,所以它们具有相同的限制

主光源错误


当多个主光源正在影响一个图元时有三个指示器,这意味着它将不能在控制台上进行正确地渲染。

  • (地图检测错误)"地图有多个主光源在同时影响一个图元,这些主光源将在光照复杂性中显示为红色并且在游戏控制台上不能进行正确地渲染。
  • 每个图元的光照结果错误"物体受到多个主光源的影响,每个图元最多仅能收到一个主光源的影响。" 点击跳转到 (Goto) 按钮将会跳转到发生错误的图元。
  • 光照复杂性视图模式下,仅具有一个动态光源/主光源的图元将显示为绿色。受到两个主光源影响的图元将会显示为红色,如下所示,红色的地面受到了一个主定向光源和选中的点光源的影响。

LightingComplexity.png