Skip to content

材质制作指南

在编辑器中我们提供了一些预设材质库支持在我们的 Native 自研引擎和 Unity 同时使用

1 shader

在 Assets 中搜索 i3dshaders 可以找到我们预先写好的一些材质 shader

i3dShader名称简介对应UnityShader
SpecialStandard洞见自研PBRShader,在一个Shader里能够处理金属非金属、半透明、清漆等多种效果。具体使用方法将在下面讲解。
Standard

不透明物体的PBR渲染

金属/粗糙度工作流

Standard

Rendering Mode[Opaque]

Standard Cutout

适合渲染部分透明物体的PBR效果

通过设置CutoffValue实现透明度低于一定值就直接剔除,可以用来做树叶的效果。

金属/粗糙度工作流

Standard

Rendering Mode[Cutout]

Standard Fade

半透明物体的PBR渲染

修改Color里的a,效果就是直接影响最终的透明度,a调为0时物体完全不可见。

金属/粗糙度工作流

Standard

Rendering Mode[Fade]

Standard Transparent

半透明物体的PBR渲染

修改Color里的a,效果是只影响固有色的透明度,还会保留物体的材质特性,物体的高光和反射不受透明度的影响。

金属/粗糙度工作流

Standard

Rendering Mode[Transparent]

Standard Specular

不透明物体的PBR渲染

镜面反射/光泽度工作流

Standard (Specular setup)

Rendering Mode[Opaque]

Standard Specular Cutout

适合渲染部分透明物体的PBR效果

类似上述Standard Cutout

镜面反射/光泽度工作流

Standard(Specular setup)

Rendering Mode[Cutout]

Standard Specular Fade

半透明物体的PBR渲染

类似上述Standard Fade

镜面反射/光泽度工作流

Standard(Specular setup)

Rendering Mode[Fade]

Standard Specular Transparent

半透明物体的PBR渲染

类似上述Standard Transparent

镜面反射/光泽度工作流

Standard(Specular setup)

Rendering Mode[Transparent]

2 材质库

在下图目录中有我们预设的一些材质球可以直接使用

PBR材质

PBR 材质,或者说 Standard 材质,用于实现真实材质的光照渲染效果。请在「Shader」下拉列表中选择 i3dEngine 下的选项,如下图。

下面着重介绍Special Standard的使用方法

编辑器中内置了常用材质案例 Demo,真机实拍如下:

所用模型都是一个最简单的球体,只是附上了很少的几张贴图,调整各项参数即可达到多样的效果。

SpecialStandard 材质界面图示及说明如下:

- Rendering Mode: 有如下 4 个选项,效果与上述 Standard 系列中的 Rendering Mode一一对应,其中 AlphaTest 对应 Cutout

- Albedo: 固有色/漫反射颜色

- Metallic/Smoothness: 金属度和光滑度,金属度取贴图的 R 通道,光滑度取贴图的 A 通道

- Normal Map: 法线贴图

- Occlusion: 环境光遮蔽贴图

- Emission: 自发光,默认关闭,开启后颜色和贴图设置才会出现

- ShadowMap PCF Soft: PCF 软阴影效果,用于接收阴影的物体,开启后计算量会增大,谨慎勾选。

- Use Refraction: 暂未启用

- Use Clear Coat: 清漆涂层效果,默认关闭,开启后设置项才会出现

- Clear Coat 值设置在 0 - 1

- ClearCoat Roughness 对于很光滑的物体,推荐设置小于 0.1 的值,边缘反射的效果会更明显

- Normal Map 表面涂层的法线贴图,建议设置一些细节性的凹凸感例如划痕,涂层效果会很好

- Culling Mode: 面剔除模式,默认为剔除背面,可以选择正面剔除或不剔除。不剔除双面都会渲染,谨慎选择

下图展示了 4 种清漆涂层的效果。

例如这个红色球,仔细观察可以发现上面有一层带有划痕的涂层效果,达到一种较为真实的橡胶质感。

对于半透明模式,如 Fad e或 Transparent,材质内置了多种混合模式,当选择了这两个模式后混合模式就会在下面出现。

Transparency 用于调整整体的透明度。

Blending Mode 用于选择不同的混合模式,具体选项参考 PhotoShop 中图层混合或下文中粒子材质的混合效果。

选择不同的混合模式以及 AlphaTest(即Cutout)示例效果如下:

注意,AlphaTest 模式并不是模型本身是镂空的,而是通过控制 Albedo 贴图的透明度达到剔除部分三角面的效果。不过目前暂不支持 AlphaTest 的阴影镂空。

Unlit 材质

Unlit 材质用于制作不需要光照的渲染效果,例如纯贴图或者和颜色的渲染。

我们支持 Unity 内置的 4 个 Unlit Shader,在 Shader 下拉列表里选择 Unlit 下的选项。

其中 Transparent Cutout 类似上述 StandardShader 里的 AlphaTest,实现根据透明度抠图的效果。

自定义Shader

自定义 Shader 一般通过 Shader Editor 制作或者写 ShaderLab 实现。需要注意的是,由于 SurfaceShader 基于 PBR 光照渲染,即使自定义 Shader 本身不复杂,最终运行时也会进行全套的 PBR 光照计算。所以,出于对性能的优化考虑,对于不需要接收光照的个性化 Shader,强烈推荐基于 UnlitShader 进行制作或编写。

导出时我们的编辑器能够自动对自定义Shader进行编译并导出。由于我们的自研渲染引擎需要广泛兼容高中低端机型,对于一些特性可能不支持,导出过程中如果编译Shader出错,请联系我们的技术支持团队。

粒子材质

考虑移动端 AR 内容的性能优化,我们不支持在粒子中使用光照。因此请在 Shader 下拉列表中选择 Legacy Shader -> Particles下的选项。

根据内容效果请选择如下 shader:

Additive Multiply加倍叠加,与后面的颜色叠加后呈现非常亮的效果
Additive普通叠加,颜色叠加后会亮一些
Additive (Soft)柔和叠加,效果比普通叠加更加柔和
Alpha Blended透明度混合,正常的颜色混合效果
Multiply颜色相乘,效果会偏深偏暗,色彩浓重一些
Multiply(Double)双倍相乘,色彩比上面的Multiply更浓重