全部新闻提供最新行业动态,分享前沿设计理念
聊一聊渲染
时间:2024-09-12 来源:朝夕友人 点击:

这篇文章我要跟大家聊一聊渲染

(这篇文章最初是发布在知乎上的一篇文章,不小心手贱删掉了,经正在读的朋友帮忙找回了文字部分,前段时间我开通了一个公众号,就在上面重写了文章,但是又发现公众号无法添加评论,所以又决定转回知乎,以后文章尽量首发知乎再转以公众号)

其实很多人应该并不了解渲染这一项工作

渲染师的日常工作是怎样的?

他们一天的渲染量是多少?

他们是无时无刻都在渲染吗?

他们都在渲染什么东西?

他们渲染的东西是哪儿来的?

主流的渲染器有哪些?

他们有什么特点?

对电脑的要求都一样吗?

运用的指令集都一样吗?

什么是CPU渲染,什么又是GPU渲染?

专业卡和非专业卡对渲染有影响吗?有多大影响?

什么是游戏卡?

游戏卡和专业卡的区别是什么?

游戏卡到底能不能渲染?

这些是我这么长时间以来,在知乎遇到的一些问题。我将在今后的一系列文章中逐一加以说明,算是对大家的一种科普吧。

首先,渲染要大致分成两类。

一类是视频渲染,这一类我们不多说。

另一类才是我们的重点,叫3D渲染。

关于3D渲染,首先要明白他分为广义的渲染,和狭义的渲染。

广义的渲染分两步,一是场景的构建,二是渲染本身(即狭义的渲染)

场景的构建是渲染前的准备工作,什么都没有也就什么都渲染不出来,你要想渲染,至少要有东西来渲染,那么从零开始,到最终渲染出一张图来,事先所要做的工作很多。

不管是什么软件3DMAX也好,SketchUP也罢,打开后都是空的,这个时候渲染也是空白的,什么都不会有。任何一幅作品里面每一颗草每一颗树都需要我们一一去构建,场景构建完成后我们才能最终渲染出一张图。

所以广义的渲染不但包括渲染本身,还包含整个场景构建的过程。整个构建场景的过程就是前期的准备工作(当然,这里你即可以从0开始全部建模,但也会有一些成品的模型,买来就可以直接放进场景里去用,但这一过程也属于场景构建),这一部分工作与狭义的渲染完全不同。

狭义的渲染就是指渲染本身,仅指你点下渲染按钮,然后计算机开始嗷嗷工作,到最终渲染完成一帧的这个过程。

下面我来以VRay for MAX为例简单来聊一下。

一、场景构建

这一部分刚才已经说了,是一个从无到有的过程,可以细分为以下几步

1、建模

这个大家都懂,都或多或少的了解一些,模型相当于一张图的骨架。

这里面的每一个物体都需要把模型建出来,建模型的方法很多,你可以用线来挤出,也可以用布尔、面片、多边形甚至是NURBS,这就不多说了。有些也可以直接拖成品模型来用,购买或者是用自己以前做的都可以,效率会高很多。有些数量很大的重复物体也可以用插件来阵列,比如树、草等。

上图这是国内著名的在线模型商店3D66的软件版,使用非常方便,一些成品的素材就可以直接拖进来,极大的提高了工作效率。

模型建好之后只是一堆色块,就像这样

2、赋予材质

所以如果你不给每个物体赋予可靠的材质,渲染出来的也就只能是一堆色块,没有任何意义,所以材质就相当于图的血肉皮肤。

对于没有材质的物体,需要逐一的赋予材质,材质不等于贴图,还有质感,质感主要包括反射、折射、高光、凹凸等,而这些都需要通过参数或者一些特殊的贴图来实现。

这是我几年前做的一张练习,模型都是我自己随便拉的,不考虑力学,只是玩渲染而已。

这是上图中石材墙面的材质,调了污垢、光泽、凹凸。

调这么多只为做一个真实水面的涟漪

自然界中的所有我们肉眼能看到的事物都会有反射,反射又分为镜面反射和漫反射,从物理学的角度来说,漫反射是由无数细小的镜面反射组成的。这些细小的镜面就跟凹凸有关,而凹凸的程度又造成了光泽度。但在软件里,这些都是可调的参数,相互间即独立又互相影响。

这只是为了要调出一段湿漉漉的马路的效果。

3、场景照明

材质调好后,如果是在VRay里面,这个时候如果渲染是一片黑的,我们还需要打光来照亮场景。

VRay中的光分为两种,一种是直接光照,一种是间接光照。

