节点手册 · 颜色与艺术效果
本页收录处理颜色与做视觉效果的节点:color 19 个、function 8 个、utility 1 个、
debug 1 个。
色彩空间转换
Section titled “色彩空间转换”菜单:color
| 节点 | 输入 | 输出 | 说明 |
|---|---|---|---|
GammaToLinear | gamma (vec3/vec4) | 同型 | 伽马空间转线性空间 |
LinearToGamma | linear (vec3/vec4) | 同型 | 线性空间转伽马空间 |
colorspaceConversion | In (vec3) | vec3 | 在 RGB / Linear / HSV 之间转换 |
colorspaceConversion 有 From 和 To 两个下拉,各可取 RGB、Linear、HSV,共 9 种组合。
菜单:color
| 节点 | 输入 | 输出 | 说明 |
|---|---|---|---|
saturation | In (vec3)、Saturation (默认 1) | vec3 | 饱和度。0 = 灰度,1 = 原样,>1 = 增艳 |
hue | In (vec3)、Offset (默认 0) | vec3 | 色相旋转。Range 模式:Degrees(0Normalized(0 |
contrast | In (vec3)、Contrast (默认 1) | vec3 | 对比度,绕 sRGB 中灰 pow(0.5, 2.2) 缩放 |
whiteBalance | In (vec3)、Temperature (0)、Tint (0) | vec3 | 白平衡:Temperature 冷暖、Tint 绿品偏移 |
replaceColor | In、From、To、Range (0)、Fuzziness (0) | vec3 | 把接近 From 的颜色替换成 To,Range 是容差、Fuzziness 是过渡软度 |
colorMask | In、MaskColor、Range (0)、Fuzziness (0) | float | 生成「哪些像素接近 MaskColor」的遮罩 |
invertColors | In (动态) | 动态 | 反相。R / G / B / A 四个勾选框决定反哪几个通道 |
channelMixer | In (vec3)、OutRed、OutGreen、OutBlue (vec3) | vec3 | 通道混合:每个输出通道由三个输入通道加权得到 |
fadeTransition | NoiseValue (0.5)、FadeValue (0.5)、FadeContrast (1) | float | 溶解过渡遮罩:把噪声图 + 进度值变成带对比度控制的过渡遮罩 |
blend —— 22 种图层混合
Section titled “blend —— 22 种图层混合”菜单:color → blend
| 输入 | 类型 | 默认 | 说明 |
|---|---|---|---|
| Base | 动态 (float~vec4) | — | 底层颜色 |
| Blend | 动态 (float~vec4) | — | 混合层颜色 |
| Opacity | float | 1 | 混合强度。结果 = mix(Base, 混合结果, Opacity) |
模式与公式(Base 记作 A、Blend 记作 B):
| 分组 | 模式 | 公式 |
|---|---|---|
| 变暗 | Darken | min(A, B) |
Multiply | A × B | |
LinearBurn | A + B − 1 | |
Burn | 1 − (1 − B) / A | |
| 变亮 | Lighten | max(A, B) |
Screen | 1 − (1 − A)(1 − B) | |
LinearDodge | A + B | |
Dodge | A / (1 − B) | |
| 对比 | Overlay | A ≤ 0.5 时 2AB,否则 1 − 2(1−A)(1−B) |
HardLight | 同 Overlay 但以 B 判断分支 | |
SoftLight | 柔和版叠加,边缘更平滑 | |
VividLight | 按 A 分支的加深/减淡组合,对比最强烈 | |
LinearLight | 按 B 分支的线性加深/减淡 | |
LinearLightAddSub | B + 2A − 1 | |
PinLight | 按 B 分支取 max / min,产生硬边替换 | |
HardMix | step(1 − A, B),结果只有 0 或 1,纯色块化 | |
| 差值 | Difference | abs(B − A) |
Exclusion | A + B − 2AB | |
Negation | 1 − abs(1 − A − B) | |
Subtract | A − B | |
Divide | A / B | |
| 替换 | Overwrite | 直接用 B,配合 Opacity 做整体淡入淡出 |
菜单:color
| 节点 | 输入 | 输出 | 说明 |
|---|---|---|---|
normalUnpack | In (vec4) | vec3 | 把 0normalize(In.xyz × 2 − 1) |
normalStrength | In (vec3)、Strength (1) | vec3 | 调节法线强度,0 = 平面,>1 = 夸大凹凸 |
normalBlend | A、B (vec3) | vec3 | 混合两张法线。Mode:Default(简单叠加)/ Reoriented(重定向,更正确) |
normalReconstructZ | In (vec2) | vec3 | 由 XY 推算 Z 分量,用于只存两通道的压缩法线贴图 |
normalFromHeight | In (float)、Strength (1) | vec3 | 由高度值用屏幕导数生成切线空间法线 |
normalFromTexture | Tex (sampler2D)、UV、Offset (0.005)、Strength (8) | vec3 | 由高度贴图三点差分生成法线,Offset 是采样间距 |
utility —— 抖动
Section titled “utility —— 抖动”| 节点 | 菜单 | 输入 | 输出 | 说明 |
|---|---|---|---|---|
dither | utility | In (动态) | 动态 | 4×4 Bayer 有序抖动。配合 alpha 裁剪做「渐隐但不半透」的溶解、LOD 淡出 |
菜单:function。噪声是溶解、流动、扰动效果的基础。
| 节点 | 输入 | 输出 | 说明 |
|---|---|---|---|
GradientNoiseFloat | UVInfo (vec2)、Scale | float | 梯度噪声(Perlin 风格),自然平滑,最常用 |
SimpleNoiseFloat | texcoord (vec2)、Scale | float | 值噪声的多倍频叠加,颗粒感更强 |
VoronoiFloat | UVInfo (vec2)、AngleOffset、CellDensity | float | 沃罗诺伊细胞噪声,做龟裂、鳞片、细胞纹理 |
菜单:function
| 节点 | 输入 | 输出 | 说明 |
|---|---|---|---|
custom | 由用户定义 | any | 自定义 GLSL 代码节点,见下 |
switch | true、false (动态)、value (bool) | 动态 | 按布尔值二选一,等价于 logic/branch |
normalScale | normal (vec3)、scale (float) | vec3 | 法线强度缩放 |
ContrastFloat | In (vec3)、Contrast | vec3 | 对比度(等价于 color/contrast,为兼容保留) |
RemapVec4 | In (vec4)、InMinMax、OutMinMax | vec4 | vec4 版重映射(等价于 math/range/remap,为兼容保留) |
custom —— 自定义 GLSL
Section titled “custom —— 自定义 GLSL”当某个效果用节点搭起来太绕、或需要循环等节点做不到的结构时,用 custom 直接写 GLSL:
| 属性 | 说明 |
|---|---|
code | GLSL 代码正文(不含函数名与参数列表,只写函数体) |
inputList | 输入参数的名字与类型 |
outType | 返回值类型 |
outputList | 输出参数 |
defines | 需要的宏 |
includes | 需要引入的 GLSL 头文件 |
隐藏的内部实现节点
Section titled “隐藏的内部实现节点”还有一批节点是其他节点的实现细节:它们参与编译、会在生成的 GLSL 里看到,但不出现在右键菜单, 也无法手工放置。列在这里是为了让你在读编译产物时知道这些函数从哪来:
| 隐藏节点 | 被谁使用 |
|---|---|
colorSRGBToLinear、colorLinearToSRGB、colorRGBToHSV、colorHSVToRGB | colorspaceConversion |
colorHueShift | hue |
uvRotateRadians | uv/rotate |
rotateAboutAxisRad | math/vector/rotateAboutAxis |
shapeRectangleFastest、shapeRectangleNicest | procedural/rectangle |
gradientNoise、gradientNoise_dir | GradientNoiseFloat |
noise_randomValue、noise_interpolate、valueNoise | SimpleNoiseFloat |
voronoi_noise_randomVector | VoronoiFloat |
residue | 噪声哈希的取模运算 |
parallaxOffset1Step | uv/parallax |
| 节点 | 菜单 | 输入 | 说明 |
|---|---|---|---|
debug | debug | color (vec4) | 把任意中间结果直接输出成颜色,用来「看一眼这条线上现在是什么值」 |
- 从 Unity 迁移资产:Unity ShaderGraph 对照