Unity - 材料和着色器

2025年3月17日 | 阅读 3 分钟

每个看起来很棒的游戏都包含各种不同的表面。例如金属、塑料、全息图、外星文物等等。特别是,基于物理的渲染。

Unity 中的渲染使用着色器、材质和纹理。这三个之间有着密切的关系。

材料

在 Unity 3D 中,材质是一个包含有关使用该材质的对象的照明信息的 文件。

材质与碰撞、质量甚至物理学无关。它仅用于定义光照如何影响使用该材质的对象。

在 unity 中,材质不仅仅是可应用于模型的着色器和纹理的容器。 大多数材质的自定义取决于为其选择的着色器,尽管所有着色器都具有一些常见的功能。

让我们创建新的材质,为此,首先,在 Unity 中创建一个新的 3D 项目。

然后右键单击“资产”,然后转到“创建” ->“材质”,并给它一个名称,例如“我的材质”。

Unity Materials and Shaders

查看材质的属性。

Unity Materials and Shaders

这些属性不是我们迄今为止研究过的属性。 这是因为这些是在着色器中编程的属性,而不是在材质中编程的属性。

材质是我们首先使我们的对象可见的东西。 事实上,即使在 2D 中,我们也使用不需要光照的独特材质。

着色器

着色器是一个程序,定义了屏幕上每个像素的绘制方式。 着色器根本不是用 C# 甚至面向对象的编程语言编写的。 着色器是用一种类似 C 的语言 GLSL 编写的。 这种语言可以向 GPU 提供直接指令以进行快速处理。

着色器的脚本具有用于计算每个渲染像素的颜色的数学计算和算法,这些计算基于光照输入和材质配置。

如果模型的纹理指定在其表面上绘制的内容,则着色器决定绘制方式。 换句话说,我们可以说材质包含属性和纹理,而着色器决定材质可以具有哪些属性和纹理。

纹理

纹理是可以应用于 3D 对象的平面图像。 纹理负责模型色彩鲜艳且有趣,而不是空白且无聊。

认为可以将 2D 图像应用于 3D 模型,这看起来很奇怪,但一旦您熟悉了它,它就是一个非常简单直接的过程。 让我们看一个简单的例子:想想一个水瓶,如果你拿掉了水瓶的标签,你会看到它是一张平纸。 那个标签就像一个纹理。 打印标签后,将其缠绕在 3D 瓶子上,以提供更美观的外观。

就像所有其他资产一样,向 Unity 添加纹理非常容易。 要在 Unity 中创建纹理,只需为您的纹理创建一个文件夹;一个好的名字是“纹理”。 然后下载并将您想要的任何纹理拖到您刚刚创建的“纹理”文件夹中。 就这样。

要创建文件夹,请右键单击“资产”并转到“创建” ->“文件夹”。 将其重命名为“纹理”。 现在下载任何纹理并将其拖到该文件夹中。


下一主题Unity 协程