网易首页 > 网易号 > 正文 申请入驻

无主之地着色器(和纹理)

0
分享至

本文转自公众号:Thepoly

Hello . 大家好

今天给大家带来无主之地着色器纹理解析

原作者为西班牙大佬Daniil Spivak


https://www.artstation.com/spacecentipede/blog

前段时间,我根据 Sergi Broza 的 2D 概念制作了 Effie 的角色模型 https://www.artstation.com/artwork/yD0ExO


评论中的人们一直问我有关 Borderlands 风格着色器的问题 - 它是如何制作的以及如何获得相同的外观。

剧透:我接下来要分享的并非什么秘诀。我只是从 YouTube 教程和其他资源中学习,然后把各种东西混合在一起,最终得到了这个效果。在本文中,我将逐一讲解,并展示节点设置的截图。如果你想创建类似的材质,只需复制你需要的部分即可。


首先,您在《无主之地》中看到的漫画风格可以分为两部分:直接绘制在纹理上的效果,以及着色器本身稍后添加的效果。

在第一张图片中,后期处理和纹理描边均已启用。在第二张图片中,后期处理已关闭,但纹理上的描边仍然可见。在第三张图片中,两种效果均已完全禁用。


您可以看到 Manny 的原始效果,无需任何手绘线条。我们可以看到模型周围的轮廓,以及基于法线的效果(稍后会详细介绍)。阴影部分填充了交叉影线,就像经典漫画一样;高光部分则使用了点状图案,就像老式漫画书的印刷一样。颜色渐变被简化为阶梯状,我们稍后可以调整它来控制整体外观。


这是基础的漫反射纹理。我还在 Alpha 通道中添加了一个蒙版,以便在织物上创建菲涅尔效果,但这个细节在这里并不重要。


所有有趣的东西都发生在 RMAL 纹理中。我们按通道来分解它:红色表示粗糙度,绿色表示金属度,蓝色表示遮挡。Alpha 通道保存线条。

在 Substance Painter 中,我将所有这些笔触绘制到一个特殊的通道中:黑色用于轮廓,白色用于高光。每个笔触的颜色要么比中灰色更深,要么比中灰色更浅,这使得材质能够将深色线条与浅色线条区分开来,并将它们作为独立的参数进行显示。这样,我们就可以随意调整轮廓颜色和高光。


这是完整、扩展的服装主材质。你会注意到我没有使用虚幻引擎中常见的节点连接方式,而是使用了 NameRerouteNodes。说实话,我真的很讨厌默认的意大利面条式连接看起来乱糟糟的——搞清楚各个节点连接在哪里真让人头疼。

所以我把节点从左到右排列,分组到块中,并清晰地命名路由。这样,你随时可以按名称搜索,并立即知道哪些节点的去向。更加简洁,也更容易操作。


高清图片:https://cdna.artstation.com/p/assets/images/images/091/148/228/4k/daniil-spivak-effy-mm-materialgraph-0-00000.jpg? 1755961075

关键在于将深色笔触与浅色笔触分离,并分别放入各自的蒙版中。为此,我使用了“步进”和“饱和度”功能。完成后,我就可以抓取蒙版来生成轮廓,并用任何我想要的颜色进行着色。

这些蒙版也可以在其他地方重复使用 - 例如,我将它们插入金属和镜面参数中,这样轮廓就不会拾取任何高光。


漫反射和手绘描边就到此为止了。现在我们来看一下后期处理材质本身的设置。材质图太大了,所以我把它分成了两部分。



高清图片: https://cdna.artstation.com/p/assets/images/images/091/148/252/4k/daniil-spivak-pp-outline-materialgraph-0-00000.jpg? 1755961161

让我们逐块进行,我将简要解释每个部分的作用以及它给出的结果。

简而言之,这个块提供了基础光照。我们需要光影边界,以便稍后构建阶梯状的漫画风格着色。通过将去饱和的 PostProcessInput0 除以去饱和的 BaseColor,我们得到了基础光照。在此基础上,我使用场景纹理中的金属数据生成一个金属遮罩,并使用镜面反射将所有笔触推入一个单独的遮罩中——因为我不希望它们包含任何光照信息。笔触应该始终保持暗色。


