首页 > 游戏逆向 > 卡通类

《罪恶装备》

小编 2025-02-06 17:24:46 人看过

罪恶装备

效果 :






准备资源 :

  1. 使用 UE Viewer 工具 提取 罪恶装备 游戏资源,可以得到人物的3D模型+贴图, 工具链接:

https://link.zhihu.com/?target=https%3A//github.com/gildor2/UEViewergithub.com/gildor2/UEViewer


  1. 还原游戏效果主要用到 3 张贴图 + 模型顶点色,分别是 :

  • BaseColor 贴图


ilm 贴图


SSS 贴图


顶点色




材质思路 :

1. 边缘光 :

计算 N Dot V :



计算 边缘光 范围 : ModifyNdotV = 1 - NdotV + RimLightSize




让边缘光明暗更加分明, 这里需要注意的是,在阴影里面的部分不需要 边缘光: (ModifyNdotV > 0.1) - (Shadow)




结合BaseColor + 调色,最后的边缘光:RimLightOutput





2. 高光:

计算 N Dot H , (H = V + L) :


优化 高光 区域,这里 用 ILM 贴图的 B 通道会保存 身上哪一些区域的高光:(ILM 贴图的 B 通道)



ModifyNotH = ColorBurn (N Dot H, ILM.b)

ColorBurn颜色加深



再优化高光效果,控制高光的大小 :SpecRamp = ModifyNotH > (1 - SpecularSize)




ILM的R通道限制高光显示区域,最后 高光+调色 :ILM的R通道



高光输出 :





3. 阴影

计算 N Dot L :



优化阴影效果,利用 ILM.G + VertexColor.R :(用 ILM.g 通道自定义阴影部分)



VertexColor.R 通道 记录 AO



N dot L Modify = (NdotL + LightPush) * VertexColor.R * 0.5 +( ILM.G * 2 - 1 ))




第一层 阴影 计算,结合光照计算+预定义

处于 Shadow2Push <= NdotLModify < Shadow1Push 之间


(需要注意的是,这里可以添加顶点阴影)

结合以后两者,得到第一层阴影



第二层阴影 :

S1 = 1 - (VertexColor.R > Shadow2VertexThreshold)

S2 = NdotLModify < Shadow2VertexThreshold

S = max(S1, S2)



永久阴影 :

ILM.G < PemanentShadowThreshold,第一层+第二层阴影都会去考虑这个 (ILM.G)



ILM.G > PemanentShadowThreshold




最后的光照范围

BaseRamp = 1 - Shadow1 - Shadow2 - PermanentShadow




3. 整合

思路 : 以上我们得到了 BaseRamp ,是光照阴影结果,在 BaseRamp 可以知道,哪一些区域是阴影,哪一些区域不是阴影,在阴影的部分使用 暗一点 的 “颜色”,不在阴影的部分就使用 亮一点 的 “颜色”

NewBaseRamp = 1 - BaseRamp, 用来标记哪一些区域在阴影,哪一些不在阴影




不在阴影的部分,使用 Base 贴图 + 高光,高光在之前已经算好了 (Base + Spec)



阴影区域的底色,Base * SSS




第一层 阴影 颜色,Base * SSS 添加 Shadow1Color 和 校色




第二层 阴影 颜色,Base * SSS 添加 Shadow1Color 和 校色




根据 1 - 第一层阴影,混合 第一层阴影颜色 和 第二层阴影颜色,为了里面方便,红色是第一层,蓝色是第二层


混合两层阴影:




根据 NewBaseRamp 来混合 Base + Spec 和 两层的阴影颜色



结合阴影效果




再结合边缘光可以得到



ILM.Alpha 保存了描边:



结合描边,可以得到最后的效果





版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章