Material(材质)

Material

Material

VRM 支持的 材质(着色器) 有三种,unlit, standard, MToon

UniGLTF 支持 unlitstandard 两种版本。

export / import 对应表

support export gltf import  
Standard(Unity标准) PBR Standard  
❌v0.xx.0 UniGLTF/StandardVColor     UniUnlit 支持顶点色
Unlit/Color(Unity标准) KHR_materials_unlit UniGLTF/UniUnlit  
Unlit/Texture(Unity标准) KHR_materials_unlit UniGLTF/UniUnlit  
Unlit/Transparent(Unity标准) KHR_materials_unlit UniGLTF/UniUnlit  
Unlit/Transparent Cutout(Unity标准) KHR_materials_unlit UniGLTF/UniUnlit  
UniGLTF/UniUnlit(VRMShaders) KHR_materials_unlit UniGLTF/UniUnlit  
❌v0.76.0 VRM/UnlitTexture(UniVRM) KHR_materials_unlit UniGLTF/UniUnlit 请使用 UniUnlit
❌v0.76.0 VRM/UnlitTransparent(UniVRM) KHR_materials_unlit UniGLTF/UniUnlit 请使用 UniUnlit
❌v0.76.0 VRM/UnlitCutout(UniVRM) KHR_materials_unlit UniGLTF/UniUnlit 请使用 UniUnlit
❌v0.76.0 VRM/UnlitTransparentZWrite(UniVRM) 无法在 gltf 中表现  

在MToon 中

有TransparentZWrite

功能

VRM/MToon extensions.VRM.materialProperties VRM/MToon  
🚧 VRM10/MToon10 VRMC_materials_mtoon VRM10/MToon10

UniUnlit

UniUnlit

大概是 UnLighting 的缩写,即 Unlit


U​nlit

将以 glTF 的 KHR_materials_unlit 扩展形式保存。

可以在 Unity 中导出为 Unlit 着色器

功能 color texture vertex_color alpha/cutout no culling
glTF
UniGLTF/UniUnlit
Unlit/Color        
Unlit/Texture        
Unlit/Transparent     blend  
Unlit/Transparent Cutout     cutout

顶点颜色
只有 UniGLTF/UniUnlit 支持顶点颜色。

在导入时将应用顶点颜色。如果在不需要顶点颜色的模型上应用 Unity 的 Unlit 系列材质并导出,那么在下次导入时,颜色可能会意外改变。在这种情况下,通过在导出时启用 RemoveVertexColor,可以导出不包含顶点颜色的 Mesh

Standard

Standard

Physically Based Rendering(基于物理的渲染/PBR )

Standard Shader

UniVRM 不会专门创建针对物理基础渲染(PBR)的着色器,而是使用 Unity 的标准 Standard 着色器。

⚠反射太强 闪闪发光
Shader 类型为 Standard(Unity 标准),且 metallicsmooth 值较高。将材质的着色器更改为 Unlit/UniUnlit,可以直接显示纹理。


Metallic, Roughness, Occlusion 对应表

用途 glTF material     Unity Standard Shader
Occlusion occlusionTexture R G _MetallicGlossMap
Roughness pbrMetallicRoughness.metallicRoughnessTexture G A _MetallicGlossMap (smoothness = 1 - roughness)
Metallic pbrMetallicRoughness.metallicRoughnessTexture B R _OcclusionMap


将 Metallic Smoothness Occlusion 合并为一张纹理 V0.69.0 
v0.69.0 版本开始,将纹理合并为一张。

v0.68.0 及之前

MToon

Mtoon 的使用方法


MToon 简介

MToon 旨在实现日本动漫风格的表现。它通过根据 光照参数 和 光源环境 混合 Lit Color(主色) 和 Shade Color(阴影色) 这两种颜色来实现这一目标。

mtoon_about.png

来自ニコニ立体的使用了MToon的3D角色模型。


快速设置

 基本步骤

普通的材质

如果不希望角色面部或之类的材质有太多阴影

设置项目

准备

选择要进行修改的材质(Material) 并将着色器(Shader) 更改为 VRM/MToon

set_mtoon.png

将材质的着色器更改为 VRM/MToon

Rendering

download.png

Rendering Inspector(检查器) 中包含的项目。

在 Rendering 中,设置主颜色和阴影颜色以及 Cull Mode(剔除模式)。


渲染类型 (RENDERING TYPE)

这里可以设置材质是不透明还是半透明。

剔除模式 (CULL MODE) 

这里可以设置是否渲染多边形的法线反面。


Alpha (阿尔法)

只有当 Rendering Type(渲染类型)Cutout 时才需要设置。

Color(颜色)

设置渲染颜色。纹理和颜色将进行乘法计算。将主色Lit Color, Alpha为受光照影响的颜色,影色Shade Color为未受光照的颜色。此外,设置不透明度信息Lit Color, Alpha的alpha值。另外,在Lit Color, Alpha的 Alpha 值中设置不透明度信息。


Lighting(照明)

Shading Shift(阴影偏移)

调整主色和影色的阈值,以适应光线照射物体的方式。当数值为0时,为正常的光照效果。当数值为负时,会呈现类似动漫般、范围广泛的主色光照效果。需要根据显示的警告信息将Shadow Receive Multiplier设置为0,以禁用自身阴影。

Shading Toony(阴影风格)

这个设置决定上面介绍的 Shading Toony(阴影偏移) 的明暗交界线过渡的平滑程度,当数值为0时,它(阴影过渡)会变得像一般的Lambert(兰伯特) 模型一样写实且平滑。当数值为1时,受光面和阴影面会在交界处产生明显的分割,呈现出动画风格的照明效果。(类似二分阴影)

Shadow Receive Multiplier(阴影强度)

设定自我投影和阴影的影响程度。0的时候不受影响。1的时候会受到影响。

LightColor Attenuation(灯光颜色衰减)

设置光源颜色的影响程度。设置为0时,受光源颜色的影响。设置为1时,不受光源颜色的影响,只反映光源的亮度。

Rim Additive(边缘光追加)

根据相机和法线之间的关系显示额外的光源。通常被称为 sphere map(球形贴图) 或 MatCap。

Emission(自发光)

设置与光源环境无关的恒定颜色。

Normal Map(法线贴图)

设置法线贴图。右侧值设置法线贴图的强度。

Outline(轮廓线)

轮廓线的设置

Width Mode(宽度模式)

Width(宽度)

设置轮廓的宽度。当宽度模式是世界坐标系时,宽度单位为米。


Color Mode(颜色模式)

Color(颜色)

设置轮廓线颜色。

Color Lighting Mix(色彩灯光混合)

当轮廓线的 Color Mode(颜色模式) 设置为 MixedLinghting(混合光照) 时生效,该设置可以调整轮廓颜色与光照颜色混合的乘法系数。