欢迎来到天天文库
浏览记录
ID:43273827
大小:20.90 KB
页数:6页
时间:2019-09-27
《延迟渲染技术文献摘录》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、延迟渲染技术文献摘录延迟渲染亦即延迟着色是近几年流行起来的技术,它最大的优势是可以实现同屏中n多的动态光源(十几到几十个)。这在以往的渲染管线中是很难实现的。以下是我对现有的相关技术文献的摘录和总结。渲染流程延迟渲染管线可分为四个阶段:geometry,lighting,composition,post-processingPost-processing阶段与传统的forwardshading没有太大差别,这里不提,只说明一下前三个阶段。Geometry阶段:将本帧所有的几何信息光栅化到G-buffer。包括位置,法线,贴图等。Ligh
2、ting阶段:以G-buffer作为输入(位置,法线)进行逐像素的光照计算,将diffuselighting和specularLighting结果分别保存在两张RT上作为lightingbuffer。Composition阶段:将G-buffer中的贴图buffer和lightingbuffer融合,得到渲染结果。 整体渲染过程并不复杂,但在实际的过程中还是有许多问题需要考虑的,下面一一列举。 G-bufferGeometry阶段将几何信息渲染到multirendertarget上(MRT),当前最多支持4个MRT。并且驱动要求4个MR
3、T必须相同的bit宽度。RT对显存占用过大会增加带宽,降低cache命中。而简单格式的RT又会影响画质。因此决定使用32bit的RT(如A8R8G8B8,R16G16F)或64bit宽度的RT(如A16R16G16B16F)。需要在画质和性能间做出折衷。(开发时尽可能可以方便的配置)。[1]中有一些性能比较。 MRT中必须的信息:position(depth),normal,diffuse(texture)可能需要的信息:specular,power,emissive,ao,materialid这些信息需要在这4个RT上用合理格式,合理
4、的组织。这里还可以就存储空间和shader的复杂性做折衷。如只保存depth,然后在光照时计算position[12]。以及用球面坐标保存法线[13]。以目前的资料得出的结论是应该尽可能地pack数据,减少内存占用,多出来的若干条shader指令不会明显影响性能。 光照计算使用延迟渲染技术最大的好处就是可以渲染光照极为复杂的场景。这里场景中的光照可以分为两类。影响整个场景的scenelight。如directionallight。渲染一个screenquad,逐像素光照计算,没什么好说的。另一类是只影响一部分区域的locallight。
5、如点光源,聚光灯,以及特效等等。这些locallight只影响到屏幕上的某些像素,当然不需要逐像素的进行光照计算。最简单的方法是绘制这些光源的包围体(点光源的包围体是球,聚光灯的包围体是圆锥),包围体的大小要大于等于光源的衰减范围。这些包围体经过变换投影到屏幕上的对应区域,随后在pixelshader中计算光照。优化:1. 光源包围体的视锥剔除,遮挡剔除。2. 光源包围体投影后很小时剔除;若干个靠的比较近的小光源合并成一个较大的光源[11]3. 光源包围体的backfaceculling4. 屏幕
6、空间中没有被光源照到的,或者被更近的物体遮挡住的像素不需要光照计算,因此可以逐像素的深度剔除。a. 使用正确的stencillightvolume。类似shadowvolume的方案,将渲染lightvolume的正反两面,得到正确的stencilmask,然后光照计算时使用stencilbuffer。这种方法可以得到正确的结果,但是需要渲染每盏灯时频繁改变renderstate,可能会带来一定性能上的损失。b使用ztest,可以得到“一定程度上正确”的结果。 阴影光照计算的同时计算阴影。使用传统的shadowmap,预先生
7、成一张阴影图。考虑在编辑场景的时候指定那些重要的光源才会产生阴影。在计算shadowmap时要针对光源的bindingvolume进行剔除。方向光和聚光灯可以使用基本的shadowmap投影(正交投影,透视投影)。点光源会复杂一些,需要使用cubicshadowmap。(考虑unwrappingmethod[14]) 半透明由于在延迟渲染的过程中只计算离屏幕距离最近的那个像素的光照,因此无法处理半透明物体的光照。方案1延迟渲染的过程中只处理不透明的物体,将所有半透明的物体放在渲染过程的最后,使用传统的forwardshading渲染。方
8、案2在Geometry阶段将半透明的物体和背景逐像素的交织起来,将透明度放在一个单独的通道中。按一般的方法计算光照。随后在composition阶段再根据透明度将透明物体和背景逐像素的混合起来。优点:光照一
此文档下载收益归作者所有