谈谈GPU渲染,我们的未来

谈谈GPU渲染,我们的未来

题记:

在几年前,谁能够想象得到今天在网上买的东西,明天就可以送到自己的手里?谁能够想象得到,电脑可以在围棋上下赢人类?谁能够想象得到,带上一副眼镜,无比真实的另一个世界就可以在自己眼前展开?

这些画面,曾经只能在科幻电影里看到,而现在却居然已经成为你我生活的一部分。科幻与现实重叠。不知何时,我们的生活,已然步入了曾经的我们口口声声诉说着的“未来”。

而GPU渲染领域的蓬勃发展,对于我们从事CG渲染工作的同胞们来说,正是一种未来塌陷为当下的具体表现。



写在前面(可以跳过):

先澄清一下上一篇评价arnold文章的问题weibo.com/ttarticle/p/s

我确实也听说了arnold是在开发GPU渲染这个方向,所以有些话写的不严谨。我其实更确切想表达的是,通过以往他们团队表现出来的态度,让人很怀疑他们在GPU渲染方向能走多远。

要知道,GPU渲染方面技术的开发是非常困难的

我个人不做开发,有可能谈的问题不对或者不严谨,希望可以抛砖引玉。这篇文章我就从我作为从业者和个人艺术家长期的使用经验角度来给大家分析一下GPU渲染相关的很多话题。





GPU渲染真的很快吗?

是的,超级快。

首先GPU这个东西一开始被造出来,就是为了解决大量运算的问题。它的特点是运算速度超级快但是逻辑单一,只能处理简单的算法,而难以胜任复杂的工作。比如我们影视从业者一般搞的那种,一等半小时渲一张图的渲染,叫离线渲染。这种渲染因为算法比较复杂,就是GPU以前不能处理的。

所以到底那些开发人员到底是如何做到让GPU也慢慢能够做复杂的离线渲染,这件事情,我是搞不懂的,就像我也不知道今天在网上买的东西第二天就送到我手上这个事情背后复杂的细节。我只是明白这种事情就是从无到有,花费很多聪明的大脑多年努力才慢慢做起来的。困难重重。

而等到GPU真的可以做离线渲染之后,我们的渲染速度就像变魔术一样瞬间得到超大幅度的提升。这种提升是由于GPU身体结构天生适合快速运算大量数据造成的,以前它只是不会,现在它既然会了,那么就像脱缰的野马,你真的想象不到的快。

我拿最近做的一些项目经验来说说。之前我们用GPU渲染器做了一部顶级的电影,简称项目A吧。后来我们又用arnold这款cpu渲染器做了一部顶级的tv动画,简称项目B。

做A项目的时候,我们每天走之前都用本机挂序列,像全是山体、石头加怪兽的大场景(少说几亿面,数不尽的8k贴图),一张渲染时间不到10分钟,一晚上跑个50-100帧都不是问题。任务不紧的时候都不需要农场,序列轻松就跑完了。

做B项目的时候,因为比较卡通,场景也简单很多,试了一下用本机跑序列,经常4+小时一帧,再也没人用本机渲序列了。

我也不给你们说到底快多少倍,只跟你们说我的使用感受。什么结论你们自己定吧。




用GPU渲染是不是就等于像游戏一样,速度快质量差?

之前还有人跟我说是因为用显卡渲染,所以等于是像游戏里那样的实时渲染,所以速度是快了,但是质量却不行。

秉持这个观点的人估计也不少。

我先简单说一下离线渲染和实时渲染的区别。

离线渲染用的算法都比较接近真实世界光线的传播,一个像素要发射大量射线去场景里反弹去收集周围的颜色亮度信息,最终计算出这一个像素的颜色。

而实时渲染,核心思想就是hack。通过各种简化和作假的算法,做出接近离线渲染的视觉效果。

比如说反射,在离线渲染里,就真的是按照光线的传递去看周围是什么东西,再渲到材质上面,这样的结果就非常准确。而在实时渲染里呢?经常会把周围的环境烘焙成一张反射球,经过一定程度的模糊,直接贴在物体表面。这样看着其实效果也不错,只不过遇到动的物体会穿帮(当然游戏里还有更多别的解决这些问题的方法,这里不讨论)。

前文已经提过了,虽然我们的渲染器开始用GPU渲染了,但是是因为英明的开发者想到了办法,可以让GPU也用离线渲染的公式去计算画面了;而不是改变公式,按实时渲染的方法去计算。所以,我们用的渲染器,虽然用了GPU,仍然还是离线渲染。也就是说,速度得到了极大提升,但是和游戏实时渲染的思路还是隔了很远,本质依然未变。

拓展阅读:为什么Unreal 4引擎能轻易实时渲染出vray要花半天才能渲染出的场景?



那GPU渲染又快又好,就没有问题?

世界上当然没有那么简单便宜的事儿。


我最开始从2009年左右,从furry ball、octane、vray rt等渲染器开始关注GPU渲染的,当时被它们超级无敌的渲染速度给折服了。但是那个时候的GPU渲染器还很不好用,有非常多的限制。

最大的问题有两个:

1)不支持离线渲染的高级效果。

从这点就能看出来,GPU渲染的开发还是挺困难的,最开始大家都只能 最开始是不支持毛发、细分、置换、车漆、3s、fog color(vray的说法,就是透明玻璃的颜色,不过会随着厚度的变化而改变颜色,属于复杂材质效果)。直到这最近,经过七八年的发展,所有这些效果都已经比较好地支持了。但是还有另外一个非常严峻的问题。

2)很多渲染器还不支持out-of-core。(此部分修改了之前不正确的内容,修正了不严谨措辞)

