Substance制作PBR贴图导入Cocos使用

视频教程:https://www.bilibili.com/video/BV1gL411Q726

教程配套项目下载:Cocos Store

Substance制作PBR贴图导入Cocos使用
1.概述
PBR(Physically-Based Rendering),意为基于物理渲染的材质,是当前主流游戏引擎使用的真实感3D渲染工作流。PBR是一种能对光在物体表面的真实物理反应提供更精确着色与渲染方法。不仅擅长用来表现非常写实的材质,同时也能用来处理风格化的材质。目前主流的PBR材质制作方法,是使用Substance来制作PBR材质贴图。Cocos Creator也使用的是PBR材质。现在我们就来看下,Substance制作的PBR贴图怎样导入Cocos使用。

  1. Cocos Creator支持的PBR材质贴图类型
    Cocos Creator创建的材质,默认使用的是 builtin-standard.effect 着色器,我们称之为 PBR材质,PBR材质使用PBR流程中的 Metal/Roughness 工作流。
    在Cocos Creator使用PBR材质进行渲染时。我们需要至少3张基础贴图:
    固有色贴图(Albedo Map)、法线贴图(Normal Map)、PBR(PBR Map)贴图。
    固有色(Albedo Map)贴图用于表现材质在没有光照情况下所呈现的基础颜色信息。
    法线(Normal Map)贴图用于表现物体表面结构细节的贴图。

PBR(PBR Map)贴图是一种混合贴图。在贴图的R\G\B三个通道各包含一张贴图。
R 通道:环境光遮蔽(AO)
G 通道:粗糙度(Roughness)
B 通道:金属度(Metallic)

  1. Substance导出Cocos Creator可以使用的PBR贴图
    Substance 3D Painter软件是一款功能强大的PBR材质贴图制作软件,可以很方便的制作PBR贴图并导入Cocos使用。在Substance 3D Painter制作完材质以后,我们可以制作一个符合Cocos默认材质使用的输出模板(output templates),就可以导出Cocos Creator可以使用的PBR贴图了。具体方法如下:!
  2. 创建CocosPBR输出模板
    点击:File - Export texture,选中OUTPUT TEMPLATES面板。快捷键:Ctrl+Shift+E

    点击预设(Presets)按钮旁边的+,创建新预设。
    002
    右键点击新建的预设,Rename(重命名)为:CocosPBR。
    003
    此时我们已经创建了一个空白预设。
  3. 创建固有色(Albedo Map)贴图
    点击RGB+A,创建一张带Alpha通道的RGB贴图。
    image
    命名为:$textureSet_Albedo
    005
    以$符号开头的内容,表示这是一种贴图前缀命名的表达式。Substance默认提供以下几种表达式。点击名称右边的 $ 按钮可以选择不同前缀。
    007
    $textureSet:表示输出贴图的名称前缀为:材质的TEXTURESET,
    例如:本示例工程的TEXTURESET名称是:Droid。
    则$textureSet_Albedo,就表示,最终输出的贴图名称为:Droid Albedo。
    008
    同理:
    $project: 以项目名称作为前缀。$mesh:以模型名称作为前缀。
    $udim: 以udim名称作为前缀。$colorSpace: 以色彩空间名称作为前缀。
    也可以同时加多个前缀,例如:$project
    $textureSet_Albedo。
    将Input maps面板中的Base Color拖入新建贴图的RGB栏。选择:RGB channels。

    将Input maps面板中的Opacity拖入新建贴图的A栏(Alpha通道)。选择:Gray channels。

    这样固有色(Albedo Map)贴图就创建完成了,包含颜色信息和Alpha通道。
  4. 创建法线(Normal Map)贴图
    点击RGB,创建一张RGB贴图。并命名为:$textureSet_Normal。
    011
    将Convert maps面板中的Normal OpenGL拖入新建贴图的RGB栏。选择:RGB channels。
  5. 创建PBR(PBR Map)贴图
    前面我们已经知道Cocos的PBR贴图是由贴图内R\G\B三个通道的三张图构成的,所以这里要创建一个R+B+G贴图。并命名为:$textureSet_PBRMap。
    013
    将Convert maps面板中的Mixed AO拖入新建贴图的R栏。选择:Gray channels。
    将Input maps面板中的Roughness拖入新建贴图的G栏。选择:Gray channels。
    将Input maps面板中的Metallic拖入新建贴图的B栏。选择:Gray channels。
  6. 创建自发光(Emissive)贴图
    点击RGB,创建一张RGB贴图。并命名为:$textureSet_Emissive。
    015
    将Input maps面板中的Emissive拖入新建贴图的RGB栏。选择:RGB channels。
  7. 导出PBR贴图
    Output Directory: 输出目录,设置导出的贴图保存在硬盘的位置。
    Output Template:选择我们刚才新建的CocosPBR模板。

    然后点击Export按钮,导出贴图。
  8. Cocos Creator使用Substance导出的PBR贴图
  9. 在Cocos Dashboard创建新Cocos项目
  10. 点击Project面板。
  11. 选择Cocos版本。
  12. 选择Empty(3D)项目模板。
  13. 输入项目名称。
  14. 选择项目保存在硬盘上的位置。

    在Assets右键Create – Folder。创建新项目资源文件夹,并命名文件夹。

    创建资源文件夹,来存放模型资产和场景文件。
    Materials:存放材质,Models:存放模型文件。
    Scenes:存放场景文件,Textures:存放贴图文件。
    右键点击Scenes文件夹创建新Scene,命名为:Droid。然后双击打开Droid. Scene
  15. 导入模型和贴图
    将做好的机器人模型和背景模型FBX拖到刚才新建的Models文件夹。

    将Substance导出的PBR贴图拖到刚才新建的Textures文件夹。

    贴图导入Cocos后,设置贴图的类型。
    Albedo、PBR、Emissive贴图的类型选择:texture。
    Filter Mode选择:Bilinear with Mipmaps。
    image
    Normal贴图的类型选择:normal map。
    Filter Mode选择:Bilinear with Mipmaps。
    image
  16. 把模型导入场景
    把机器人模型和背景模型从Assets拖到上面Droid场景内。
  17. 为模型创建材质贴图
    右键点击Materials文件夹创建新默认材质(builtin-standard),命名为:M_Droid。

    将建好的材质赋予机器人模型,把材质拖到机器人MeshRender下的Materials栏内。

    给材质添加贴图
    把贴图添加到对应的位置

    开启USE ALPHA TEST,使材质透明部分变透明,并调整相关材质参数。

    右键点击Materials文件夹创建新默认材质(builtin-standard),命名为:M_BG。作为背景的材质。不需要添加贴图,调整颜色为深色,以突出机器人。
  18. 调整环境光和主光源并开启阴影
    在Hierarchy选中场景Droid,在右边Inspector面板调整参数。
    Env Lighting Type:AUTOGEN_HEMISPHERE_DIFFUSE_WITH_REFLECTION
    Envmap:选择一张合适的HDRI贴图,这里我使用的是一张室内环境的HDRI贴图。
    030
    本场景使用的室内环境HDRI贴图

    调整Sky Lighting Color和Ground Lighting Color颜色
    Sky Illum:25000

    开启场景阴影选项:
    Type:Shadow Map
    Shadow Map Size:2048

    调整主光源Main Light
    Color:调整一点偏黄的日光颜色。
    开启阴影。
    Illuminance:120000

    机器人模型也要开启阴影:
    选中机器人模型,开启Shadow Casting Mode
    034
  19. 完成项目制作
    最终完成效果如下图:

8赞

6666666!

66666效果不错

mark~