着色器

着色器控制方式Mari在某些用户指定的照明条件下在画布上显示模型。Mari使用着色器指定照明模块中不同通道的行为以及模型上的涂料对光的反应。Marialways使用着色器生成在屏幕上显示的表面。

着色器也高度依赖于项目中的通道和图层,您可以查看当前着色层,目标和通道,特别是在Shaders调色板。

Mari的默认着色器在任一Current ChannelCurrent Layer and BelowCurrent Layer , 要么Current Paint Target。您还可以通过组合漫反射和镜面着色器类型,然后在着色器组件输入中设置通道以指定它们在着色器中的显示方式,来创建自己的自定义着色器,称为“用户着色器”。

有关着色器,通道和图层如何相互集成的更多信息,请参考层数本指南中的部分。

视频:  了解明暗器和通道有关着色器的简要概述。
该视频显示了使用Mari 3。即使Mari 4个工作空间不同,工作流程保持不变。要查看主要的UI差异,请参见Mari 3.3与4.0

着色器入门

默认情况下,当您创建一个项目并且不对Channels选项卡,将创建一个具有4个通道的原理化BRDF着色器。看到管理项目。默认通道会立即插入到着色器中以设置您的项目。您可以在着色器组件中的字段上创建并分配其他通道,并在模型上构建复杂的纹理。

彩色通道,再加上...

位移通道,再加上...

镜面反射通道,等于...

...这个。此处,着色器将拉入所有三个通道以制作一个表面,以预览最终渲染的外观。

例如,这使您可以构建着色器,以便可以在置换或镜面反射通道上进行绘制,同时实时查看所做更改如何影响最终渲染。

小费:  着色器only控制方式Mari显示模型的表面。它们不会影响项目中通道的内容。

着色器包括:

基本的照明细节,包括环境,漫反射和镜面光强度。

一种用于快速查看当前通道,图层,图层堆栈或当前绘制目标上的绘制的方法。

Mari通过遍历当前着色器中的组件来生成着色表面。每个组件都从通道获取输入,并根据相关的组件滑块进行调整。然后将这些组件添加到当前表面。您在屏幕上看到的最终阴影表面是这些组件的最终结果。

例如,您可以按照以下步骤设置着色器:

1.   从漫反射通道创建初始着色表面,并将其设置在着色器的Diffuse Color零件。
2.   使用指定通道作为输入来显示高光或位移预览,并调整滑块以使阴影表面具有所需的外观。
3.   调整环境光或应用环境图像以进一步构建最终渲染图像的预览。

与通道一样,您可以分别为处理对象.

着色器和灯光

Mari,着色器和光源是相关的-它们都控制项目在屏幕上的显示方式,但都不影响通道中的实际数据。

着色器确实包含一些基本的照明信息,但是大多数情况下,它们指定了在模型表面上显示的内容。例如,着色器可能包含镜面反射信息,该信息描述了曲面与项目中的灯光如何交互。

灯光可控制项目在画布上的照明方式。您可以通过调整设置中的设置来设置四个单独的灯光,每个灯光都有自己的颜色,强度和方向。 Lights调色板。您还可以设置依赖于照明图像的环境光。

设置着色器后,您仍然可以选择通过更改模型中的灯光来更改模型上的灯光Project Controls 工具栏,在Lights调色板或Shading菜单。

阴影和通道

Mari有一些默认的着色器可以显示当前通道,图层或绘画目标的内容,您始终可以切换回这些默认着色器以单独检查工作,以查看哪些着色器输入使用了哪些通道。

小费:  跟踪正在编辑的着色器的一种有用方法是将其添加到平视显示器中。来自Edit菜单,选择HUD Manager。下Project,在旁边的复选框中打勾Current ShaderMari现在显示当前正在绘制的着色器的名称,作为画布上背景信息的一部分。有关更多信息,请参见配置用户界面部分。

多通道着色器

如果要复制为项目中的一个对象创建的着色器,以用于另一对象,则可以使用键盘快捷键或上下文菜单中的选项在对象之间剪切,复制和粘贴着色器。着色器是每个对象专用的,通道和图层也是如此。复制用于另一个对象的着色器的唯一方法是将其剪切或复制并粘贴到Shaders项目中每个对象的调色板。

物理上合理的着色器

物理上合理的着色器不同于传统的着色器,例如默认Mari着色器,通过遵循能量守恒定律。与传统着色器不同,更改不同的输入,例如Specular要么Specular Roughness,不会影响点或环境灯的整体亮度。光的分布可能已更改为集中在一个位置,或散布在整个阴影表面上,但是像素值的总和应为相同的值。

环境光遮蔽

可以将环境光遮挡设置为所有自定义创建的着色器的着色器组件输入。通过使用组件输入进行环境光遮挡,可以在单独的通道中创建自己的光遮挡贴图,并将该通道插入到着色器输入中。

如果您不想创建专门用于环境光遮挡的通道,则可以选择计算项目中每个单独对象的环境光遮挡。有关更多信息,请参阅关于蒙版计算环境光遮挡

着色器限制

大多数着色器不需要纹理插槽,但是如果超出可用的纹理插槽数量,则可能会遇到渲染错误。如果发生这种情况,则可能是由多种原因导致的错误。要释放纹理插槽,请尝试:

关闭需要额外纹理单元的功能,例如Painting调色板

关闭所有可能处于活动状态的过滤器预览,

在长层或复杂层堆栈中展平或缓存层,

更改当前着色器上的输入以使用更少的纹理插槽。

注意:  即使有剩余的纹理插槽可用,如果使用更昂贵的着色器组件,诸如深度投影,油漆蒙版和阴影之类的活动功能可能也不会遵守纹理插槽限制。您可以关闭这些功能以释放更多的纹理插槽。看到 关于蒙版阴影设置了解更多信息。