2023-12-18 10:48:54 +08:00
|
|
|
|
---
|
|
|
|
|
title: ToonShaderModel
|
|
|
|
|
date: 2023-12-18 10:00:34
|
|
|
|
|
excerpt:
|
|
|
|
|
tags:
|
|
|
|
|
rating: ⭐
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# ToonStandard(Cel打底)
|
2024-04-04 21:48:26 +08:00
|
|
|
|
## Diffuse
|
|
|
|
|
```c++
|
|
|
|
|
//Lighting.Diffuse *= AreaLight.FalloffColor * (Falloff * HalfLambert);
|
|
|
|
|
//TODO:添加阴影过渡效果。
|
|
|
|
|
//ToonShadow添加类型:1.PBR(只能调整过渡颜色) Lighting.Diffuse = DiffuseColor * (1 / PI) * AreaLight.FalloffColor * (Falloff * HalfLambert); 2.ShadowColorTexture(兼容RampTexture效果也就是原神的效果),还需要添加ShadowColorIntensity(后需要改成曝光相关额东西)。Lighting.Diffuse = DiffuseColor * (1 / PI);
|
|
|
|
|
//ToonLighting添加类型:1.PBR(多光源模式)2.主光有效,针对cel。
|
|
|
|
|
//---------------------------------------------------------
|
|
|
|
|
//Specular
|
|
|
|
|
//ToonSpecular添加类型:1.PBR 2. 各项异性(defaultLit)3. 各项异性头发 4. 自定义高光大小与过渡效果 https://zhuanlan.zhihu.com/p/361918341 5.自定义高光形状贴图 https://zhuanlan.zhihu.com/p/640258070 https://github.com/AnCG7/URPShaderCodeSample/blob/891034b3fa6e838e2b231390755479f0f649f181/Assets/Shaders/NPR/Cartoon/Stylized%20Highlight%20(Transform).shader#L2
|
|
|
|
|
```
|
|
|
|
|
|
2024-04-18 21:25:18 +08:00
|
|
|
|
**ToonShadow**:
|
|
|
|
|
再实现阴影偏移以及阴影羽化效果的基础上。
|
|
|
|
|
1. PBR:兼容UE默认阴影效果。只能调节阴影过渡颜色。使用的公式为: `Lighting.Diffuse = DiffuseColor * (1 / PI) * AreaLight.FalloffColor * (Falloff * HalfLambert);`
|
2024-04-19 15:09:19 +08:00
|
|
|
|
2. ShadowColorTexture:用于定义ShadowColor(使用贴图指定ShadowColor)
|
2024-04-18 18:48:16 +08:00
|
|
|
|
|
2024-04-18 21:25:18 +08:00
|
|
|
|
**ToonLighting**:
|
|
|
|
|
1. PBR:UE默认光照,多光源模式。
|
|
|
|
|
2. 仅主光有效:针对cel。
|
|
|
|
|
|
2024-04-04 21:48:26 +08:00
|
|
|
|
## Specular
|
2024-04-18 21:25:18 +08:00
|
|
|
|
**ToonSpecular**:
|
|
|
|
|
1. PBR:UE默认高光效果。
|
|
|
|
|
2. 各项异性(defaultLit):UE默认的各向异性高光效果。
|
|
|
|
|
3. 各项异性头发 :**Kajiya-Kay**高光模型。
|
|
|
|
|
4. 自定义高光大小与过渡效果:https://zhuanlan.zhihu.com/p/361918341
|
2024-04-19 15:09:19 +08:00
|
|
|
|
5. 自定义高光形状贴图:https://zhuanlan.zhihu.com/p/640258070 https://github.com/AnCG7/URPShaderCodeSample/blob/891034b3fa6e838e2b231390755479f0f649f181/Assets/Shaders/NPR/Cartoon/Stylized%20Highlight%20(Transform).shader#L2
|
2023-12-18 10:48:54 +08:00
|
|
|
|
|
2025-01-30 22:53:06 +08:00
|
|
|
|
## 罪恶装备渲染效果还原
|
2025-02-19 15:50:23 +08:00
|
|
|
|
- 原始演讲视频:https://www.bilibili.com/video/BV1Ps411C7mw/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e
|
|
|
|
|
- 原始演讲PPT:https://www.ggxrd.com/Motomura_Junya_GuiltyGearXrd.pdf
|
2025-02-19 18:00:53 +08:00
|
|
|
|
- [【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(1)](https://www.cnblogs.com/TracePlus/p/4205798.html "发布于 2015-01-06 12:56")
|
|
|
|
|
- [【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(2)](https://www.cnblogs.com/TracePlus/p/4205834.html "发布于 2015-01-06 13:23")
|
|
|
|
|
- [【翻译】西川善司的「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,后篇](https://www.cnblogs.com/TracePlus/p/4205978.html "发布于 2015-01-06 14:23")
|
2025-02-19 15:50:23 +08:00
|
|
|
|
- 知乎文章
|
2025-02-20 22:34:32 +08:00
|
|
|
|
1. [ ] ***https://zhuanlan.zhihu.com/p/631214546
|
2025-02-21 18:29:55 +08:00
|
|
|
|
2. [ ] https://zhuanlan.zhihu.com/p/436850004
|
|
|
|
|
3. https://zhuanlan.zhihu.com/p/513598386
|
|
|
|
|
4. https://zhuanlan.zhihu.com/p/493802718
|
|
|
|
|
5. [x] https://zhuanlan.zhihu.com/p/513228315
|
2025-02-19 15:50:23 +08:00
|
|
|
|
|
2025-02-19 18:00:53 +08:00
|
|
|
|
### 贴图
|
|
|
|
|
- base:基础色
|
2025-02-20 23:39:43 +08:00
|
|
|
|
- [x] rgb:亮面颜色
|
2025-02-21 12:21:23 +08:00
|
|
|
|
- **a**:?basecolor的A通道用于区分皮肤区域和头发区域?
|
2025-02-20 18:25:54 +08:00
|
|
|
|
- ShadowMap (SSS)
|
2025-02-20 23:39:43 +08:00
|
|
|
|
- [x] rgb:暗面颜色
|
2025-02-20 18:25:54 +08:00
|
|
|
|
- **a**:?
|
2025-02-19 18:00:53 +08:00
|
|
|
|
- ILM
|
2025-02-20 23:09:15 +08:00
|
|
|
|
- **ilm(R)**:高光强度 ?***高光类型(待验证)***
|
2025-02-20 22:34:32 +08:00
|
|
|
|
- `[0~10)` 普通——无边缘光
|
|
|
|
|
- `[10~145)` 皮革、皮肤——有边缘光
|
|
|
|
|
- `[145~200)`头发——无边缘光
|
|
|
|
|
- `[200~255]`金属——无边缘光
|
|
|
|
|
- [x] ilm(G):阴影与高光Offset
|
2025-02-20 23:09:15 +08:00
|
|
|
|
- ilm(B):高光遮罩 ? 高光类型Mask。
|
2025-02-20 22:34:32 +08:00
|
|
|
|
- `0`:无高光
|
|
|
|
|
- `(0,128]`:裁边高光
|
|
|
|
|
- `(128,255]`:PBR高光
|
|
|
|
|
- [x] ilm(A):本衬线(基于UV制作,风格化内描边,原理参考先前文章),内描边Mask。
|
2025-02-20 23:39:43 +08:00
|
|
|
|
- [x] detail(texcoord[1]):细节遮罩,磨损贴图?。用第二套UV,与底色正片叠底混合(mul)
|
2025-02-21 12:21:23 +08:00
|
|
|
|
- [x] decal
|
2025-02-20 22:34:32 +08:00
|
|
|
|
- VertexColor
|
2025-02-21 18:29:55 +08:00
|
|
|
|
- [x] VertexColor(R):AO
|
|
|
|
|
- VertexColor(G):用于区分身体各个部位
|
|
|
|
|
- VertexColor(B):描边粗细,也就是Backface Outline的挤出数值。
|
2025-02-21 13:18:32 +08:00
|
|
|
|
- ~~VertexColor(A) ~~:不存在
|
2025-02-20 22:34:32 +08:00
|
|
|
|
- OLM?
|
2025-02-19 18:00:53 +08:00
|
|
|
|
|
2025-02-20 18:25:54 +08:00
|
|
|
|
### TODO
|
2025-02-21 16:51:32 +08:00
|
|
|
|
- [x] 实现AmbientOcclusion叠加阴影效果。
|
2025-02-21 18:29:55 +08:00
|
|
|
|
- [x] 添加ToonDataAsset 控制是否接受阴影选项。
|
2025-02-20 18:25:54 +08:00
|
|
|
|
|
2025-02-19 15:50:23 +08:00
|
|
|
|
## UnityChan
|
2025-01-30 22:53:06 +08:00
|
|
|
|
|
|
|
|
|
## 蓝色协议
|
|
|
|
|
|
2023-12-18 10:48:54 +08:00
|
|
|
|
# 厚涂 ShaderModel(通过修改预积分ShaderModel)
|