Hello . 大家好,今天给大家简单介绍一下引擎里面常见的渲染方式,我是木偶心没。
一个完整的项目制作的时候,开始之前都要优先确定到底使用什么方式来渲染光照,比如前向渲染或者延迟渲染。这样才能针对每一个渲染方式不同的特点来制作物件,以避免后续更改渲染方式造成效果上的差异。
接下来就简单解释一下一般在引擎里面的选择前向渲染Forward Rendering和延迟渲染Deferred Rendering。
1、光栅化
为了更好的理解渲染方式,我们需要了解一下光栅化。
我们现在能看到的所有图像都是由像素组成的,也就是所有的模型和材质光照等信息最终都会被绘制成为像素显示在屏幕上,而这个绘制在屏幕像素上的过程就叫做光栅化。而光栅化的目的就是找出一个几何单元(比如三角形)所覆盖的像素。
过程如下,首先读取三个顶点,然后将这三个顶点连为三角形。接下来判断像素们是否在三角形内,如果在就直接用像素着色器计算出来的颜色对它进行上色。不断地的循环,知道画完模型所有的三角形,我们就能看到我们模型的渲染效果了。
而一个三角形的颜色取什么可以有三种方法;
1)三个定点颜色取平均值
2)取某一个顶点的颜色
3)三个顶点颜色的渐变
具体用哪一种可根据实际情况进行选择。
而前向渲染和延迟渲染就是对模型上面的光照进行光栅化的过程。他们的不同之处也在于对光照渲染的顺序问题。
2、前向渲染Forward Rendering
前向渲染会对场景里每一个几何体进行光栅化,就需要对每一个几何体计算场景所有的灯光来得到他们正确的光影效果,
我们可以通过深度测试来舍弃被遮挡的或在相机的视椎体内不可见的几何对象来进行优化,也可以通过舍弃不在相机视椎体内的灯光来进一步优化。
所以,被剔除的这些几何体和一些不可见的灯光的计算是完全浪费的。同时因为每个几何体都需要计算所有的灯光,所以计算量非常大,即使是GPU也很难负担,所以如果选择使用前向渲染的话,场景中需要注意灯光的数量。
前向渲染的一个典型特征是一个几何体从传入显卡进行处理到最后屏幕显示图形的整个过程是不间断的,是一个线性的处理过程。
3、延迟渲染Deferred Rendering
从名字来看,延迟说明了Geometry到RenderTarget的处理过程不是连续的,在从GS输出的光栅化了的数据会输入到Geometry Buffer,也就是G-Buffer,在这里是不会计算光照的。
G-Buffer生成后,开始计算光照,实际上接下来的计算基本上全是G=Buffer中的图像合成过程,由此可见一个灯光的计算实际上只会对它覆盖的像素计算一次,所以灯光的渲染成本就大大降低了。
而且G-Buffer里包含的各通道信息同样可以在后期处理中使用,所以延迟渲染能够表现的后期效果更多。
延迟渲染的基本原理是通过MRT(multiple render targets)将几何体渲染到屏幕空间,渲染过程不包括光照,而深度缓冲,法向量缓冲以及颜色缓冲作为不同的缓冲区被写入,这些缓冲区能够提供足够的信息使片元着色器的每一个光源针对每一个像素完成光照计算。
知道了每一个像素的距离和它对应的法向量,我们就可以得到光源照射在该像素上的最终效果。
4、如何选择
虽然对比起来前向渲染更加消耗资源,而且延迟渲染能有更多效果,但是在实际项目中,需要根据目标平台以及各方面配置条件来进行选择。比如,一般在VR游戏里面就会使用前向渲染,因为延迟渲染生成的各个缓存很占用带宽,VR没法带动,所以需要使用前向渲染。但是因为前向灯光比较费,所以我们需要把灯光数量调低一些。
另外前向渲染可以使用MSAA多重采样抗锯齿来得到更好的抗锯齿效果;而延迟渲染就只能依赖临时抗锯齿TAA。而且延迟渲染也不能处理半透明物体。除此以外,延迟渲染对显卡也有一定的要求,必须支持MRT(Multiple Render Targets),Shader Mode3.0以上。
来源:Thepoly公众号
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答做建筑漫游时被楼梯建模逼疯?试试这款让设计师直呼“真香”的Blender插件——Staircase Generator(楼梯生......
岗位能力:3D能力(3D模型整体美术结构、线条结构的了解掌握)、游戏动画时间&空间节奏的把控、镜头逻辑&镜头语言的了解、动画设......
火星的影视游戏虚幻美术视效大师班(简称虚幻美术或虚幻视效)!!!和火星其他王牌专业一样,这个专业采用项目管理制教学,由资深总监......
关于场景的选择,老师给予我们的意见是尽量多一些雕刻的东西,有助于我们对于zb的理解与学习。再有一点就是,要找主体物的明确和突出......
在火星课程服务的帮助下,同学们一般都能够通过4-6个月的一定量的学习和训练,所达成的、符合上面两个条件的结果。不管是动画、虚幻......
2025年3月14日,中国动画电影《哪吒之魔童闹海》在日本东京举行首映礼,随后在20多个城市的32家影院同步上映。这部已在中国......