直接光照简单,就是各种点灯、面灯、球灯、射灯、太阳光系统等等。但是这些光只能起到最基本的照明作用,对于阴影部分,就是光照不到的地方还是没有任何的作用,渲染出来这些地方还是死黑一片,而且也很难影响反射和折射,所以很多时候更多的是需要间接光照。

只有直接光照而无全局光照,所以渲染出来的东西效果很差也并不真实。

现在的VRay有一个全局光照的概念,即使不打任何的灯光,通过颜色的明度和色相来照亮场景。一张HDRI贴图下去,整个场景都能亮起来,而且还可以造成漂亮的色调。而这个全局光照,也是漂亮反射的重点,VRay里有句话,玻璃漂亮不漂亮全靠环境。

360环境HDRI贴图

在绝大多数情况下,直接光照和间接光照同时重要,需要配合来完善场景。

4、测试渲染

当模型建好,材质赋好,灯光打好以后,我们才可以渲染,这才能到渲染这一步。前面所做的一切都只是为了渲染而构建场景。

根据我的经验,极少有人可以一次性的构建完整个场景后,就可以直接渲染出图,我们总要渲个小样来看一下我们调试的无数参数是否真正起到了正确的作用。

小样之所以叫小样,是因为无论尺寸还是参数设置都足够小,以节省时间,因为这个时候我们只是要预览结果,相当于缩略图作用。

而且我们在画图的过程中需要充分与客户沟通,不论如何,付钱的是他们,一张图只有他们满意了才行,所以每个阶段也需要渲染小样给客户看。这些小样要比我们自己测试时的小样更精细一些,需要尽量显示细节或效果。

渲染出第一张小样后,通常我们会发现并没有达成我们想要的效果,或者说与最终要求的效果有一定的差距,所以这个时候我们需要修正之前的经验参数。在这之前,我们对于灯光与材质的调整叫做粗调,只是根据经验或者行业的标准来进行全面的,基本的调整,而在这之后叫做精调材质与灯光,是根据效果来细化整张图。有些影响不大的材质基本就算了,而相对重要的,或者特别黑特别亮这类很跳,影响整体的材质需要进一步调整。过爆或过暗的灯光也需要进一步调整。一张图,很多人以为打灯光的目的只是为了照亮场景,但在我们这里目的其实是为了塑造形体、区分明暗关系。材质的质感也非常重要,尤其是玻璃,当玻璃相对比较多的时间只要把玻璃做漂亮这张图就成功一半了。还有一些占图幅面积很大的物体比如前景的广场、道路,比如建筑的墙体,都需要进行质感的细化,比如有时候我们会追求雨后水渍地面的效果以给图面增加趣味。

但每调整一个参数都只有渲染出来后才能看到正确的结果,于是我们就会在不断的修正参数和渲染小样来接近我们想要的结果。这个时候的小样我们一般会尽量让他跑得快,除了更给力的机器外,就是尽量降低一些只影响质量但不影响效果的参数。

是的,有些参数会影响效果,但有些参数只会影响质量,而质量与效果无关。因为在正式渲染之前,我们经常需要反复的进行大量的渲染测试,所以这些零碎的渲染测试会占用掉我们渲染师大量的时间。

PS:我知道,这个时候一定会有人提到VRay的实时预览,其实这个预览是有一定的局限性的,他一般只能预览出模型和贴图以及最基本的光照,很多质感和真实的光照实时预览并不一定能真实的反映出来,有时候还是需要渲染才可以。而且实时预览在刚打开的时候噪点极多,想要等到他真正能看也需要一定的时间,而且你只要改动了一点点他就要重新跑一下,不但占用资源,还有可能造成卡顿,而我们渲染师都有可能会为了节省时间,通常会改动多个参数再进行测试渲染,这个时候就要靠大脑来分析,我改动的参数大概有可能会是什么结果。

V-Ray简介

VRay是一款由chaosgroup和asgvis公司出品的插件式渲染器。他本身并不独立存在,而是寄生在其他软件平台上面。

VRay官网可以查到的有这么多宿主软件,其中首当其冲的就是3Ds MAX。

VRay在正式进化到4.0后,更改了自己的名字,以前是V-Ray x.x形式的名字,4.0之后变成了V-Ray NEXT Update。

这里不得不提的是,很多人并不知道的是,VRay 通常有两个版本。

在4.0之前是V-Ray Adv和V-Ray RT,Adv是满血的VRay,是全功能的VRay,而RT就是大家常说的GPU渲染了,但他是残血的,功能不全的VRay。

而4.0及之后的就变成了V-Ray NEXT Update 和V-Ray GPU NEXT Update。其中V-Ray NEXT Update 就是之前的Adv,而V-Ray GPU NEXT Update 则是之前的RT。

