—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
前几天水哥发了一篇文章《houdini18.5于unreal实时渲染》讨论了现在热度非常高的使用虚幻制作影视的问题,建议对这个主题感兴趣的同学都看一看,我下面大概总结一下水哥文中的意思:1CG技术流程里面渲染主要耗费机子/渲染时间/电费,但是相比于建模,动画,特效等其他模块,渲染的成本不是最高的(这里包含了人力成本等各项因素)。2虚幻为了实现渲染的快(实时渲染)实际上是把大量工作转嫁到其他模块,比如模型优化,uv和贴图烘焙,以及牺牲了大量的精度,比如绑定动画和特效方面。最终的结果就是整个项目整体时间和成本倍增(还需要投入大量的研发和试错)质量上和影视软件制作的结果还是差一大截。我是比较同意水哥的观点的,也是由于他这篇文章启发我想继续延伸以及探讨一下,游戏引擎制作影视的真正优势是什么?
迪士尼美剧 曼达洛人使用了虚幻引擎参与制作,但是不是solo!
首先表达一下我是houdini的忠实粉,当然houdini不能代表所有影视软件,但是基本上的影视流程软件我都学过(maya,cinema4D,nuke,adobe等),至少接触过。同时,我也使用unity3D和unreal参与开发过游戏和VR,AR等内容,也使用unreal4做过动画短片,并且本人也非常看好unreal的发展,也建议大家有时间和精力的话多学习不同的东西。
但是,我们在讨论影视软件更新发展的时候,就有有一些声音说虚幻秒杀一切,虚幻是(唯一)的未来。问其原因,大部分都说因为实时渲染快/容易出效果,我觉得在方向上就错了。那么我们先抛开影视软件还是引擎,来讨论一下更加底层的问题。有人说是CPUVSGPU,当然以前传统的影视渲染引擎的确是只使用CPU渲染,但是现在主流的渲染引擎基本上都支持或者将会支持GPU渲染,比如octane,redshift,vray等,但是他们肯定不是"实时渲染"
我网上查到大部分区分实时渲染和离线渲染的点就是渲染速度,到底多快才是实时呢?有人说是24帧每秒,30帧每秒还是60帧每秒呢?在这个标准上本来就是模糊的,如果我们定义是至少60帧每秒的渲染速度才是实时的话,那么59帧每秒算实时渲染吗?如果我们定义是至少24帧每秒的渲染速度才是实时的话,那么23帧每秒算实时渲染吗?
而且,还有另外一个模糊标准,就是你的渲染平台/电脑性能不同。同样的场景和设置,在A电脑上是60帧每秒,但是在B电脑上可能只有24帧每秒,玩过游戏的人都很清楚了。特别是有些大型的游戏,比如模拟飞行,在性能不好的电脑里面1帧每秒,类似于每秒只能渲染一帧,那么这还叫做实时渲染吗?
反过来我们假设,如果我用影视渲染引擎,比如redshift,就渲染一个简单的场景,实现了60帧每秒,那么这时候redshit可以叫做实时渲染吗?或者我就用传统的cup渲染,放在一个超级电脑上渲染,也实现了60帧每秒的速度,这算是实时渲染吗?
总结,实时渲染和离线渲染本来就是个相对并且模糊的概念,而没有绝对差别。既不是GPU和CPU,也不是游戏引擎和影视软件的区别。随着硬件和技术的发展,很可能以后都会变成120帧每秒或者更高的速度,现在这些都不能叫做"实时渲染"了。本质上渲染这个概念是没变。我的答案是没有,两条流程在很多技术点上的确有很多要求/优化是不一样,但是这些都只是细节上,而本质是一样的。模型,动画,灯光,渲染,特效,后期等。这也是为什么很多影视制作人员转到游戏并没有太大困难,我们也经常把游戏和影视放在一起聊。虚幻并没有改变这个本质流程,该有的步骤一个都少不了。而且我也觉得最后影视和动画最终会交汇在一起(现在已经有了很多不同的内容)当你说渲染如何快如何好的时候,那么我问一下你的模型哪里来?贴图,动作绑定从哪里来?特效(即使是贴图特效)的素材又从哪里来?模型库?动作库?贴图库?这些和虚幻软件自身有什么关系?如果只是使用各种库,任何三维软件都可以做到又快又好。顺便带一句,哪里有真正好的影视作品是用网上这些共享库就做出来的?
同样的词,顺序变了,就导致了现在我们看到的相同内容的两条发展路线:对于游戏引擎的发展,本质就是开发游戏,而对于游戏来说,本质要求是"快",至少在玩的时候要流畅,不能卡顿。这也是早期各种游戏画面很粗糙,但是依旧能够有不少玩家喜欢玩。而"好"是在快的基础上的发展起来,但是如果一旦"好"这个标准伤害到了"快"这个地基时,"好"会毫不犹豫地被干掉。做过游戏开发的同学应该深有体会。没有人愿意去玩卡到只有一帧每秒的游戏,即使画面再好看(这种卡顿的美丽画面还不如直接去看电影)。
而影视的优先级是"好",也就是影视渲染引擎首先是保证能够渲染的内容广度和质量,"快"只是在好的基础上的优化。目前流行的渲染引擎可以渲染模型(各种材质),体积,毛发,特效等各种不同对象不同材质,以及有非常复杂的分层,单元素单材质设置,灯光关联,精度设置等功能。如果一个渲染引擎渲染只能渲染有限的对象,或者渲染质量特别差,渲染再快绝对不不可能作为影视渲染引擎的。这就是为什么皮克斯,工业光魔等国外大公司动不动就使用超级农场几百个小时渲染一帧,因为他们知道,对于观众,他们只看到是画面,他们不会因为你用了所谓的“实时渲染"就会降低对画面质量的要求。
随着技术和硬件的发展,虚幻功能有没有可能发展出包含现在三维影视软件功能,并且特效实时解算和渲染,并且画面质量可以和现在影视质量一样呢?我觉得理论上可以,但是不现实。
如果真的有这样的功能,不管以后是虚幻还是houdini,抑或是有其他软件最后实现了从模型,动画,到特效后期所有都是实时制作和渲染的时候,那么硬件/技术/算力应该到了一个超级高的程度(至少现在没办法预期)我觉得另外一条路更加有可能,就是结合人工智能,深度学习和大数据,直接生成像素就好了,无论你怎么运动和交互,都能够按照计算把正确的像素呈现在你面前。根本就不需要什么三维建模,绑定动画和特效解算这些流程的制作,直接计算给出正确像素内容就行了,和现在的流程完全不是一回事。1传统游戏:无论是手机,电脑还是其他游戏机,这是游戏引擎的本质主业游戏的本质就是交互,你输入内容,得到反馈。没有交互就不会有游戏。实时渲染只是交互的必备前提。当然,以前游戏简单很多,比如俄罗斯方块,左右移动和反转的简单交互以及方块视效就够了。虚幻作为游戏开发引擎是一款非常不错的商业软件。
VR也分为VR游戏和VR影视,VR游戏和传统游戏本质一样,不做讨论。只不过VR影视和传统影视就有比较大的区别,关于VR影视有很多版本,比如最简单你只可以360度查看,但是镜头动画和故事发展与你无关,实际上就是个360度的立体视频(目前在某特殊视频行业发展快速)。进阶一点即使360度+你空间定位,你可以通过走动改变镜头运动轨迹。再往下发展,你可以通过声音,手柄等控制指定的内容,类似于多结局影视/互动影视。再再往下发展你可以控制剧情,或者你自己就是电影中的角色,影响故事的发展,那么这基本上就是游戏了(当然,这不一定用VR,用电脑手机播放的影视作品也有,只是体验感没有那么沉浸而已)。
对于最简单的VR(360度立体视频)来说,有两种实现方式,一种就是实时渲染,另外一种就是离线渲染双通道360度的环境贴图,贴在环境球上。在画面质量上,后面的做法能够上影视级别(电脑主要处理的是高分辨的视屏流,而不需要实时渲染三维场景)。
这里无论是VR游戏还是VR影视,帧率都是一个最重要的基础点,如果帧率低或者出现延迟,那么VR的不适感会明显超过普通的游戏。AR就是实时渲染三维物体然后自动计算出真实世界的坐标,虚拟相机与真实摄像头比如手机或者ipad的摄像头关联,核心也是交互(虚拟相机与真实相机交互)有一些AR还有按钮和触碰交互等。这个和传统的LED放在一张静态图或者视频的区别在于,LED背景可以直接读取实际拍摄相机的轨迹,反求/实时渲染出正确的LED背景画面(新西兰在首都惠灵顿的博物馆中搭建了一个,wetadigita在用),原理非常简单,在虚幻里搭建场景,设置灯光,关联相机,这些步骤都是必须的,所以优势还是交互。当然,目前的背景都是一些相对简单的物体和场景,建筑,植被等,或者是一些卡通三维背景。如果你背后是需要真实的人群,动物,海洋,火箭发射,或者是雪崩这类影视特效的话没用。
题外话: 其实这个思路还可以反过来,我可以在三维中定好相机动画渲染出来一个序列视频,直接放在背景播放,只不过要实拍相机运动轨迹相匹配就好了,这时候和虚幻就没有啥关系,就是一个LED播放视频而已。这类就是拍摄绿屏画面/有部分是基于AI直接抠像,然后把拍摄对象直接合成到虚拟背景。这个过程和影视的后期抠像合成原理一样。只是实时,所以至少需要做到镜头交互(虚拟镜头与真实镜头匹配)一般可用作电影绿屏拍摄的时候给导演看看最终的构图和画面内容,或者是现在新闻直播/VR游戏直播等内容,让观者也可以看到玩家看到虚拟世界。
从上面4个领域可以看得出,本质核心是交互,没有了交互这个前提,画面渲染在真实漂亮也没有用。同样,也不是所有画面都需要真实高质量画面,比如预演和游戏。使用引擎做短片就是比较尴尬地方了,因为最后面的作品不需要交互,就是个普通视频。最终观众/甲方爸爸要的就是视频的效果,而不会因为你使用了虚幻就放低要求。部分人使用引擎的理由就是之前说到的渲染快,易出效果。其实这是一个使用误区。打个比方,你使用了excel去画画,然后和ps比说:你看我打开和保存多快,文件也小。execel真正的强大的点都没有用到。当然,现在虚幻的确有很不错的材质渲染系统,的确可以作为渲染引擎使用,但是没办法取代现有影视软件。
一方面,除了渲染,其他内容还是需要大量的资产生产,对于真正的商业项目,要么你自己去扫描模型/贴图,然后进入三维软件进行优化处理,要么进入影视软件建模贴图。复杂点动画还是得在影视软件里面k,最后把模型动画导入到虚幻中,从这些角度来说,虚幻仅仅是替代了影视软件中的材质渲染局部功能。
另外一方面,用虚幻来做产品广告视频,限制非常大,像上面分析的,除非你就是模型渲染为主,不涉及什么特效和复杂动画的,比如汽车,场景,和植被等(这些素材也比较多)但是我们现在看到的各种视频广告哪里只有一个产品在简单旋转的,就连手机广告,都恨不得做出电影级别惊天灭地的大特效。即使简单的光效变化,镜头运用,直接在虚幻里面做花费的时间远比三维大的多,但是最终出来的画面还没影视做法好,有意义吗?节省的那点渲染时间和花费大量人力的时间哪个重要?
目前我们看到的大部分所谓的虚幻作品,除了那种明显看到是网络资产之外,其他比较好的片子都是结合了大量影视软件制作的,比如zb,substance,maya以及houdini等,有角色动画的大部分都是动画片,而且质量也上不了高质量影视级别。写实作品大部分都是场景,静物等作品。表现最多的就是镜头动画,和简单的位移动画。最关键的一点是,他们的制作成本有多高?制作周期,人力,以及为了实现虚幻渲染所掉的坑以及牺牲和放弃掉的内容。
还要注意的是,大部分优质的虚幻渲染片子都不是实时渲染出来的,有的1分钟一帧,有的更久,在渲染优势上又打了折扣。即使真的要做到流畅的实时播放,看看他们使用的机器配置是不是一般人可以承受的。但是一旦影视增加了互动的硬性要求,那么这既是虚幻等游戏引擎的优势了(也很难说影视软件会不会开发出交互的功能)这也是影视发展的一条思路。要在目前的3D技术上再做突破,该往哪里走呢?如果真的要实现交互,不管是以VR的形式还是别的主题公园的形式,那么目前的影视软件是没办法做到这个核心功能的。这又回到了我上面说的点,这时候游戏和影视其实已经互相交融了。至于最后是叫做游戏还是影视也很难区分。比如现在的叙事性游戏,带有了剧情和故事,或者是互动视频,带有了交互的影视,你都可以有游戏的感觉,同时也有影视的内涵。
这就是目前虚幻做得比较好的部分,当然,这不是本质优势。任何公司都可以把生态做好,比如houdini engine,一下子就可以连接maya,max等三维软件,也可以连接unity3D和unreal等游戏引擎。虚幻的生态做得好包括了核心的开源,教程,论坛,还有就是提供大量的资产比如megascans和unreal asset store,以及各种线上线下的活动,当然也包括非常炫酷的宣传片等。相比于unity3D,这就是我更加看好的虚幻的原因。这个可以类比max,即使现在自动桌子开发能力有限,但是由于之前建筑行业以及游戏行业有大量的max用户,累计了大量资源和制作经验,假设自动桌子突然说不再更新max,也很难改变max目前在建筑展示和游戏中的地位。
1避免麻木迷信,不要把网络上目前看到的虚幻作品当做了虚幻一个软件的功能或者普遍技能,用虚幻渲染不代表用虚幻全流程。这个和其他优秀影视作品一样,都不是一个软件之功。同样,能做不代表适合做,看问题要看全局,对于生产来说,成本收益比决定了一切。炫技和实际生产是两个完全不同的方面。2如果你要从事影视方面的工作,掌握虚幻可能是加分项,但是不是必备项。也就是不要指望不会任何的影视制作工具靠虚幻就能在这行立足。当然,如果你是做游戏开发的话,那么也建议你学点三维软件操作,起码基本的资产互导以及debug也是要掌握的。
3对于学习虚幻的重点不是材质节点和实时渲染,如果你不做材质代码开发或者渲染开发的话,只是学习基本的pbr材质和使用虚幻的渲染功能,这个一点难度都没有。大部分有过影视材质渲染基础的同学一两天就可以掌握。他们的内容是一致的,没有什么革命性的变化。
4关于学习,第一不要停留在软件表面的操作上,这是最浪费时间的,以前文章论述过。第二,如果你真正的学到一些本质内容,你会发现本质是一样,比如刚才提到的pbr,你会发现在各种三维软件,绘图软件以及引擎中都是惊人的一致。但是你只是记住了材质球和节点参数,或者界面位置,那就白学了。包括虚幻中的posteffect效果控制,和三维中的相机特效,nuke合成,以及真实的相机原理都是紧密关联在一起的。本质知识都一样,学会迁移就行了。
5我目前认定的最值得我花时间学习和研究就是houdini和虚幻,但是我不是分开独立的学习,通过houdini把三维的本质掌握好了之后其实也把虚幻的内容掌握了60%,清晰地知道自己的目标以及学习路径,这是学习的最好的建议。
6虚幻中目前的地形编辑,粒子特效,相机,灯光,材质渲染,实例化等都可以在三维软件中找到一一对应的内容,只有交互这块是三维软件中不具备的。这也是我觉得虚幻最值得学习的内容。当然,交互包含了非常多的内容,比如基本的代码/蓝图,输入输出设备,性能优化,也包括UI/UX等用户体验方面的设计,甚至包括人类认知基础与习惯等学习和研究。一不小心又码了那么多字,估计能看完的人不多,算是目前自己对虚幻的一个理解。经验有限,不代表真理,希望大家可以独立思考。