为了让更多开发者和游戏工作室能够掌握和运用到摄影制图法,Unity编写了《摄影制图法工作流程》作为指南。

《摄影制图法工作流程》指南:
摄影制图法工作流程指南(1)-准备阶段:概述、所需硬件和软件设备、考虑的问题。摄影制图法工作流程指南(2)-采集阶段:采集非小型对象、采集表面。摄影制图法工作流程指南(3)-采集阶段:采集小型对象、采集漫反射反照率(颜色纹理)、采集树叶。[url=http://forum.china.unity3d.com/thread-32820-1-1.html]摄影制图法工作流程指南(4)-处理过程:图像处理、重构创建模型、烘培网格。

今天我们将介绍摄影制图法最后的一个阶段处理过程中的:纹理烘培、移除光照、创建游戏资产。

纹理烘培
我们推荐使用Knald来处理烘焙过程,因为它速度又快又精确。我们也可以使用Xnormal或Allegorithmic Substance Baker等工具,然而这些工具处理烘焙耗时过长。建议处理同一资产的所有纹理时使用相同的烘焙软件。

Allegorithmic Substance Designer不支持.ply格式,这对之前的工作流程来说是个限制。为了使用Designer来实现烘焙,可以导出带有彩色纹理的.obj格式,请参考:摄影制图法工作流程指南(4)上色或纹理部分内容。

我们至今还未烘焙光滑度贴图。自动制作光滑度贴图比较麻烦,所以按照之前的工作流程看,需要使用带有闪光灯效果的照片作为参考来手动制作光滑度贴图。

1、Knald v1.2.1工作流程
在Knald 1.2.1.版本中,高分辨率网格被限制为一个网格只能带有3.5亿个顶点。

打开Knald,按下CTRL+B打开Baker烘焙器标签页。

Baker标签页
设置抗锯齿为16X,对应游戏比率为1024/m或更低的纹理。
设置所需贴图大小。
指定高分辨率网格。
指定用于烘焙目标的低分辨率网格。
使用默认设置添加烘焙目标:
高度(Height):用于实时环境的材质。 切线空间法线(Tangent space Normals):作为法线贴图用于实时材质。 对象空间法线(Object space Normals):用来去除光照。 环境遮蔽(Ambient Occlusion):用来去除光照并在实时材质上使用。 顶点颜色(Vertex color):来自顶点颜色的信息将传递给纹理,从而能够制作受光漫反射反照率纹理。 对象空间弯曲法线(Object space Bent Normal):用于去除光照。 位置(Position):用于去除光照。仅在使用大量集群处理UV后需要 标准化(Normalization)应设为“Uniform”

下图为烘焙器标签页。
154315xcpv9esklhnlzsne.jpg

Preferences标签页
设置纹理命名的前缀和后缀。

Export标签页
设置全局导出设置为TGA格式。TGA是安全的8位格式,所有软件都能正确处理TGA格式。
TIFF格式在不同软件中有不同的伽玛设置。
PNG格式在被Photoshop保存时没有Alpha通道。
选择导出路径。

Main标签页
输入导出名字。在偏好设置中设定的前缀和后缀会添加到这个名字上。
使用Baker标签页中预处理(PreProcess)按钮来开始烘焙。
导出所有内容。
展示所有导出贴图的示例。

2、Xnormal v3.19.3工作流程
高分辨率网格标签页
添加高分辨率网格。
从.ply顶点颜色生成基本颜色时需要取消勾选Ignore per-vertex-color(忽视各个顶点颜色)。在进行烘焙时必须勾选这个选项。

低分辨率网格标签页
添加低分辨率网格。

烘焙选项标签页
命名输出文件。需要根据烘焙的贴图添加后缀。
使用边缘填充(Edge padding)功能,指定一个非零数值。
设置大小。
设置抗锯齿。建议为游戏比率1024/m及以下的纹理使用。

对于要渲染的贴图需要处理以下设置:
法线贴图(Normal map):设置切线空间的开或者关,具体取决于是否为切线或世界法线贴图。这二种法线贴图不能同时制作。 高度图(Height map):如果使用原始值,需要exr格式,中间值设为0. Interactive and Manual使用8位格式,中间值为0.5。 环境遮蔽(Ambient occlusion):分布设置为余弦。扩展角度设置为179.5°。 弯曲法线(Bent normal):分布设置为余弦。扩展角度设置为179.5°。

154317ywfpo5vrtfryotwu.jpg
烘焙高多边形顶点颜色。由于高分辨率网格中有不同的设置(Ignore per-vertex-color设置),这个贴图必须单独生成。

154318pvtqn5ta8gzvqv88.jpg

请注意:Xnormal中不存在位置贴图。

最后,使用Generate Maps按钮来开始烘焙。

3、Substance Designer 6
创建新资产包
在资产管理器视图按下鼠标右键,选择“New Package”。

154318w4z4i4cz2w4ui2w6.jpg

在新资产包按下右键,依次选择Link / 3D Mesh。

154319td9lfcffpgwflh3x.jpg

在低多边形网格上按下右键,选择Bake Model Information。

154319e6n6oc6f66jfckkz.jpg

添加以下烘焙器:
Color Map from Mesh Ambient Occlusion from Mesh Normal Map from Mesh Bent Normals Map from Mesh Position

154319biui4iws3s8voo51.jpg

请注意:所有显示“from Mesh”的烘焙器都会显示警告标志。这是因为没有引用高分辨率几何体。

点击其中一个警告信息,然后在右侧面板引用HD网格。

154320l8vs4dyhajncdecv.jpg

下面是每个通道的设置。

154321c43h88izg7hfg8v7.jpg
154446ec4c4x4kwzqg2qef.jpg
154446kvrk0cr3qttlzcpc.jpg

最后一步是选择输出文件夹,设置烘焙贴图的正确格式。除了位置贴图外,8位能用,但是类似exr的32位格式会提供更高的精确度,所有文件都应该是8位文件例如:tga。

移除光照
本指南介绍的工作流程是针对将在关卡中采用动态照明的游戏资产。照片中包含拍摄时镜头环境的光照信息。为了能够应用虚拟光照,需要从创建的纹理中去除所有光照信息。在这个部分我们将详细讲解这个过程。

1、Unity
光照移除
有多种方法可以去除纹理的光照。有些方法需要有关拍摄时环境光的更多信息。对制作来说节约时间很重要,Unity开发了一个工具可以仅使用来自烘焙的基本颜色去除光照。

该工具的优点有:
快捷 去除许多光源 去除彩色光照 去除环境光照

在Unity中导入在去除光照信息时所需的4或5张贴图:
带有代表集群的Alpha的基色 环境遮蔽 对象空间法线 对象空间弯曲法线 如果需要的话可以使用位置信息

154447phoocw6icplpmtom.jpg

在光照移除工具中使用导入的纹理。

154449ntbiw29w044att0g.jpg

根据需要编辑遮罩并导出结果。如果依旧存在人工合成的痕迹,就使用Photoshop来处理掉。

得到的结果取决于烘焙质量。也就是重构结果的质量。黑色部分得到的结果较差。如下图所示,图中还可能出现一些人工合成的痕迹,并存在难以去除的阴影部分处理之前图片中的红色形状。

154448j4mj2rfamfd22of8.jpg

2、Photoshop光照移除
Unity光照去除工具并非十全十美,有些纹理可能存在难以自动移除的光照。这种情况下,可以使用Photoshop来巧妙地移除光照,即靠艺术家的技能移除光照,而不是软件的自动流程。

这个方法需要的时间较长,而且如果纹理中有太多光照、各种色光或是有显著的全局光照,去除光照的难度较大。Photoshop中的光照去除流程是基于世界法线和环境遮蔽贴图实现的。光照去除在32位格式上完成。

光照去除流程:
从烘焙载入基本颜色。 切换为32位格式。 创建一个曝光图层,将环境遮蔽贴图反转为遮罩。反转的原因是因为相比于使图像剩余部分变暗,照亮这些部分的效果会更好。 创建带有世界法线红色通道的曝光图层。 创建带有世界法线绿色通道的曝光图层。 创建带有世界法线蓝色通道的曝光图层。 用这三个曝光图层来管理全局光和方向光。 添加一些曝光图层来管理高光。可以使用高通道滤波器(位于Filters/Others/High Pass)来轻松分离这些高光。 与反照率照片参考进行比较,添加最后一个曝光图层来管理所有曝光,详情请参考:摄影制图法工作流程指南(3)采集漫反射反照率部分内容。

下面示例中可以看到环境光仍然影响着基本颜色,被标出的红色形状。

154452i44g46phxdpbgipd.jpg

3、结合Unity与Photoshop光照移除解决方案
第三种方法是使用Unity光照移除工具的输出结果,如果效果不够好,可以结合Photoshop的手动处理方法来得到理想结果,如下图所示。

154451z1j1i0sst0jdizir.jpg

可平铺材质
有些游戏资产需要可平铺材质来具有可重用性。平铺过程耗时较长,为了辅助这个过程,我们建议使用二个不同的方法:
Artomatix可以用于自动工作流程,用来制作可平铺材质。 Substance painter相结合可以用作艺术工作流程。

1、Artomatix
在编写本文时,Artomatix服务已经通过其网站完成了。



工作流程:
访问Artomatix网站。
选择移除接缝。
上传纹理。
从光照移除过程得到的基本颜色 烘焙的法线贴图 烘焙的高度图 来自烘焙设置边框和遮罩的环境遮蔽贴图。

仅需几分钟就创建出了可平铺材质。

如下图所示,右图是个完全由Artomatix基于左边原始图生成的可平铺纹理。如果一些图案太过明显,可以通过一些遮罩来移除。

154452oiarguugha11gda1.jpg

这个过程速度很快,但是当前版本得到的结果会显示太多相同的图案。这些图案可以使用Substance painter来移除。

2、Substance painter
Substance painter不仅能让艺术家在3D对象上绘制材质,也可以用来移除Artomatix的人工合成痕迹,或是直接用于制作可平铺材质。

使用一个带有3x3平铺的平面作为3D网格。需要使用该平铺来管理边缘之间的过渡。在Substance painter中设置材质,使用Painter克隆工具来制作可平铺材质。

154454znw9mdoowj9zerdn.jpg

通过克隆工具,我们平铺了边缘,擦除了颜色检查器,并且替换了一些不想要的图案。

创建游戏资产:3ds Max
使用已经烘焙过纹理的低分辨率网格作为游戏资产的基础。

不要修改用于烘焙的UV1通道。
放置轴心点,设置网格位置为0, 0, 0。
按照游戏中的效果旋转网格,应用重置Xform。

当在Unity中使用可平铺材质处理材质分层时,需要使用第二个UV集。本示例中要注意UV方向,根据需要制作细节层次。

得到的游戏资产效果如下图所示。

154455cpvpp4crrrnb8p6y.jpg

石块资产和分层的可平铺材质都是用摄影制图法处理得到的。

树叶制作:Photoshop
树叶在摄影制图过程需要手动处理一些自定义元素。目前建议使用基于照片的流程进行制作,这样不用经过任何3D重构,能够节省时间,得到的结果对游戏来说已经足够。

1、基本颜色
打开照片,转换为32位,调节照片的白平衡。这一步中,照片的效果类似于颜色贴图。下一步是制作Alpha遮罩。

将图像转换为8位,然后使用Hue/saturation来设置饱和度为0,这样能得到灰阶图像。多次使用Brightness/Contrast来制作黑白图像。可以使用高斯模糊来擦除灰尘上的合成痕迹。接下来移除颜色检查器,手动清理最后的合成痕迹。

154512zendsg690xg7guue.jpg

这种黑白纹理可以用作遮罩。将它保存在漫反射反照率纹理的Alpha通道。

当有大量树叶时,将它们打包为图集会更高效。

154513gchoq7wqbiqxboco.jpg

2、法线贴图
为了制作一个树叶的法线贴图,需要制作二个法线贴图并结合起来。该方法有点特别,但通常能得到足够好的结果。它需要使用Xnormal Photoshop插件。

第一个法线贴图是基于之前过程生成的遮罩制作出来的,它会定义全局形状。
将遮罩复制到新文档中。 设置模式为RGB Color。 应用高斯模糊来制作圆角形状。 使用Xnormal过滤器的Heights2Normals

如果树叶更复杂,可以制作简单的3D网格,然后进行烘焙来得到全局形状。

154513rf9xgcevmmq58vb8.jpg

第二个法线贴图使用漫反射反照率贴图来提供更多细节。
使用Xnormal过滤器的Heights2Normals。

154514dg6xz2i3x7n9znd7.jpg

结合二个法线贴图:
从形状载入法线贴图。 创建分组。 添加新图层,图层中是来自反照率贴图的细节法线贴图。 在红色和绿色通道填充白色。 设置图层为multiply。只保持蓝色通道。 添加新图层,图层中是来自反照率贴图的细节法线贴图。 蓝色通道中填充灰色(128, 128, 128)。 设置图层为叠加层(overlay),只保持红色和绿色通道。 管理分组的不透明度,带来更多或更少细节。 复制粘贴新的顶部图层结果。 使用Filter/Xnormal/Normalize处理法线贴图。

154515vgh776r9z306x960.jpg

最后,我们为纹理的命名设置前后缀。虽然得到的结果不是很准确,但这是最简单的方法,能够制作效果足够好的成品。

游戏内渲染效果如下图所示。

154516h4qwfdjdyq4iq46i.jpg

小结
《摄影制图法工作流程指南》分享到此就全部结束了,我们希望更多开发者和游戏工作室能够掌握和运用到摄影制图法,创作出精彩的作品。 更多Unity技术内容分享,尽在Unity官方中文论坛(UnityChina.cn)!
制图, 摄影 本主题由 admin 于 昨天04:17 置顶

image488.jpg(71.56 KB, 下载次数: 0)

 

image488.jpg锐亚教育

锐亚教育 锐亚科技 unity unity教程