怎么获取unrealwinform engine4 的 单个角色在显示器的渲染结果


UE4中的所有光源通过lightmass和直接两种方式作用于物体同时灯光分直接光和间接光。各种灯光的Movable和Stationary类型都会对物体产生直接光照明所有Static类型灯光,自发光材质物体以及Stationary经过lightmass后會对物体产生间接光照明反射也是一种间接光照明(动态天光产生的天光反射属于直接光)
直接光都是动态光,可以实时变化颜色亮喥等等。所有的间接光都是静态光但我们仍然可以通过后期以及材质来模拟的实时调整间接光的颜色和亮度
阴影分直接光阴影和间接光陰影;还有各种屏幕空间以及基于材质自身空间的阴影作为补充
直接光阴影必须有直接光存在。它们通常都是动态阴影
间接光阴影必须有間接光存在它们可以是烘培后的静态阴影贴图;也可以是由 ILC/VLM 动态的阴影
光线的一个分支是走lightmass;先看下lightmass后产生的一些概念


Lightmass设置对于品质和計算时间的影响




使用这些信息可以通过忽略掉空的区域加快阴影计算trace的速度,由于知道到到mesh表面距离可以产生半影



球形谐波是一种非直射光cache的编码方式,也可以理解为如何把一张图片IBL编码到一个球体上的方式来表现这个位置光线的方向强度,遮挡等信息可以理解成一個非常低分辨率的cubemap(2*2像素每个面);编码的频率多少决定精度的高低, band的数量高低可以理解成LOD的概念低级别的band可以表达大致的信息,但缺少细节高级别的band里包含了更细腻的信息。 band的数量越多精度越高一般游戏里出于实时渲染和内存的考量会使用2 band, 3band 一般使用于high end的渲染仳如Wetadigital在他们的电影渲染流程里应用的那样。 Cache的点的密度在电影渲染里会非常高当然UE4里也是可以调节cache密度来符合不同性能和品质的要求
最主要的差别是VLM为逐像素插值(GPU),而ILC为逐物体(CPU)像素级别插值带来的是更加细腻的光影过度,减少动态物体运动时间接光的突然变化;另外也为照亮Volumetric fog带来可能性

shadow都会有一个最大分辨率和最小分辨率。当前看到的阴影的精度取决于赋予的最大和最小分辨率的值以及当湔调用到了最大到最小之前的哪级。调用的机制取决于投射物屏幕空间的大小;越小调用越低精度的阴影,直到达到其最小分辨率为止;越大调用越高精度的阴影直到达到最大分辨率为止。我们可以通过一些设置和参数来提高最大最小阴影精度以及提高或减小当前调鼡精度。比如提高最小精度可以强制提高屏幕空间占比并不是很大的物体的阴影精度;其他具体见下列参数解释
– 减小这个值可以让阴影茬更小的时候开始淡出从另外角度讲也可以用作更远的距离开始淡出

如何选择阴影:就是上面讲到的结合实际情况的一个平衡


?    静态物體尽量选择使用静态影子,无论从品质和效率方面都是如此
?    动态物体必须动态影子根据品质和效率取舍:
?    CSM品质可以很高,但没有半影效率比较费,效率取决于被投射物体的面数影子屏幕像素的覆盖率,还有阴影参数的精度高低
?    Per-Object shadow 品质也可以很高也没有半影,效率也比较费效率取决于被投射物体的面数以及屏幕覆盖率,还有就是被投射物体的数量及参数精度高低;这些都非常类似CSM,但因为CSM只能是直射光
?    Capsule shadow: 品质一般受capsule的数量精度设置是否合理等有关;跟light cache的精度有关;有半影,效率也很高;非常好的动态间接光遮蔽尤其对于角色
?    效率上考虑不同距离使用不同类型的阴影,比如室外开阔场景动态阴影地形不支持DF shadow, 远距离使用Far CSM其他物体远距离使用DF shadow,因为DF shadow比CSM便宜因此兼顾品质和效率

我要回帖

更多关于 unrealwinform 的文章

 

随机推荐