查看: 278|回复: 0

[引擎的各个功能] 投射阴影

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2017-4-8 06:49:53 | 显示全部楼层 |阅读模式

投射阴影



       
     
     
     Unreal Engine 4.9

       
     
         



       
投射阴影




   
    本页面的内容:
   

   
                                                            
        静态光源
                                                        
        方向光源级联式阴影贴图(全场景阴影)
                                                        
        固定光源阴影
                                                        
        动态阴影
                                                        
        阴影预览
                                                        
        所有阴影类型同时存在
                                            


阴影让您的世界产生对比,使得世界中的物体感觉更加真实,并营造一种氛围。静态阴影无论怎么渲染,实际上都几乎没有任何性能消耗,但是动态阴影是造成较大性能消耗的原因之一。本文介绍了虚幻引擎 4 中具有的四种类型的阴影投射。

静态光源


静态光源投射完全静态的阴影和光照,这意味着它们对动态对象不会产生 直接 影响(静态光照由于烘焙到了间接光照缓存中,所以会有 一些 影响),比如下图中的小铜人。


投射阴影



左侧的铜人站在一个静态光源的光照中, 光源对该角色没有任何影响(没有光照也没有阴影);而右侧的角色位于一个固定光源的光照中。

方向光源级联式阴影贴图(全场景阴影)


定向固定光源 是特殊的,它们支持采用 联级阴影贴图(Cascaded Shadow Maps) 的全景阴影,同时作为静态阴影。这在具有很多带动画的植被的关卡是非常有用的;您想在玩家周围产生可以动的阴影,但是不想付出以让很多阴影重叠来覆盖较大的视图范围这样的代价。动态阴影会随着距离而渐变为静态阴影,但这种变换通常是很难察觉到。要想设置这样的处理,仅需把 DirectionalLightStationary 的 Dynamic Shadow Distance StationaryLight 修改为您想让渐变发生的范围即可。

固定光源阴影


动态物体(比如 StaticMeshComponent 或 SkeletalMeshComponent)必须要从距离场阴影贴图中集成环境世界的静态阴影。这是通过使用 每个对象 的阴影完成的。每个可移动的对象从固定光源创建两个动态阴影:一个用于处理静态环境世界投射到该对象上的阴影,一个处理该对象投射到环境世界中的阴影。通过使用这种设置,固定光源唯一的阴影消耗就来源于它所影响的动态对象。这意味着,根据所具有的动态对象的数量不同,该性能消耗可能很小,也可能很大。如果足够多的动态对象,那么使用可移动光源会更加高效。


在下面的场景中,几个球体都是动态物体,它们即接收来自静态世界的阴影,也会投射它们自己的阴影,这些阴影和距离场阴影合并计算。每个可移动组件的的阴影锥体也显示在图上。


       
投射阴影




       
由可移动组件形成的 一个物体 的阴影被用于该物体的边界框上,因此边界框必须是精确的。对骨骼网格体而言,这意味着需要有对应的物理资源(Physic Asset),对粒子系统而言,固定的边界框需要足够大来包含所有的粒子才行。


动态阴影


可移动光源在任何物体上都投射完全动态的阴影(和光照)。它的光照数据不会烘焙到光照贴图中,它可以自由地在任何物体上投射动态阴影。静态网格体、骨骼网格体、粒子特效等,都将会从可移动光源投射或接收阴影。


通常来说,投射可移动动态阴影的光源是性能消耗最大的。

阴影预览


在编辑一个固定光源或者静态光源时,光照信息会变成未构建状态,预览阴影 能够为您提供一个在光照构建后阴影的大致样子。


下图中,编辑器显示的阴影上带有 "Preview" 文本的样式,用来和已经存在的阴影表示区别。


投射阴影



当在重新构建光照信息前就在编辑器中运行游戏的话,预览的阴影会消失。因为这个预览只在编辑器中,而不会在 Play In Editor 时显示。


投射阴影



要从预览阴影中生成最终的阴影效果,则需要在编辑器的主工具栏的 构建 选项中选择 构建光照。


投射阴影



可以在窗口的 显示/可视化 菜单中取消勾选 预览阴影显示 的选项来关闭此功能。


       
如果希望调整这个文本的光照函数材质,可以在这里找到:Engine/EditorMaterials/PreviewShadowIndicator


所有阴影类型同时存在


当把所有阴影类型放在一起时,每种类型的阴影都会利用其优势来弥补另一种类型阴影的劣势,从而可以快速地渲染出令人印象深刻的栩栩如生的视觉效果。


投射阴影



   
        
            

   

投射阴影

   




    相关页面


            
            

   
  
     

         光线追踪距离场柔和阴影
     


     

            
        
   




                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

     2004-2017, Epic Games, Inc. 版权所有。Unreal 及相关的商标是 Epic 在美国和其他国家的注册商标。


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部