Loading
1

莫斯科Rumyantsevo小区VR漫游动画

工作室:Biganto Visual(俄罗斯)

软件:3dsmax, Corona Renderer, RailClone, V-Ray

本次带来由Biganto Visual工作室制作的莫斯科西部“Rumyantsevo Park”高级公寓大楼鸟瞰渲染的创作流程。你将看到1700套公寓单位和超大的项目面积是如何被制作并渲染并做成VR的。

介绍

我们的客户除了想要一套静帧渲染外,还要有一个能互动的VR漫游。Biganto Visual工作室在几年前就开始涉足VR技术,这个项目最大的难点在于客户需要表现包括每栋大楼的建筑外观,室内的大堂,房间,楼道等等一切都元素,可以漫步在广场里,进入公寓大楼里,甚至走进1700套户型的任何一套里!

我们的渲染是基于360度的全景渲染,用的是Corona和V-Ray引擎。我们预先用低模来测试最后的效果是否和我们的静帧渲染能吻合。我们有自己研发的脚本,里面包括了立体声,支持各类VR配件,流畅的效果,这些保证了让我们的工作中只存在那些最有用的工具,而摒弃了其他不必要的没用的东西。

制作

我们的制作技术是合成多个全景图来展示一个大项目。越多的全景就可以带来越多的活动范围和自由度,所以我们有一个最少全景图数量的下限,来保证客户可以在里面自由穿行。为了制作那些场景我们将相机利关联上marker(标记物)将他们组合到一起。marker可以是个小点那么简单,只要能定位相机即可。我们手动为场景添加这些标记物,再用脚本来为这些相机创建动画。

全景渲染用V-Ray和Corona,值得一提的是,我们用cube maps,而不是球形全景spherical panoramas。用cubemaps有这么几个好处:

1.能完美的与我们的引擎结合而无需任何转化操作

2.将来的后期里也很方便

3.根据我们的经验,它的速度比较快,一般我们只要花15到20分钟就能完成一个单元的渲染。

室外的全景总共渲染了250-350张左右的全景图,你可以想象得出这对硬件的要求有多高。当要渲染几百张图时,我们用渲染农场,这样每张只要几分钟就搞定了。另一个关键元素是场景模型的优化,我们用各种能用的建模方式,从最传统的,用脚本的,一直到用lidar技术扫描照片的等等。准备好需要的场景元素,上传到服务器,开始预览我们的动画,并逐步添加细节,比如可点开工具栏的物体,场景的切换。这些其实和其他公司的做法差不了多少。

室外

室外渲染我们用Corona,这里有些截图。

每做一个大场景时,对模型的优化要从一开始就着手。考虑到未来的漫游动画,模型的优化实在是非常重要,要灵活运用关联复制,代理物体和XRef,这些技术必须掌握。保持场景文件有条理,层的结构和命名要和图纸能匹配起来。那种到处查找一个物体的情况尽量避免发生。我们一般在导入图纸后,将元素分类,按每一栋房子群组。

那些重复的建筑构建,包括道路标志,路灯,车道线等,我们用RailClone来做。那些树,车,人的近景渲染里,ObjectPainte是很有帮助的工具。场景里全部的高精度模型全是代理。灯光比较基本: HDRI加Corona的天空和太阳。

细节与材质

场景本身没什么复杂的模型,就是有些小细节,比如窗户,窗帘,总共有六种不同的窗框款式,这种建模在RailClone里很容易。遮光布和窗帘我们用到了 “MaterialByElement”编辑器来随机赋予材质ID,这样就能配合使用Multi/sub material插件来给窗帘做出随机感了。窗帘的材质就是一堆不同的窗帘图案加一张遮罩。

外墙材质

这是一个比较麻烦的材质,它出现在一些特定的墙体和窗台处。一方面我们要渲染一个带有细节刻画的街景,另一方面,那些外墙材质又不能太过于抢眼。这部分模型的面会比较多,所以我们尽可能去用贴图来表现细节,贴图都是根据图纸来仔细制作的,所以能与模型贴合。

夜景灯光

夜景渲染里,从室内透出的光线是一个重要的能体现逼真效果的元素,有几种办法可以做到这一点,我们比较喜欢用CoronaMultiMap来制作。第一步,先在必要的地方布局好一堆Corona灯。第二步,在灯的纹理中用关联复制的方式添加CoronaMultiMap。假如需要关闭某些灯,可以赋予一张纯黑的贴图来达到效果。

室内

我们先制作了一套客户通过的样板房场景,其中的材质和模型都是优化过的,渲染起来很快,毕竟1700套单元房还是不少的数目,肯定不会一一建模,不过依旧有88套户型,所以我制作了88个有着同样家具和材质的室内场景,然后复制到所有的房子里去。我们感觉做88套墙体不一样的户型也不是什么很难的事情,不过真的做起来,除了很枯燥以外,给每套户型建模窗户是蛮费力的事情。

首先是这些窗户的数量,每套单位都有十多扇窗,每套都出图,这样一计算等于是几千张图,再加上我们要做一套带家具,一套不带家具的,这工作量又翻了一倍!第二个是户型的分布,这些不同的户型分布在不同的楼层。

所以手动一套一套的放置,这个工作量可想而知。我们为此开发了一个脚本,再利用3d Max和Fusion里的一些技巧做到了这一点。先获取室外的背景照片,放到室内场景的alpha通道里去。还创建了一个动画相机,沿着路径漫游,路径的每一个关键点都设置在了窗口处。就这样将全部88个户型撸了一遍。

室内的相机角度一直朝向北面,为了匹配VR和CR在贴图坐标上方向的不同,我们给所有靠窗的相机旋转了90度,配合上alpha通道,我们就能方便的给室内场景做背景图了。然后,为了让每一个单元都渲出差不多的Corona太阳的光照效果,直接渲染是不够的,不过好在我们只要窗外的背景即可,无需与房子有任何关联。为了删除掉建筑模型上一些不必要的物体,我们用的办法是消隐,将物体变为全透明。

首先我们给那些物体一个Output贴图,然后我们用一个叫Slate Connector的脚本将它复制到全部需要的材质上去。然后,又用了一个遮罩来让这种透明只出现在距离相机较近的时候。通过这种办法我们每一个房间都能得到不一样的窗外美景。

接下来的任务是就是将这些窗外的背景添加到室内渲染里去,我们用了Fusion和一些辅助脚本来完成。总的思路是用Fusion的时间线来自动合并窗外背景和室内全景 ,将窗外背景的速率调得比室内的慢,这样室内渲染28帧,室外背景才渲染了9帧。为此我们研发了一个脚本来合算出到底我们要减缓多少才能刚好满足全部渲染帧数,并将结果一一对应的自动保存到指定目录下。下图可以帮助理解这个流程。

这里面还有些关键节点用天空图替换了,以便后期处理。因为我们的灯光布局在室内和室外都是一样的,这样就很容易后期。以上这些工作后,我们就只要点击渲染等着看了。看到每个窗户外望出去的不同角度的背景,一直重复88次。

后期

关于后期,从技术层面来说,采用Cube Maps基本不受任何条件的影响,虚光效果在这里要谨慎使用。然后,全景图的调整分割成六个块面进行,完成后再次合并起来。

场景里的每一个物体在每一帧里面要基本保持一致。比如在厨房里是阳光明媚,那么在其他房间里就不该出现清晨或黄昏。整个后期过程和常规视频编辑没什么两样,我们尽可能的用些常用的对比,明暗,色调等命令来编辑,这里是些最终图。好了,大功告成,可以将它上传到客户的网站里了。