中心公告

什么是实时渲染

发表日期:2020-03-04 15:46

即时演算,英文为Real Time Rendering。即所有我们眼中看到的是图像芯片“即时”生成的,其一系列的程序语言经由API(程序接口)翻译成图形芯片可以执行的指令来完成处理工作。

一、名词涵义

即时演算,英文为Real Time Rendering。即所有我们眼中看到的是图像芯片“即时”生成的,其一系列的程序语言经由API(程序接口)翻译成图形芯片可以执行的指令来完成处理工作。

一般来说,即时演算的画面可以任意变换镜头角度,而CG动画则是固定的。但就画面的精细程度来说,CG动画还是强于即时演算的。不过随着图形技术的发展,即时演算与CG之间的差距会越来越小,比如《合金装备4》的那段即时演算的宣传片就绝对令人印象深刻。

二、具体解释

1.说到即时演算,很多人会以为比较深奥,其实即时演算(尤其是游戏范畴的)就是图形技术的一种表现形式。英文里面,real time rendering,翻译成中文就是我们通常说的“即时演算”。即时演算的主要的工作都是由图形芯片来完成的,经过指令的指挥和复杂的计算,游戏中的人物和场景就出现在我们的屏幕上。

2.其实,提到"即时演算"的时候,我们伴随着提到最多的还有CG动画。我想把"即时演算"和"CG动画"对比着来说,我们就很明白啦。

先说说“CG动画”,所谓的CG动画,大部分工作是由动画制作人员来完成的,他们把建立好的模型在他们的电脑上渲染成完成的图,也即相当于经过了一道流水线,只不过流水线上的工作人员是动画制作人员,渲染结束后呢,我们的游戏机只需通过识别这些动画的编码,进行解码之后以每秒钟24幅画或者30幅画的速度播放出来就行啦,如果没有专门对应的芯片(这些芯片一般来说可编译的芯片,储存有编解码信息,解码时可以很方便的找到对应的输出),这个时候就要通过软件的算法来利用CPU的计算能力进行一系列的计算之后产生对应的图形输出,这就是我们口中说的“播片能力”。

3.我下面举个例子来说明。比如,游戏的开场CG动画部分就是我们非常熟悉的动画部分,这部分视频是游戏制作人事先已经制作好了的,只需播放即可,虽然我们看上去很色彩绚丽,其实并不占系统资源. 我们都有这样的体会,就是当系统配置不够的时候,往往能够顺利播发CG动画,但是CG动画过后,立即退出了游戏,要么就黑屏,就是这个道理。那么为何退出游戏呢,下面就牵扯到了即时演算.即时演算在游戏中是最吃系统的,即使非常小一部分的即时演算都会耗费相当大的系统资源。

再举个即时演算的例子,即时演算的份量最大的就属欧美制作的大型游戏,所以我就拿<上古卷轴4>为例吧:<上古卷轴4>;中有很多这样的场景,就是在对付敌人的时候,你既可以选择使用冷兵器攻击敌人,也可以使用魔法攻击,还可以互相交替进行攻击,还可以与对方沟通,还可以放弃战斗而逃跑,那么在你瞬间选择的时候,系统并不知道你将采用哪种方式进行攻击,当你突然选择使用冷兵器的时候,渲染系统就要从预留的渲染文件中调出使用冷兵器的图形文件,进行即时渲染,这就是即时演算!!这个瞬间的即时演算完全是有CPU来进行的.而显卡和内存负责将CPU下达的指令进行合成然后完美还原计算,呈现出来的就是华丽的画面图形。

4.因此,需要系统有足够的容量储备来应付瞬间的图形计算,否则就出现我们经常说的"卡",这就是由于系统配置跟不上,我们说的所谓的"卡" 其实就是丢帧现象,因为系统在计算的时候已经出现了不连贯,反映在屏幕上就是人物定格,一帧一帧往前跳,因此,即时演算非常考验系统.

三、与术语的区别

这里值得注意的是,以上提及的即时演算(作为Real-time Rendering翻译),以及CG,只能算作游戏界俗语,并非计算机术语。在计算机图形学术语中,Real-time Rendering大陆统译做“实时渲染”。而演算一词,作为计算(Computing,准确说是操作Operation)的汉字词,源于日文;与其相似的日文词汇还有“演算子”(Operator)解释为算子或操作符,以及中文词汇“演算法”,常用于港台地区,对应大陆的算法Algorithm),但这些都没有Rendering的含义,甚至日文也并不把Real-time Rendering译作即时演算或实时演算,而用音译リアルタイム レンダリング。Rendering在英文中原义粉刷墙壁,在计算机术语中衍生为绘制计算,其义:将(矢量)图形转化为(栅格)图像,并施加光照和着色的计算过程。因此,Real-time Rendering(实时渲染)属于实时计算(即时演算,Real-time Computing)的一种,但即时演算并不能和Real-time Rendering在概念上划上等号,所谓演算的范畴更大。

CG,Computer Graphics,计算机图形学,或泛指所有计算机图形。所以不论所谓即时演算,还是CG动画,甚至2D动画,在术语中都算CG。而所谓即时演算和CG动画真正的术语分别为“实时渲染”(实时CG,Real-time Rendering/CG)与“离线渲染”(离线CG,Off-line Rendering/CG)。