作者:hecoos全案设计
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


如果要比较我们常说的实时渲染与离线渲染,就应当首先了解一下计算机的渲染(render)概念。

通俗讲,渲染是处理器将需要计算的画面信息,计算并“绘制”在显示屏幕上的过程。甚至从“DOS”系统开始,处理器就会将计算好的字母或者数字用像素的方式表现在显示屏幕上,这时候渲染的概念已然存在了。

后来,随着显示技术的进步,社会的发展,对画面的要求就不再是简单的“像素点拼凑”了,渲染技术也慢慢地出现了两条主流分支,一种用于互动游戏,另一种是用于影视技术。像游戏这类需要实时互动的程序,就需要实时显示画面;而作为影视技术而言,需要的则是精致画面的效果。

从计算机图形学(Computer Graphics)学科角度讲,两种渲染方式都是将已经计算好的数据图像化。离线渲染经典实现方式为CPU将需要渲染的文件先从硬盘读取到内存,再读取到CPU完成对数据的计算,计算后的数据为图像数据,通过视频编码格式(如H.264)压缩,最终成为我们可以在电脑上播放的影片。实时渲染经典的实现方式为CPU将需要渲染的文件先从硬盘读取到内存,再读取到CPU完成对数据的计算,通过PCIe(peripheral component interconnect express)接口传输到显卡,显卡将这类数据图形(graphic)化,通过显卡(GPU)强大的运算能力,直接输出画面到显示设备。

时至今日,这两条应用分支仍然存在,且这两类产业的原始需求仍然没有改变:“实时”与“效果实现”,我们将可以满足这两类需求的渲染技术命名为:“实时渲染”与“离线渲染”。

两种技术相比较起来,离线渲染得到的是更加精细的画面效果,代价是花费更长的时间,而实时渲染为了达到随时调整随时看到画面目的,牺牲了画面的精细度。根据往常的经验,离线渲染主要依托于中央处理器(CPU)的计算能力,实时渲染主要依托于图形处理器(GPU)的计算能力。但是这一规律随着硬件技术(更优的纳米工艺)及软件技术(功能更强的驱动及算法)的进步而逐渐变得模糊。如今,在渲染过程中,不会再依赖于单一处理器的计算能力,计算机中的越来越多的性能会被调用。同时计算机本身的性能也在不断提升,多硬件之间协同渲染的方式也逐渐成为当下的主流技术。

从应用层面来讲,绝大部分游戏画面都是实时渲染的,因为在游戏中往往不需要过度复杂的光影反射画面以及材质纹理细节。而大部分CG动画(Computer Graphics)是通过离线渲染最终呈现的,因为动画往往是画面精细的,光影效果是接近真实的,尤其光线反射(效果较好的CG动画渲染往往会设置极高数量的采样值)。Autodesk Maya、3D Studio Max就是两款离线渲染软件的代表作。但是随着硬件技术的进步,游戏引擎的推陈出新,实时渲染与离线渲染所能生成的画面内容之间的界限也渐渐变得模糊,现在通过实时渲染也能制作出相对精细的画面了,比如说使用虚幻4引擎(Unreal Engine 4)这款软件。

从时间方面来讲,实时渲染是需要实时观看画面的,计算机从计算绘制一幅图像(一帧画面)到输出画面到显示器,仅需要1/30秒左右。对应的离线渲染,由于需要较高的画面效果以及粒子特效,其画面的生成可能需要几分钟到几天时间才能得到一幅图像(一帧画面)。

实时渲染和离线渲染的区别_大数据