4.6 KiB
4.6 KiB
title, date, excerpt, tags, rating
title | date | excerpt | tags | rating |
---|---|---|---|---|
ToonShaderModel | 2023-12-18 10:00:34 | ⭐ |
ToonStandard(Cel打底)
Diffuse
//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
ToonShadow: 再实现阴影偏移以及阴影羽化效果的基础上。
- PBR:兼容UE默认阴影效果。只能调节阴影过渡颜色。使用的公式为:
Lighting.Diffuse = DiffuseColor * (1 / PI) * AreaLight.FalloffColor * (Falloff * HalfLambert);
- ShadowColorTexture:用于定义ShadowColor(使用贴图指定ShadowColor)
ToonLighting:
- PBR:UE默认光照,多光源模式。
- 仅主光有效:针对cel。
Specular
ToonSpecular:
- PBR:UE默认高光效果。
- 各项异性(defaultLit):UE默认的各向异性高光效果。
- 各项异性头发 :Kajiya-Kay高光模型。
- 自定义高光大小与过渡效果:https://zhuanlan.zhihu.com/p/361918341
- 自定义高光形状贴图:https://zhuanlan.zhihu.com/p/640258070
891034b3fa/Assets/Shaders/NPR/Cartoon/Stylized%20Highlight%20
(Transform).shader#L2
罪恶装备渲染效果还原
- 原始演讲视频:https://www.bilibili.com/video/BV1Ps411C7mw/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e
- 原始演讲PPT:https://www.ggxrd.com/Motomura_Junya_GuiltyGearXrd.pdf
- 【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(1)
- 【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(2)
- 【翻译】西川善司的「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,后篇
- 知乎文章
贴图
- base:基础色
- rgb:亮面颜色
- a:?basecolor的A通道用于区分皮肤区域和头发区域?
- ShadowMap (SSS)
- rgb:暗面颜色
- a:?
- ILM
- ilm(R):高光强度 ?高光类型(待验证)
[0~10)
普通——无边缘光[10~145)
皮革、皮肤——有边缘光[145~200)
头发——无边缘光[200~255]
金属——无边缘光
- ilm(G):阴影与高光Offset
- ilm(B):高光遮罩 ? 高光类型Mask。
0
:无高光(0,128]
:裁边高光(128,255]
:PBR高光
- ilm(A):本衬线(基于UV制作,风格化内描边,原理参考先前文章),内描边Mask。
- ilm(R):高光强度 ?高光类型(待验证)
- detail(texcoord[1]):细节贴图,第二套UV。
- decal:贴花,单独一个材质。
- VertexColor
- VertexColor(R):AO
- VertexColor(G):用于区分身体各个部位
- VertexColor(B):描边粗细,也就是Backface Outline的挤出数值。
- ~~VertexColor(A) ~~:不存在
- OLM?
TODO
- 实现AmbientOcclusion叠加阴影效果。
- 添加ToonDataAsset 控制是否接受阴影选项。
- 使用代理Shadow模型来渲染阴影。