Unite 2018|基于照片建模的游戏制作流程
时间: 2018-07-12 11:36
浏览次数:
Unity之前发布了了全新的实时渲染作品《死者之书》的预告片,Unity引擎的画面表现又一次提升到全新的高度。这个Demo的场景包含大量的树木、植被、岩石等素材,非常接近真实照片的
Unity总代理之前发布了了全新的实时渲染作品《死者之书》的预告片,Unity引擎的画面表现又一次提升到全新的高度。这个Demo的场景包含大量的树木、植被、岩石等素材,非常接近真实照片的感觉。在Unite Beijing 2018大会上,Unity大中华区技术总监张黎明给大家介绍了《死者之书》预告片制作过程中使用的基于照片建模的游戏制作流程。
下面是本次演讲的视频:
https://v.qq.com/x/page/g06808371id.html
简介
整个制作流程大概包含以下步骤。
首先,使用单反相机拍摄照片素材。拍摄之后进行校色、照片建模、生成高模、上色、简化三角面、生成UV、烘焙、去光照等步骤。
整个流程划分为二个阶段:
第一阶段:在现实场景中拍摄照片。
第二阶段:使用各种软件处理照片数据,最终创建出游戏中的美术资源。
照片拍摄
照片拍摄最关注三个问题:拍摄对象、拍摄地点、拍摄时间。
拍摄对象
选择拍摄对象首先需要理解照片建模软件的工作原理。照片建模软件是通过匹配不同角度拍摄的照片中的相同像素来重建模型的。
匹配像素需要几点要求:
1、物体不能移动。如果物体移动了,软件就很难把像素的位置匹配起来。例如:风中摇摆的树枝。
2、物体不要有大量的反射。因为反射光的颜色和亮度在不同角度看是不一样的,例如:反光强烈的鹅卵石。
3、物体不能是半透明的。半透明也有类似的问题,不同角度拍摄颜色会发生变化。例如:透明的水杯。
4、物体最好不要只有一种颜色,照片建模软件很难重建纯色的物体。例如:纯色的馒头。
另外还要注意照片建模需要的工作量,照片建模整个制作流程需要比较长的时间。如果需要建模对象是比较简单的模型,例如:一个茶壶,可能美术一天就能把模型做完,对这样的对象建议使用人工建模。
拍摄地点
因为需要到现实场景中拍摄照片,我们可能有很多时间是花在交通上面,所以我们建议拍摄之前先用地图工具规划你的路线,避免太多时间花在路上。另外尽量避免公共场所,因为很多人群会来回走动,导致照片建模软件没有办法识别拍摄的对象。如果拍摄文物的话要考虑是否有版权方面的因素。
拍摄时间
拍摄时间最需要关注的是天气。一般选择晴朗但阳光不太强烈的天气,因为阴影在最后阶段需要去掉,另外尽量不要有风。为了避免过强的太阳光,我们有时候会在拍摄物体旁边挂一块黑布,这样把直射的太阳光挡住一部分,对最终数据的处理比较方便。
数据处理
数据处理过程中我们用到很多软件,如下图所示。
硬件需要找一台非常高配的电脑。除了高端的CPU、GPU以外,我们还使用了2TB的SSD硬盘,加快读写过程。
在颜色矫正过程中,我们分别用到了DCRaw和Photoshop软件。然后使用Reality Capture软件从照片生成点云数据。
导出模型的时候有二种格式可以选择,ply适合均匀分布的点云数据,颜色信息保存在顶点中。obj用来保存稀疏的网格数据,颜色信息转到纹理中保存。一般情况下我们推荐ply格式,因为obj格式保存的文件一般会大很多。
简化网格体推荐使用Instant Mesh。如果顶点数还是太多的话,可以进一步使用Simplygon,最终使用3Ds Max清理无用的顶点。
去光照
通过照片还原出的模型都带有光照信息,不能直接用在游戏中叠加其它光照,所以我们需要把照片中原始的光照去掉。
Unity法国团队开发了Delighting工具,用于生成最终的无光照Albedo纹理。这个工具目前是发布在Github上的开源工程。
下载Delighting:https://github.com/Unity-Technologies/DeLightingTool
创建游戏素材
在最终的游戏素材中,我们使用了Unity最新的Scriptable Render Pipeline中提供的Layered Material。另外通过Custom Render Texture实现了动态的Mask纹理,用于将多层纹理混合。
小结
以上是这次演讲的主要内容,详细内容请参考Unite Beijing大会演讲视频。更多Unity技术内容请访问Unity官方中文论坛(Unitychina.cn) !