接下来,我们构建颜色之间的“阶梯”——就像老式漫画书印刷那样,调色板有限。这里的关键节点是 Floor 节点:它会向下取整值,并通过除以它们,我们在光影之间创建那些硬阶梯。最终呈现的是一个双色调图像,其过渡是阶梯状的,而不是平滑的渐变。


接下来,我们将最终结果与最终图像和纯色进行混合,并使用参数控制混合效果。与默认着色相比,颜色可能会略有偏差,这是我们想要避免的。为了解决这个问题,我添加了一个“功率”节点和一个“亮度校正”节点,这样我就可以根据需要调高或调低亮度。


现在我们来看看点线图案块。这里我们生成阴影中的笔触和高光中的半色调点。在底部,你会看到三个子块:线条图案、半色调图案和距离抠图蒙版。前两个子块会程序化地创建实际的图案(因此我们无需加载额外的纹理),而抠图蒙版会使笔触随着距离的增加而淡出。如果没有它,当你缩小时,线条会保持屏幕大小,与角色相比会突然显得巨大——这感觉非常不对劲。

光照处理方式与之前相同:将 PostProcessInput0 除以颜色,然后使用曲线分离最暗和最亮区域。暗区使用交叉影线,亮区使用半色调点。

我还添加了静态开关参数来关闭金属表面上的笔触(因为它们在那里看起来并不总是很好),另外还添加了一些额外的控件来调整高光中的线条不透明度、大小和点密度。


高分辨率:https://cdnb.artstation.com/p/assets/images/images/091/148/625/4k/daniil-spivak-pp-outline-materialgraph-0-00007.jpg? 1755962450

好了,现在到了棘手的部分——创建大纲。这需要构建几个相当复杂的函数。说实话,我自己并没有完全弄清楚每个细节,所以如果感觉困惑,不用担心——你可以直接复制我的做法。不过,我会尽力解释每个部分的主要功能。

我根据 Evans Bole 的教程制作了这个效果——您可以通过下面的链接查看。在这里一步一步地解释会花很长时间,所以最好直接从源代码中查看。

https://www.youtube.com/watch?v=9KvUfnrHcqM&t=71s


高分辨率:https://cdna.artstation.com/p/assets/images/images/091/148/610/4k/daniil-spivak-pp-outline-materialgraph-0-00008.jpg? 1755962418

为了使我们的轮廓在模型上正确呈现,我们需要设置以下功能:

  1. MF_获取内核
  2. MF_DetectEdges_depth
  3. MF_DetectEdgesNormal
  4. MF_DTM_凝视角度
  5. MF_厚度_调制
  6. MF_Mask_depth

1) 首先,我们需要一个名为MF_GetKernel的辅助函数。此函数会生成中心像素及其四个相邻像素(左、右、上、下)的 UV 坐标。这基本上是为接下来的计算做准备。


2) 接下来 -MF_DetectEdges_depth。我们需要一个函数来检查像素是否位于网格的边缘,并据此生成轮廓蒙版。这时,之前创建的 GetKernel 函数就派上用场了。


3) 现在我们已经完成了沿着物体边界构建轮廓的部分,但仍然缺少基于法线贴图的轮廓。为此,我们需要创建一个名为MF_DetectEdgesNormal的新函数。它基本上是前一个函数的副本——但它不是使用场景深度,而是依赖于 WorldNormal。


4) 我们还需要一个小的辅助函数来去除网格表面上与摄像机视图过于平行的多余轮廓,例如地板。这个函数通过使用简单的菲涅尔效应来创建额外的遮罩,过滤掉与摄像机呈锐角的像素,从而解决这个问题。让我们创建MF_DTM_Gazing_angle



5) 下一个函数非常重要:MF_Thickness_Modulation。它使轮廓的粗细根据角色与相机的距离动态变化。如果没有它,线条将保持与屏幕的相对关系——因此,当你缩小时,轮廓会显得太粗,最终覆盖整个角色。


6)我们还需要这个函数来关闭太远的物体的轮廓 - MF_Mask_depth。


所有主要功能都已准备就绪,现在可以将它们组合起来了。让我们看看轮廓图内部发生了什么。


