延迟渲染技术文献摘录,
延迟渲染亦即延迟着色是近几年流行起来的技术,它最大的优势是可以实现同屏中n多的动态光源(十几到几十个)。这在以往的渲染管线中是很难实现的。以下是我对现有的相关技术文献的摘录和总结。
渲染流程
延迟渲染管线可分为四个阶段:geometry, lighting, composition, post-processing
Post-processing阶段与传统的forward shading没有太大差别,这里不提,只说明一下前三个阶段。
Geometry阶段:将本帧所有的几何信息光栅化到G-buffer。包括位置,法线,贴图等。
Lighting阶段:以G-buffer作为输入(位置,法线)进行逐像素的光照计算,将diffuse lighting和specular
Lighting 结果分别保存在两张RT上作为lighting buffer。
Composition阶段:将G-buffer中的贴图buffer和lighting buffer融合,得到渲染结果。
整体渲染过程并不复杂,但在实际的过程中还是有许多问题需要考虑的,下面一一列举。
G-buffer
Geometry阶段将几何信息渲染到multi render target上(MRT),当前最多支持4个MRT。并且驱动要求4个MRT必须相同的bit宽度。RT对显存占用过大会增加带宽,降低cache命中。而简单格式的RT又会影响画质。因此决定使用32bit的RT(如A8R8G8B8,R16G16F)或64bit宽度的RT(如A16R16G16B16F)。需要在画质和性能间做出折衷。(开发时尽可能可以方便的配置)。[1]中有一些性能比较。
MRT中必须的信息:position(depth), normal, diffuse(texture)
可能需要的信息:specular, power, emissive, ao, material id
这些信息需要在这4个RT上用合理格式,合理的组织。这里还可以就存储空间和shader的复杂性做折衷。如只保存depth,然后在光照时计算position[12]。以及用球面坐标保存法线[13]。以目前的资料得出的结论是应该尽可能地pack数据,减少内存占用,多出来的若干条shader指令不会明显影响性能。
光照计算
使用延迟渲染技术最大的好处就是可以渲染光照极为复杂的场景。这里场景中的光照可以分为两类。
影响整个场景的scene light。如directional light。渲染一个screen quad,逐像素光照计算,没什么好说的。
另一类是只影响一部分区域的local light。如点光源,聚光灯,以及特效等等。这些local light只影响到屏幕上的某些像素,当然不需要逐像素的进行光照计算。最简单的方法是绘制这些光源的包围体(点光源的包围体是球,聚光灯的包围体是圆锥),包围体的大小要大于等于光源的衰减范围。这些包围体经过变换投影到屏幕上的对应区域,随后在pixel shader中计算光照。
优化:
1. 光源包围体的视锥剔除,遮挡剔除。
2. 光源包围体投影后很小时剔除;若干个靠的比较近的小光源合并成一个较大的光源[11]
3. 光源包围体的backface culling
4. 屏幕空间中没有被光源照到的,或者被更近的物体遮挡住的像素不需要光照计算,因此可以逐像素的深度剔除。
a. 使用正确的stencil light volume。类似shadow volume的方案,将渲染light volume的正反两面,得到正确的stencil mask,然后光照计算时使用stencil buffer。这种方法可以得到正确的结果,但是需要渲染每盏灯时频繁改变render state,可能会带来一定性能上的损失。
b 使用z test,可以得到“一定程度上正确”的结果。
阴影
光照计算的同时计算阴影。使用传统的shadow map,预先生成一张阴影图。考虑在编辑场景的时候指定那些重要的光源才会产生阴影。在计算shadow map时要针对光源的binding volume进行剔除。
方向光和聚光灯可以使用基本的shadow map投影(正交投影,透视投影)。点光源会复杂一些,需要使用cubic shadow map。(考虑unwrapping method[14])
半透明
由于在延迟渲染的过程中只计算离屏幕距离最近的那个像素的光照,因此无法处理半透明物体的光照。
方案1
延迟渲染的过程中只处理不透明的物体,将所有半透明的物体放在渲染过程的最后,使用传统的forward shading渲染。
方案2
在Geometry阶段将半透明的物体和背景逐像素的交织起来,将透明度放在一个单独的通道中。按一般的方法计算光照。随后在composition阶段再根据透明度将透明物体和背景逐像素的混合起来。
优点:
光照一致性。半透明的物体也参加延迟渲染,可以接受多光源的光照。
简单并且健壮。不需要单独区分不透明物体和半透明物体,不需要单独的半透明渲染管道。
速度快。只增加了7到10条ps指令,两张贴图,只有约2%的性能损失。
缺点:
模糊。在半透明的物体上会有一点模糊,原因是在交织的过程中会有一定信息损失。
边缘锯齿。反交织的过程中半透明物体的边缘会产生一些锯齿。
只能有一层半透明。
多种材质
在延迟光照的过程中支持多种材质需要如下方案:
在G-buffer阶段输出材质的ID到G-buffer的一个通道中,随后在lighting阶段和composition阶段根据材质ID使用不同的光照函数计算光照。这种方案在sm 3.0中使用动态分支的前提下可以很好的工作。
反锯齿
Dx9 API不支持反锯齿的MRT,Dx10支持。
一种方案是使用超采样,先渲染到大的RT上,再downsample到正常的大小,得到没有锯齿的结果。延迟渲染的效率跟分辨率有很大关系,因此这种方法会极大的降低性能,基本不可取。
另一种方案是使用“intelligent blur”,只模糊物体边缘的像素:
根据相邻像素的深度和法线提取物体边界,然后对提取出的边界进行模糊。模糊时要避免不正确的泄露。如后面物体的颜色泄露到前面的物体上[11]。 总体而言实现会较为复杂。
另一种方案:pre-lighting [8][9][17]
一种pre-z rendering 和deferred rendering的结合。G-buffer阶段只保存depth和normal,然后计算光照信息到lighting buffer,格式如下
LightColor.r * N.L * Att
LightColor.g * N.L * Att
LightColor.b * N.L * Att
R.V^n * N.L * Att
最后使用传统的forward shading再将整个场景渲染一遍,期间查询lighting buffer。
与普通的deferred shading相比:
优点:
占用带宽小,第一遍渲染只输出normal,depth是自动获得的。
可以用在较老的硬件平台上,不需要MRT支持。
对现有forward shading管道改动较小,比较容易实现。
缺点:
整个场景需要渲染两遍,相当于在pre-z和forward shading中间加了一个lighting stage。
相关推荐
### ARM应用相关论文的13篇参考文献摘录与分析 #### ARM嵌入式系统C语言编程 在探讨ARM嵌入式系统C语言编程时,文章着重介绍了在没有操作系统支持的情况下,如何通过混合使用汇编语言(大约10%)和C语言(大约90%...
文献方法学沈阳药科大学卡片的注录分类和文献的阅读摘录与归档PPT学习教案.pptx
预应力混凝土地下车库施工技术(摘录自建筑技术开发08年7期59-61.docx
ChatGPT 技术与自动文本摘录的结合与应用 ChatGPT 技术是基于深度学习的自动对话生成模型,通过训练海量的对话数据,可以生成具有逻辑性和上下文关联的自然语言对话。其原理主要包括两个方面:语言模型和强化学习。...
webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录质
钻孔灌注桩桩底后压浆施工技术(摘录自《建筑技术开发》03年12期第60-61、76.docx
本文档摘录自《仪表自控设计技术规程》,旨在为相关工程设计人员提供关键的实施指导,内容主要涵盖接地设计和仪表线路敷设两个核心方面。 首先,让我们深入了解接地设计的重要性及其相关要求。单点接地原则是保证...
此外,还可以摘录文献中的重要段落,方便以后引用。 5. **文献引用与合併**:在撰写论文时,文献管理器能自动生成参考文献列表,自动排序并确保格式一致。在多篇文献的合并引用中,它能避免重复和遗漏,保证文献...
【教育精品资料】汽车工业机器人关键技术和存在的技术难题 汽车工业机器人在当今制造业中扮演着至关重要的角色,尤其是在汽车和汽车零部件制造领域。中国作为亚洲第三大工业机器人需求国,市场增长稳定,2007年工业...
阅读文献时,研究者需要做好详尽的笔记,记录下关键信息,并制作文献摘录卡片。这一过程虽然耗时,但对后期撰写综述工作至关重要。文献摘录卡片可以帮助研究者整理思路,明确综述的框架和重点。 接下来是撰写文献...
混凝土空心砌块墙体砌筑施工技术摘录自《建筑技术开发》期第.docx
传统的文献管理方式依赖于人工摘录和手动排版,这种方式不仅耗时耗力,还容易出现错误。随着数字时代的到来,科研人员面对着海量的文献资料,如何高效管理这些资源成为了亟待解决的问题。NoteExpress正是为了解决这...
其中,摘录的三篇文献分别涉及不同的电子支付协议设计和分析。第一篇由Hong Wang、Xiaofen Zhang和Jing Sun共同撰写,题目是《基于iKP的B2B电子支付协议》,发表于2009年的"Education Technology and Computer ...
预应力张弦梁结构的施工技术创新(摘录自建筑技术08年12期922-926页).doc
3. **笔记与摘录**:在阅读文献时,用户可以在Citavi 6.8中记录重要信息,创建笔记和摘录。这些笔记可以链接到相应的文献,形成一个完整的信息库,有助于深入理解和分析文献内容。 4. **引用管理**:Citavi内置了...
外门窗工程技术标准(部分摘录).pdf
- **阅读与整理**:需精选代表性强、科学性强的文献,并做好读书笔记、文献摘录卡片等工作。 2. **格式与写法** - **前言**:介绍写作目的、概念定义、综述范围等。 - **主题**:按照时间顺序、问题分类或观点...
从给出的文献摘录中,我们可以提炼出以下关于协作学习的知识点。 首先,协作学习不仅在教育领域内部有着广泛的应用,而且在心理学、计算机科学等多个学术领域内被广泛研究和应用。协作学习的概念本身具有多样性,...