查看: 261|回复: 0

[引擎的各个功能] 粒子光源

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

粒子光源



       
     
     
     
       
     
         



   
    本页面的内容:
   

   
                                                            
        概述
                                                        
        准备工作
                                                        
        应用
                                                        
        和反射进行交互
                                            

概述


有这样一种功能,它可以向场景中添加无数个光源,但是仅当把它添加到允许您生成上百个光源的系统中才有效,所以我们想为什么不把它们添加到粒子系统中哪? 于是就创建了 Particle Lights(粒子光源) 。通过在 Cascade 中向粒子系统中添加一个单独的模块,您可以给无数个粒子相应地附加一个点光源。

准备工作


在开始投入使用粒子光源之前,您应该考虑您正在尝试实现什么效果。尽管像虚幻引擎4中使用了这样不同的渲染器,它可以处理大量的光源,但是所处理的大部分光源都是固定光源,不需要像可移动光源或动态光源那样每帧进行重复计算。这是个需要技巧处理的工具,要想在视觉效果和其性能消耗之间达到很好地平衡,需要花一些功夫。


粒子光源 /> 粒子光源 />


作为参考,这里是上面仅具有粒子光源发射器的动画的一些静态图片。


粒子光源
粒子光源



在第一章图片中,粒子光源用于加强一个已经稳定的粒子系统,使得火花和闪光感觉更加真实。进一步讲,在任何给定时刻仅存在少量粒子光源。在第二张图片中,光源向系统添加了体积和位置,但是使用了更多的粒子光源来达到这个效果(超过200个)。


尽管第二张图片中的系统看上去性能消耗非常高,但由于该张图片中的大部分粒子都是GPU粒子,且使用延迟渲染来处理所有的这些光源,所以它的性能消耗仅比第一张图片略高一点。

应用


向粒子系统中添加光源是非常简单的:


在 Cascade 中打开粒子系统。


右击 您想添加光源的发射器的任何地方。


在模块列表中鼠标向下移动到 Lights(光源) -> Light(光照)


       
粒子光源
粒子光源





设置您的新光照模型。


       
粒子光源
粒子光源





       
记住:  Light(光照) 模型仅能用于CPU粒子上,所以GPU粒子不能和它协同使用。如果您向GPU发射器中添加模块,这并不会中断该系统,但是也不会起任何作用,您会在列表中的模块上看到一个大红差 X  。


属性


粒子光源



       


       
                Use Inverse Squared Falloff(应用平方反比衰减)
               
               
                如果启用该项, 将会忽略 Light Exponent(光源指数) ,以便获得基于光源半径的更加真实的衰减效果。
               
       

       
                Preview Light Radius(预览光源半径)
               
               
                在 Preview(预览) 窗口中,该项将会以线框球体形式显示光源半径。
               
       

       
                Spawn Fraction(粒子光源生成百分比)
               
               
                定义附加光源的粒子的百分比。1.0是指所有粒子, 0.5指一半粒子,0.1指10%的粒子。
               
       

       
                Color Scale Over Life(在整个生命周期中颜色的缩放比例)
               
               
                和Radius Scale一样,输入到这项中的值将会和光源颜色相乘,来基于粒子颜色调整光源颜色。
               
       

       
                Brightness Over Life(在整个生命周期中的光源亮度)
               
               
                允许您修改光源在其整个生命周期中的亮度。
               
       

       
                Radius Scale(半径缩放比例)
               
               
                这是一个乘数,基于粒子的大小定义了光源的范围。在X轴上使用乘数1来缩放粒子,将会使得光源半径等于 Radius Scale 的值;但是在X轴上使用乘数10来缩放粒子,粒子光源的半径将是 Radius Scale 的10倍。
               
       

       
                Light Exponent(光源指数)
               
               
                如果禁用了 Use Inverse Squared Falloff(应用平方反比衰减) ,那么则使用该项来控制光源的衰减情况,数值越高,随着光照接近于光源半径,会呈现出更加好的渐变衰减;数值越低,就会在光源半径附近产生突然地衰减效果。
               
       


和反射进行交互


值得注意的是,具有可渲染的平面粒子的粒子光源可以和某些类型的反射进行交互。但是,由于反射返回的效果和光源返回的效果是不同的,所以这可能并不是期望的效果。也就是说,要想发生这种效果需要以下几点要求:


使用以下方法使反射体发生反射: Screen Space Reflections 、 Scene Capture 2D 或 Scene Capture Cube 。这三种方法是实时的,且可以捕获可渲染的粒子。


静态反射捕获不能反映任何动态的物体。


可渲染粒子的材质必须是Masked(蒙板材质)或Opaque(不透明的)。


立方体捕获物和平面捕获物都将会显示可渲染的粒子,就像它们显示任何可渲染的对象(静态对象或动态对象)一样,但是它们的反射效果可能会和光源高光分离。






                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

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


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

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

本版积分规则

 
 



邮件留言:


 
返回顶部