Skip to main content

GrayscaleMaterial 组件介绍

GrayscaleMaterial 组件介绍

GrayscaleMaterial(灰度材质)组件是一种材质,它允许将 0 到 1 的灰度值映射为任何其他颜色值。这类似于 Blender 中的 Color Ramp(颜色渐变)节点。一个常见的误解是它只能产生黑白颜色,但这仅仅是它的默认渐变效果。通过提供自定义的 Gradient(渐变)纹理,用户可以实现各种丰富的彩色滤镜效果。

image.png

字段属性

属性名称 类型 描述
HighPriorityIntegration
(高优先级集成)
Bool 决定此材质在渲染集成时的优先级。
Rect
(矩形区域)
Rect 定义材质应用的 2D 矩形区域坐标。
RectClip
(矩形裁剪)
Bool 是否启用矩形区域外的裁剪。
ColorMask
(颜色遮罩)
ColorMask 决定哪些颜色通道(RGBA)会被写入渲染目标。
StencilComparison
(模板比较)
StencilComparison 设置模板缓冲的比较函数。
StencilOperation
(模板操作)
StencilOperation 设置当模板测试通过或失败时执行的操作。
StencilID
(模板 ID)
Byte 用于模板测试的参考值。
StencilWriteMask
(模板写入遮罩)
Byte 写入模板缓冲时的遮罩值。
StencilReadMask
(模板读取遮罩)
Byte 读取模板缓冲时的遮罩值。
RenderQueue
(渲染队列)
Int 材质在渲染管线中的绘制顺序。
_shader
(着色器)
AssetRef<Shader> 底层的着色器资源引用。
RatioRed
(红色权重)
Float 计算灰度时,红色通道所占的权重比例。
RatioGreen
(绿色权重)
Float 计算灰度时,绿色通道所占的权重比例。
RatioBlue
(蓝色权重)
Float 计算灰度时,蓝色通道所占的权重比例。
Lerp
(插值)
Float 滤镜效果的混合程度。0 为完全关闭,1 为完全开启。
Gradient
(渐变纹理)
AssetRef<ITexture2D> 用户提供的渐变纹理,用于定义灰度值如何重新映射为颜色。
BlendMode
(混合模式)
BlendMode 材质与背景的颜色混合方式(如 Alpha、Additive 等)。
Sidedness
(渲染面)
Sidedness 定义材质是单面渲染还是双面渲染。
ZWrite
(深度写入)
ZWrite 是否将深度信息写入深度缓冲(Z-Buffer)。
ZTest
(深度测试)
ZTest 设置深度测试的条件函数。

行为机制

此材质充当一个滤镜,叠加应用在其他材质之上。

它首先会为与该滤镜重叠的所有像素计算出一个灰度值。该灰度值是通过红(Red)、绿(Green)、蓝(Blue)通道的值进行加权组合计算得出的,你可以通过对应的 Ratio(权重比例)输入字段来直接控制这些权重。

用户提供的 Gradient(渐变)纹理定义了随后如何对这些灰度值进行重新映射。该纹理的最左侧定义了对应于黑色(0)的颜色,而最右侧定义了映射为白色(1)的颜色。重要提示:必须将此渐变纹理的 WrapModeU 属性设置为 Clamp(限制),否则颜色值将会从纹理的两端溢出(渗色)。

Lerp(插值)字段允许你在滤镜关闭(值为 0)和完全开启(值为 1)之间进行平滑过渡。

示例

image.png


未应用 GrayscaleMaterial(Lerp 为 0)

image.png


默认的 GrayscaleMaterial 效果(黑白)

image.png


使用彩虹渐变纹理(Gradient)的 GrayscaleMaterial

另请参阅

暂无相关链接。