VRM 标准着色器 MToon 的使用方法
北溟瞬息
编辑于 2024年06月13日 21:06
收录于文集
共1篇

本文内容来源于 UniVRM 与 Mtoon 的主要开发人员制作的一个演示 PPT。本文关于参数翻译叫法,主要会以三维行业常规叫法为准,叫法可能会与 2D绘画 行业有所区别。对于不确定业内对应翻译的名称,我会根据实际使用场景和效果进行自行翻译。


简介

MToon 是什么

MToon 是一种以还原日式动画风格为目的的标准着色器,

可以通过滑块很轻松的调整阴影效果。

它通过混合 基础色阴影色 来表现。

混合程度基于光源信息计算。

「基础色」和「阴影色」如何混合?

常规着色器 中的颜色计算

  • 颜色 ✖ 受到的光线强度

  • 乘法运算

  • 金色头发的阴影颜色是暗淡的金色

MToon 中的颜色计算

  • 根据接收到的光线强度对 基础色 与 阴影色 进行 Mix(混合)

  • 这样就能使金色头发的阴影部分呈现为桃色。


测试前的初期设定

在场景中创建平行光并将设定为白色

  • Color(颜色):#FFFFFF

  • Intensity(光照强度):1

  • 新创建的平行光会偏黄一些

  • 将其调整为纯白,避免光照对材质染色

Shader 变更

将 Material(材质) 的 Shader 更改为 VRM/MToon

接下来让我们尝试调整各种设置,观察各个设置的作用。

现在我们先只设置物体本身的颜色参数,暂时不考虑光源的问题


尝试设置:不使用纹理,只设置白色为底色

将下面两项调整为白色

Basic → Color → Lit Color & Alpha

Basic → Color → Shade

将下面两项设置为相同的纹理

Basic → Color → Lit Color & Alpha

Basic → Color → Shade

如下图所示,我们可以看到,光源的颜色不会对 Mtoon 材质产生染色


尝试设置:轮廓线

这种轮廓是使用所谓的几何反转扩大技术来实现轮廓线的效果。

在 Outline → Width → Mode 中,将轮廓模式改为 WorldSpaceWidth。

调整 Outline → Width → Width 滑块,修改轮廓宽度

Outline → Color → Mode 选择 FixedColorMixedLighting

Outline → Color → Color 中修改颜色

FixedColor 与 MixedLighting 的区别

FixedColor 会直接呈现出你设置的颜色

MixedLighting 颜色会与本体的颜色进行 Mix(混合)

常见的问题:眼睛和嘴巴轮廓线太粗了

解决方法:通过创建和设置纹理遮罩控制轮廓线的宽度

  • Outline → Width → Width

  • 白色:保持原有的宽度

  • 黑色:不显示轮廓线


尝试设置:添加阴影

目的:调整阴影效果以匹配环境。在有照明的情况下,物体没有阴影的话显然不符合直觉。所以我们需要添加阴影,让物体的材质展现出的效果符合我们的要求。

首先,使用 Directional light 1 (平行光) 进行调整。

  • 需要重新确认“初始设置”中的各项

  • Mtoon 已经支持 Point Light 和多个光源

  • 但由于灯光设置涉及美学知识,所以建议先从简单的设置开始。

设置阴影颜色

  • color → shade color

  • 调整 阴影色 的 V值 (亮度)

    • 100也是可以的

    • 一般来说 阴影色 的 V 值,应该低于 基础色 的 V 值。

  • 如果使用纹理进行指定:

    • 需要使用与基础色不同的纹理 (Tex),否则看不出效果。

    • 即使在同一个材质上,也可以根据部位绘制不同的阴影颜色。

    • ——可以指定多种多样的 阴影色 以实现丰富效果。

问题:如下图所示,光线的入射角调整到某些角度后,明暗分界线的位置不是想要的效果。

解决方法:通过 Shading Shift 调整位置。

  • Lighting → Shading Shift

问题:不希望肌肤的阴影边界过于明显

解决方法:通过 Shading Toony 调整边界的平滑程度。


尝试设置:添加边缘光

问题:如上图所示,感觉缺少了一些高光成分,感觉立体感不足。

解决方案:添加边缘光(Rim Light),效果对比如下图所示

目标:添加高光成分

  • 在MToon中使用Matcap或SphereMap等中已知的纹理映射

  • ——这种材质会根据模型的法线方向进行映射

例1:

例2:

例3:

结果:


阴影控制参数

Shading Shift(阴影偏移)

  • 明暗分界线偏移程度

Shading Toony(阴影卡通化程度)

  • 阴影柔和过渡/二分阴影程度

Shading Receive Multiplier(阴影接收倍增器)

  • 阴影的投射强度

Lit & Shade Mixing Multiplier(亮部&阴影混合倍增器)

  • 容易成为阴影的程度

LightColor Attenuation(光源颜色衰减)

  • 光源颜色饱和度的反映程度

Gl Intensity(全局光照强度)

  • 环境光的影响程度