Material vs Material Instance:我的初学者体会

发布: (2026年1月17日 GMT+8 15:50)
4 min read
原文: Dev.to

Source: Dev.to

我原以为材质实例只是材质的复制品。后来我尝试在不重新编译任何东西的情况下修改数值,这时我终于恍然大悟。

这篇文章是我在游戏开发每日学习旅程中的一部分。我会分享每天学到的内容——基础、困惑以及真正的进步——从一个新手的视角出发。

在我的游戏开发之旅的 第 22 天,我学习了 Unreal Engine 中的材质、材质实例以及自发光材质

今天的尝试 / 学习

我先创建了一个 普通材质,随后从它生成了一个 材质实例。我了解到材质实例相当于主材质的 子级,它可以在不重新编译着色器的情况下修改数值。

在父材质中,我添加了:

  • 标量参数(Scalar Parameters) 用于强度或数值
  • 向量参数(Vector Parameters) 用于颜色

我还将 Emissive Color(自发光颜色) 输入连接上,使材质能够发光。当我把它应用到一个立方体上时,立刻在视口中看到发光效果。

我学到的一个重要点是 自发光不需要光源。它会自行发出颜色,即使在完全黑暗的环境中也能保持可见。

我还了解到,对于 地形(landscapes),单个材质可以控制多个层级,而材质实例则帮助更高效地复用和管理这些层级。

让我困惑的地方

起初,我不明白为什么不能直接在材质实例内部编辑节点。我不理解:

  • 为什么要使用参数而不是普通数值
  • Base Color(基础颜色)Emissive Color(自发光颜色) 的区别
  • 为什么自发光不像真实灯光那样照亮整个场景

相较于普通材质,地形材质看起来也要复杂得多。

终于明白的点

我最终弄清了以下几点:

  • 材质实例仅用于 微调数值,而不是构建逻辑
  • 参数是 材质与实例之间的桥梁
  • 自发光是一种 视觉上的发光效果,并非真实的场景光照

当这些概念点通了之后,一切都变得更合乎逻辑。

给初学者的一条建议

  • 所有逻辑都应在父材质中构建
  • 如果计划创建材质实例,就使用参数
  • 自发光用于发光,而不是照明
  • 为参数起好名字可以省去大量困惑

进展缓慢——但我正在打下坚实的基础。

如果你也在学习游戏开发,刚开始时最让你困惑的是什么?

下篇见 🎮🚀

Back to Blog

相关文章

阅读更多 »