感谢 炎之猎人 的指正,附原文链接:weibo.com/ttarticle/p/s

以前我看官方出的GPU渲染视频,都只是看看,因为自己动手尝试过几次,都是因为显卡太弱而渲染速度根本比不上CPU、不然就是直接渲染不出来。我查过官方测试用的配置,至少双路泰坦,有时候四路,六路都有,相当相当大的一笔投资。对于看我文章的各位,我知道,能掏钱买几千块渲染器的都是凤毛麟角,更何况是投资几万去买显卡??!

为什么GPU渲染这么贵?我发现主要出在这显存问题上面。比如说gtx980的显卡4GB的显存,我使用vray rt测试,渲了一个简单几万面的模型,加一套4k贴图,显存就满了。

对于玩游戏的来说,4GB显存跑大部分大作都尚有余力,但是对于搞GPU渲染的来说,却刚刚够塞牙缝。

测的就是这个例子,很简单,原谅我图少,工作忙起来没空做个人的东西。


之后我在工作过程中有幸接触到一个叫做Redshift的神器渲染器,一开始我是拒绝并且不屑的。但是经过一年的使用,我对这个渲染器有了深刻的认知,使用经验也爆炸般膨胀。期间经历了Redshift多个版本的迭代,从最开始哪哪儿用着都不舒服,哪哪儿都有bug;到后来慢慢变得越来越好用,也越来越稳定,它自身疯狂的渲染速度优势就开始凸显出来。

并没有说Redshift渲染速度比octane 或者vray rt更快。但是由于使用了out-of-core渲染技术,可以在第一次渲染的时候,将场景中的模型和贴图打包储存在硬盘上面,之后再渲染的时候,直接从硬盘上面读取,所以,显存的压力就会小很多。



我自己测的是这个例子,秒渲,显卡就是gtx980。

SP多象限UV贴图使用方法-在线播放-优酷网,视频高清在线观看

这个视频9分30多秒的时候,可以感受到这个渲染器有多快。



看看我做这个案例的时候干了什么变态的事情:


当时为了测SP的udim和8k,做了一套7张8k贴图。用rs渲染的时候,除了系统占了接近一个G的显存开销,还空闲一个G的显存,也就是说,渲染的进程中需要2G就可以渲染6*8 = 48张(height图没贴,因为不是特别为了出置换做的,normal贴图可以取代)8k贴图。



而之前我用vray rt测的时候,4G显存只能跑4张4k贴图就够呛了。这差距大得及其离谱。虽然说这么多年来,我一直是vray最狂热的粉丝,甚至拿到过官方认证。我想表达的是,这篇文章里虽然我一直在说vray rt的不是,但是我对vray本身的热爱超过大多数人,所谓爱之深责之切。


前段时间和官方人员聊过这个问题,他们也承认这是非常严重也非常难以解决的问题。并且发给我一些内部的测试版本,在贴图缓存方面做到了一定提升。但是结果离Redshift所表现出来的强悍还是有非常巨大、难以弥补的鸿沟。

从他们积极和我沟通、并且坦诚问题的态度可以看出来。他们也非常想要解决这个问题,也侧面反映了,显存利用率的问题,真的非常困难,创造了这么多奇思妙想的chaos group,至今都没有拿出良好的解决方案。

到目前这个时间点,真正很有效率地使用out-of-core技术的的只有Redshift一家。

如果你要选择一款渲染器尝试开始自己的GPU渲染之路,唯一明智的选择只有——Redshift

送人送到西,附试用版下载,功能和正式版完全一致,没有时间和尺寸的限制,唯一多的就是水印:pan.baidu.com/s/1qXDVDO

如果Redshift相关利益人员看到这篇文章觉得不错,请速度联系我发点广告费啊~ 我写了这么好的文,一个子儿都没有~



关于渲染质量的谣言:

一直有很多人在说Redshift虽然快,但是渲染质量不行。不然怎么没有像样的大片?

我觉得一个新概念的出现到被广泛接受,总是要有一个过程。Redshift渲染器目前虽然话题挺热了,但是普及率依然低。很多人都不敢尝试,都是先观望,等别人先做点像样子的东西出来以后,再考虑要不要进入。自然缺少大片作品撑腰。就算vray这种质量超高的老牌渲染器,也是最近两年大作才相对多了起来。渲染器本身的质量,并不能粗暴地和参与的大片数量进行挂钩。

因为渲染界,用的核心公式就那么些,而且都是公开的,大家都可以拿来直接用。所以,渲染器本身的质量并没有多么明显的高下之分。我就只从材质角度举一个简单但非常有说服力的例子,大家就都明白了。

现在大家都知道,有一个开源材质库叫alshader非常火。而其中的基本材质球,alsurface在很早之前就可以被安装如arnold中使用,大家也是从那个时候发现alsurface的效果非常赞,比arnold自己的3s效果还要好。我就当这是大家的一个共识。

在最近,arnold、redshift、vray都已经内置了alsurface这个材质,那也就是说,大家都一样了,如果你使用某一款渲染器做出来的效果比别的差,只能说明你对这款渲染器的掌握程度不够好。

再有人对比这三款渲染器,说渲染效果哪个哪个好,哪个哪个不行。我们就可以问他这两个问题:

你试过吗?

你行吗?



尾巴:

最近这两天双11,剁手的不在少数。就像开篇说的那样,未来已经悄无声息地来了。你有没有想过,你觉得好像很遥远的GPU渲染时代,有可能就像远在村野乡间没有wifi不会上网的亲戚们 眼里的网购一样,在他们并不熟知的另一片天地里如火如荼地野蛮生长着?

编辑于 2016-11-12 20:32