当前位置:首页 >教程首页 > 游戏程序 > Unity3D游戏开发工程师班 >引擎里面常见的渲染方式分享

引擎里面常见的渲染方式分享

发布时间:2020-08-14 10:06:51

Hello . 大家好,今天给大家简单介绍一下引擎里面常见的渲染方式,我是木偶心没。

一个完整的项目制作的时候,开始之前都要优先确定到底使用什么方式来渲染光照,比如前向渲染或者延迟渲染。这样才能针对每一个渲染方式不同的特点来制作物件,以避免后续更改渲染方式造成效果上的差异。

接下来就简单解释一下一般在引擎里面的选择前向渲染Forward Rendering和延迟渲染Deferred Rendering。

1、光栅化

为了更好的理解渲染方式,我们需要了解一下光栅化。

我们现在能看到的所有图像都是由像素组成的,也就是所有的模型和材质光照等信息最终都会被绘制成为像素显示在屏幕上,而这个绘制在屏幕像素上的过程就叫做光栅化。而光栅化的目的就是找出一个几何单元(比如三角形)所覆盖的像素。

过程如下,首先读取三个顶点,然后将这三个顶点连为三角形。接下来判断像素们是否在三角形内,如果在就直接用像素着色器计算出来的颜色对它进行上色。不断地的循环,知道画完模型所有的三角形,我们就能看到我们模型的渲染效果了。

1.png

而一个三角形的颜色取什么可以有三种方法;

1)三个定点颜色取平均值

2)取某一个顶点的颜色

3)三个顶点颜色的渐变

具体用哪一种可根据实际情况进行选择。

而前向渲染和延迟渲染就是对模型上面的光照进行光栅化的过程。他们的不同之处也在于对光照渲染的顺序问题。

2、前向渲染Forward Rendering

前向渲染会对场景里每一个几何体进行光栅化,就需要对每一个几何体计算场景所有的灯光来得到他们正确的光影效果,

我们可以通过深度测试来舍弃被遮挡的或在相机的视椎体内不可见的几何对象来进行优化,也可以通过舍弃不在相机视椎体内的灯光来进一步优化。

所以,被剔除的这些几何体和一些不可见的灯光的计算是完全浪费的。同时因为每个几何体都需要计算所有的灯光,所以计算量非常大,即使是GPU也很难负担,所以如果选择使用前向渲染的话,场景中需要注意灯光的数量。

前向渲染的一个典型特征是一个几何体从传入显卡进行处理到最后屏幕显示图形的整个过程是不间断的,是一个线性的处理过程。

2.png

3、延迟渲染Deferred Rendering

从名字来看,延迟说明了Geometry到RenderTarget的处理过程不是连续的,在从GS输出的光栅化了的数据会输入到Geometry Buffer,也就是G-Buffer,在这里是不会计算光照的。

3.png

G-Buffer生成后,开始计算光照,实际上接下来的计算基本上全是G=Buffer中的图像合成过程,由此可见一个灯光的计算实际上只会对它覆盖的像素计算一次,所以灯光的渲染成本就大大降低了。

而且G-Buffer里包含的各通道信息同样可以在后期处理中使用,所以延迟渲染能够表现的后期效果更多。

延迟渲染的基本原理是通过MRT(multiple render targets)将几何体渲染到屏幕空间,渲染过程不包括光照,而深度缓冲,法向量缓冲以及颜色缓冲作为不同的缓冲区被写入,这些缓冲区能够提供足够的信息使片元着色器的每一个光源针对每一个像素完成光照计算。

知道了每一个像素的距离和它对应的法向量,我们就可以得到光源照射在该像素上的最终效果。

4.png

4、如何选择

虽然对比起来前向渲染更加消耗资源,而且延迟渲染能有更多效果,但是在实际项目中,需要根据目标平台以及各方面配置条件来进行选择。比如,一般在VR游戏里面就会使用前向渲染,因为延迟渲染生成的各个缓存很占用带宽,VR没法带动,所以需要使用前向渲染。但是因为前向灯光比较费,所以我们需要把灯光数量调低一些。

另外前向渲染可以使用MSAA多重采样抗锯齿来得到更好的抗锯齿效果;而延迟渲染就只能依赖临时抗锯齿TAA。而且延迟渲染也不能处理半透明物体。除此以外,延迟渲染对显卡也有一定的要求,必须支持MRT(Multiple Render Targets),Shader Mode3.0以上。

来源:Thepoly公众号

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答
  • c语言和python哪个难

    c语言更难一些,其实Python的底层就是c语言实现的,如果你想深入的话,建议先学c语言,在学习Python。如果只是想掌握一......

  • 数字媒体技术专业就业前景如何

    在我国目前很多数字媒体专业在国内外都有很多学校开设,尤其是近几年来很多院校都开设了数字媒体专业的课程,不过目前很多同学除了可以......

  • 影视广告和微电影广告的区别

    在当下信息爆炸时代,很多碎片化信息无法被大家精准捕捉到,很多投资商想要吸引到大家都会通过广告的方式,但是广告的种类有很多,每个......

  • 邢台pr视频剪辑培训班推荐

    每个人都有一个成为UP主的心,但是对于成为一个UP主需要掌握的专业知识和技能却了解不够的深入,想要制作一个精美的视频,剪辑是首......

  • 邢台线下原画师培训班哪家好

    原画是一个很受年轻人喜欢的行业,也是当前发展比较好的方向,不管是游戏原画还是影视原画,都是极为火热且人才缺口大的职业。而想要成......

  • 邢台动画培训哪家好

    随着动画行业的发展,cg三维动画因为不受时间、空间、地点、条件、对象的限制,能够运用各种表现形式把复杂、抽象的节目内容、科学原......

×