二者其实是完全独立的渲染器,Adv/V-Ray NEXT Update 是一个完完全全的CPU渲染器,只支持CPU渲染,即使是借用了RT/V-Ray GPU NEXT Update 的实时预览(上面提到的那个)也是用CPU计算的。而RT/V-Ray GPU NEXT Update 则是支持CPU渲染、GPU渲染和CPU+GPU联合渲染的一个渲染器。但是,因为GPU太过于简单,有很多Adv上面的功能用不了,所以缺失了很多功能。

PS:CPU与GPU相比,有很大的不同,CPU就像一个学会了微积分的大学生,而GPU却相当于一个只会加减乘除基本运算的小学生,呃不,应该说相当于一个班的只会加减乘除基本运算的小学生。而且这些小学生算起加减乘除来非常非常的快,而且还会一种CPU不会的算法,能让工作效率更高。所以在很多简单而大量的运算中GPU以速度的优势做得很快,但是在复杂的计算中因为能力问题而败给了CPU。因为这个世界不只是加减乘除这种运算,虽然很多复杂的计算也可以简化为基本的加减乘除运算,但是这样效率会降低很多,而且有些计算是不可以展开成这种运算的。

这是GPU的先天优势和劣势的问题。(其实GPU会的功能中也有CPU不会的)

现在呢,最新的NVIDIA GPU加入了光线跟踪,相当于这些只会加减乘除的小学生终于学会开方了,虽然是很大的一个进化,但是渲染器的支持仍然没有跟上来(OctaneRender支持RTX实时光线追踪),而且这个计算仍然与微积分相去甚远。据最新消息,V-Ray NEXT Update 3已经可以支持光线追踪了,但他之前的更老版本均不支持。

已经有了选项,但笔者暂时还没有RTX显卡,所以没得选。

V-Ray RT / V-Ray GPU NEXT Update

我们可以在VRay RT中选择不同的引擎,OpenCL代表AMD显卡,CUDA是NVIDIA显卡用的。选了OpenCL或CUDA后下面会出现渲染设备选择,而V-Ray GPU NEXT Update已经完全不支持AMD显卡,CPU可以根据需要手动选择。而V-Ray Adv/V-Ray NEXT Update完全没有这些选项。

V-Ray Adv 3.6 的材质,有23个

V-Ray RT 3.6 的材质只有19个,缺了矢量置换烘焙、模拟有机材质、散布体积等

V-Ray Adv 3.6 的贴图有28个

V-Ray RT 3.6 只有26个,又少了两个

V-Ray NEXT Update 3 的材质,有23个

V-Ray GPU NEXT Update 3 的材质只有19个,缺了矢量置换烘焙、模拟有机材质、散布体积等

V-Ray NEXT Update 3 的贴图有29个

V-Ray GPU NEXT Update 3 只有22个,又少了7个

从材质这方面的简单对比就可以发现,RT和GPU NEXT的实际功能相比于Adv和V-Ray NEXT要少。当然,现在的V-Ray GPU NEXT已经发展很不错了,在以往更低的版本中二者的差距更大,也就是说二者的差距在逐渐缩小,但是其稳定性等各方面与V-Ray NEXT有一定的差距。

由于功能、稳定性及行业习惯等原因,目前来说事实上用Adv的人要比用RT的人要多得多。

在正式渲染出图前,在建好模型调好材质打好灯光后,所要进行的这种大量的反复测试,目的就是要把一张图尽量画到更好。这是遵循一种契约精神,接到手的图至少要做到自己这一关过得去,才能交与客户,并在客户的意愿下,最终完成项目。

为了达成至少自己这关过得去这种状态,就只能尽量的去不断测试渲染参数,对于不同的图,经验或许很重要,但不是唯一的,存在一种套路式的工作流程,但不存在万金油式的工作参数。以往,我们曾尝试于整理出大量的优秀场景,期望于把项目直接放入场景以减轻工作量,但我们发现,有时候仅仅是楼转了个方向,原本期望的效果就完全呈现不出来了,出来的图就有可能完全不对了。所以这个时候仍然需要进行一定的调整。行业里也一直有人在设计研发各种一键渲染插件或软件,但很多时候我们发现根据效果,还是需要手动去调整各种参数,比如材质的质感和光照效果。

当一切做好后,还需要渲染小样去给客户定夺,客户满意后,才会进行最终的大图渲染。

二、渲染出图

前面提到的全部都是渲染前的场景构建,到现在才是最终的渲染出图。