整个设置分为两部分。第一部分在网格周围创建外轮廓,第二部分基于法线生成轮廓。两者使用基本相同的函数——唯一的区别是网格轮廓使用 MF_DetectEdgesDepth,而基于法线的轮廓使用 MF_DetectEdgesNormal。

  1. 这两个函数是我们轮廓系统的核心。它们生成用于绘制轮廓的蒙版。每个函数都有两个输入——厚度和阈值,我们将在下文中介绍。
  2. 在 Thickness 输入中,我们插入了 MF_Thickness 调制函数,该函数有三个输入引脚。第一个引脚设置轮廓的最小厚度,第二个引脚设置最大厚度,第三个引脚定义达到最大值时的距离。这为我们提供了一个渐变效果:轮廓逐渐由细变粗,一旦达到(比如说)距离 2000,它就会保持在最大值,不再增加。
  3. 在阈值输入中,我们插入了这段代码。它会调整阈值,使角色距离越远,轮廓的扩散范围就会根据场景深度缩小。这样,我们不仅会随着距离改变轮廓的粗细,还会改变轮廓实际显示的区域。
  4. 在这里,我们使用 MF_Mask_depth 函数来切断远处的物体,因为我们绝对不希望轮廓出现在背景中的物体上。
  5. 这部分功能确保轮廓随着角色的远离而平滑淡出。如果没有它,你会看到轮廓忽明忽暗,并且其粗细变化剧烈——这看起来非常令人分心。
  6. 在这里,我们终于把所有东西混合在一起了。PIN A 是没有轮廓效果的图像。PIN B 是轮廓颜色。Alpha 是轮廓蒙版本身——它告诉着色器在哪里应用轮廓颜色。

具体设置取决于你的项目。你需要根据角色与摄像机的距离,以及你希望在不同距离下保持哪些细节可见来调整这些值。

最后一步是添加模板蒙版,这样所有这些效果就只作用于我们的角色,而不是整个环境。当然,如果你确实希望效果作用于周围环境,可以关闭它——这实际上取决于你想要的效果。


最重要的是不要忘记在项目设置和网格本身中启用自定义深度。


就这样!我想我已经涵盖了所有关于制作着色器和使用纹理的知识。感谢所有坚持到最后的读者——这篇文章很长,但我想详细解释一下。网上有很多关于如何制作单元格着色器或轮廓着色器的教程,但我想把所有东西都整合起来——包括纹理应该是什么样子,以及如何将它们组合起来,使整个设置真正发挥作用。

分享就到这里辣,谢谢大家!下次再见!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
2-1到0-1!中国队先赢后输,亚足联给出数据对比,日本夺冠稳了?

2-1到0-1!中国队先赢后输,亚足联给出数据对比,日本夺冠稳了?

侃球熊弟
2026-01-24 00:25:03
周扒皮看了都要流泪,山西环卫工戴着定位器在冰天雪地里扫大街

周扒皮看了都要流泪,山西环卫工戴着定位器在冰天雪地里扫大街

巴城的城
2026-01-23 18:52:17
浙江省委常委王文序当选杭州市政协主席

浙江省委常委王文序当选杭州市政协主席

澎湃新闻
2026-01-23 19:07:06
央媒对李亚鹏的称呼变了,两字之差释放强烈信号,向华强全说对了

央媒对李亚鹏的称呼变了,两字之差释放强烈信号,向华强全说对了

阿纂看事
2026-01-23 19:25:11
韩媒:韩国足球在U23亚洲杯遭遇史诗性失利,苦吞首次不敌越南的屈辱

韩媒:韩国足球在U23亚洲杯遭遇史诗性失利,苦吞首次不敌越南的屈辱

懂球帝
2026-01-24 02:50:13
俄军每月伤亡3.5万?要提到5万!俄罗斯首次“承认”巡洋舰被击沉

俄军每月伤亡3.5万?要提到5万!俄罗斯首次“承认”巡洋舰被击沉

鹰眼Defence
2026-01-23 17:43:27
3-2逆转进四强!国乒20岁新星崛起:林诗栋出局,他冲击两连冠?

3-2逆转进四强!国乒20岁新星崛起:林诗栋出局,他冲击两连冠?

李喜林篮球绝杀
2026-01-23 18:18:07
郭永航辞去广东省人大代表职务,此前已卸任省委常委