其实渲染出图相对来说非常的简单,只要决定质量的参数调高(很少,而且一般都是固定参数,没有什么技术含量),设置保存路径,然后点击渲染按钮,接下来的事就交给计算机就好了。

由于市场的关系,导致图价方面制约了我们的收入,其实我们的客户也是类似情况,所以绝大多数的公司不得不或多或少的跑量。在跑量的前提下,一张图的时间被压缩到了极致。目前比较好的情况是一张图的渲染后期时间是两天,这里面不包括主体模型的构建。

这一块我之前有一点没有说,就是在建模这一块,他也分为很多不同的门道。我前面提过的,有些模型是可以使用现成的模型的,但是有一部分不能,比如表现主体模型的构建,这一部分一般是没有现成模型的,大多数情况需要根据甲方提供的资料进行构建,比如CAD图纸、SU、Lumion模型等,但这些模型一般还需要加工后才能使用,尤其是SU导进来的模型,因为建模人员习惯的原因,会导致模型很碎,还有可能有大量的反面,负责任的模型人员基本是要全部重建的。当然,也有一些规划类的或者小区类的项目可以找一些现成的模型来拼,但是拼成的模型也要调整各种元素或者楼层。

而其他的使用现成模型来建立场景的过程我们称之为摆场景,主要指的都是配置的摆放,比如车、人、植物、公共设置、小品等。

那么因为效率的问题国内的公司全部是按流程来分工协作的,在我的行业里,一般一个项目会分成建模、场景、渲染、后期四个部分,这四个部分工作量不同,可以任意组合分配人手。有些公司是建模、场景和渲染同一批人做,后期单独有一批人做,还有些公司是建模、场景+渲染、后期分成三部分人来做,或者建模、场景+渲染+后期这样分成两批人做,极少数大公司是分成四部分人做。

我个人是做场景+渲染+后期这一部分的,项目主体模型是不负责的。在前面提到的时间压缩的情况下,我做的这一块被压缩到一般两天左右。少数急的项目只有一天,一些重要的项目也有可能放宽到三四天。不管是不是一批人负责这一部分工作,渲染和后期之间有一道过不去的坎。后期的事暂时先不说,我们来聊聊这一道坎,这一道坎就是渲染出图。

我们渲染出图的尺寸一般在长边4500像素点到10000像素点之间,大多数时候是在5000点左右,按16:9的尺寸来说,4800*2700像素点的图总的像素点达到了12960000个像素点。所以这个渲染出图的时间是会比较长的,但是这个时间并不固定,有些图比较简单,比如景观图这种大量后期工作的图,可能一台好电脑不到半个小时就能渲染出来,而一些内街的、近景的、金属比较多、追求全模型渲染的图渲染时间是会非常慢的。最近我就有一张内街用1700X渲染了二十多个小时,当然,这里面主要原因是我参数设置高了,因为这两年托AMD的福,电脑性能上来了,而且我们以前每个人只有一台电脑,现在我有两台了,所以很多时候为了效果以及降噪,所以习惯上参数的设置已经比以前高了很多了,所以渲染时间预估就有可能会出错。

当然这种渲染二十几个小时的图实在少见,一年也遇到不了几次,大多数时候是两三个小时就可以渲染完的,但不管是多久时间,渲染大图的时间实在是浪费,如果我们用工作时间来渲染大图是非常得不偿失的,所以行业的习惯是在下班时间渲染出图。

讲到这里,这篇文章就差不多要告一段落了,以后的文章中我会更加具体深入的讲这些内容,后续我可能会写一些小教程,分享一些我工作中体会到的心得。不过这是以后的事,下一篇文章我会讲一下渲染工作对电脑配置的选择会,详细分析每一种配件,CPU也好、显卡也好,还有内存硬盘,他们在渲染工作中起到的到底是什么作用。敬请期待。

推荐阅读

接着聊渲染-生产力工具的选择(一)CPU - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/113776820

接着聊渲染-生产力工具的选择(二)显卡 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/113772714

接着聊渲染-生产力工具的选择(三)主板 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/114053049

接着聊渲染-生产力工具的选择(四)内存 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/114263568

接着聊渲染-生产力工具的选择(五)硬盘 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/114430813

接着聊渲染-生产力工具的选择(六)机电 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/114625536

接着聊渲染-生产力工具的选择(七)显示器.1 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/114785080

接着聊渲染-生产力工具的选择(七)显示器.2 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/114933532

接着聊渲染-生产力工具的选择(七)显示器.3 - 李响的文章 - 知乎 https://zhuanlan.zhihu.com/p/115044040

如果您也有此需求,欢迎咨询我们立即咨询