郭永航辞去广东省人大代表职务,此前已卸任省委常委

澎湃新闻
2026-01-23 21:17:05
今年,可能是史上最冷清的春节。

今年,可能是史上最冷清的春节。

诗词中国
2026-01-23 19:24:10
基金圈爆大瓜!美女分析师被搞大肚子,公开喊话手握290亿的经理

基金圈爆大瓜!美女分析师被搞大肚子,公开喊话手握290亿的经理

社会酱
2026-01-23 17:53:48
79分钟绝杀!一场1-0,让榜首易主,欧洲豪强登顶,掀翻中资球队

79分钟绝杀!一场1-0,让榜首易主,欧洲豪强登顶,掀翻中资球队

足球狗说
2026-01-24 04:50:29
现场直击! 刚刚, 兰兰终于现身澳洲法庭! 正式低头承认

现场直击! 刚刚, 兰兰终于现身澳洲法庭! 正式低头承认

澳微Daily
2026-01-23 13:16:55
如此忽悠群众有意思吗?

如此忽悠群众有意思吗?

笔杆论道
2026-01-23 06:33:00
罪有应得!官方彻查后,闫学晶再迎噩耗,她最担心的事还是发生了

罪有应得!官方彻查后,闫学晶再迎噩耗,她最担心的事还是发生了

来科点谱
2026-01-23 11:08:02
关键时刻,人民日报评论靠谱过吗?

关键时刻,人民日报评论靠谱过吗?

黔有虎
2026-01-23 00:34:42
不是演戏!许家印被抬出会场全程曝光:奋力扒拉人群怒吼被抬走

不是演戏!许家印被抬出会场全程曝光:奋力扒拉人群怒吼被抬走

趋势清风侠
2026-01-23 21:27:10
一组“女留子面相变化”图火了,出国3年判若两人,牢A果然没说错

一组“女留子面相变化”图火了,出国3年判若两人,牢A果然没说错

妍妍教育日记
2026-01-23 19:09:27
人大代表一席话问住养犬人:你的宠物狗,凭什么让他人付出代价?

人大代表一席话问住养犬人:你的宠物狗,凭什么让他人付出代价?

不写散文诗
2026-01-23 19:19:22
俄罗斯首次承认“莫斯科”号巡洋舰被乌军击沉,导致52名俄军伤亡

俄罗斯首次承认“莫斯科”号巡洋舰被乌军击沉,导致52名俄军伤亡

山河路口
2026-01-23 18:55:47
美国启动所谓“和平委员会”,匈牙利、巴基斯坦、阿根廷、印尼、蒙古等18国已签署!特朗普达沃斯讲话,却遭群嘲

美国启动所谓“和平委员会”,匈牙利、巴基斯坦、阿根廷、印尼、蒙古等18国已签署!特朗普达沃斯讲话,却遭群嘲

每日经济新闻
2026-01-23 00:41:25
2026-01-24 05:56:49
CG世界 incentive-icons
CG世界
分享国内外优秀CG作品,教程
5702文章数 8543关注度
往期回顾 全部

科技要闻

TikTok守住了算法"灵魂" 更握紧了"钱袋子"

头条要闻

疑在达沃斯受挫 79岁的特朗普转发超80条帖子发泄怒气

头条要闻

疑在达沃斯受挫 79岁的特朗普转发超80条帖子发泄怒气

体育要闻

杜兰特鏖战44分钟累瘫 轰36+7却致命失误

娱乐要闻

演员孙涛澄清闫学晶言论 落泪维护妻子

财经要闻

2026年,消费没有新故事?

汽车要闻

主打家庭大六座 奕境首款SUV将北京车展亮相

态度原创

教育
亲子
时尚
本地
军事航空

教育要闻

中国家庭普遍做错的教育行为是什么?吴军:追求同质化的教育,孩子的培养不需要盲目跟风

亲子要闻

“一个桃就拐走了!”宝妈在水果店频频拒绝女儿,评论区太真实!

今日热点:车银优代言广告被隐藏;《巅峰对决》主演担任米兰冬奥会火炬手……

本地新闻

云游中国|格尔木的四季朋友圈,张张值得你点赞

军事要闻

美军首艘“高超导弹战舰”出海测试

无障碍浏览 进入关怀版