跳转到内容

节点手册 · 颜色与艺术效果

本页收录处理颜色与做视觉效果的节点:color 19 个、function 8 个、utility 1 个、 debug 1 个。

菜单:color

节点输入输出说明
GammaToLineargamma (vec3/vec4)同型伽马空间转线性空间
LinearToGammalinear (vec3/vec4)同型线性空间转伽马空间
colorspaceConversionIn (vec3)vec3在 RGB / Linear / HSV 之间转换

colorspaceConversionFromTo 两个下拉,各可取 RGBLinearHSV,共 9 种组合。

菜单:color

节点输入输出说明
saturationIn (vec3)、Saturation (默认 1)vec3饱和度。0 = 灰度,1 = 原样,>1 = 增艳
hueIn (vec3)、Offset (默认 0)vec3色相旋转。Range 模式Degrees(0360)/ Normalized(01)
contrastIn (vec3)、Contrast (默认 1)vec3对比度,绕 sRGB 中灰 pow(0.5, 2.2) 缩放
whiteBalanceIn (vec3)、Temperature (0)、Tint (0)vec3白平衡:Temperature 冷暖、Tint 绿品偏移
replaceColorIn、From、To、Range (0)、Fuzziness (0)vec3把接近 From 的颜色替换成 To,Range 是容差、Fuzziness 是过渡软度
colorMaskIn、MaskColor、Range (0)、Fuzziness (0)float生成「哪些像素接近 MaskColor」的遮罩
invertColorsIn (动态)动态反相。R / G / B / A 四个勾选框决定反哪几个通道
channelMixerIn (vec3)、OutRed、OutGreen、OutBlue (vec3)vec3通道混合:每个输出通道由三个输入通道加权得到
fadeTransitionNoiseValue (0.5)、FadeValue (0.5)、FadeContrast (1)float溶解过渡遮罩:把噪声图 + 进度值变成带对比度控制的过渡遮罩

菜单:colorblend

输入类型默认说明
Base动态 (float~vec4)底层颜色
Blend动态 (float~vec4)混合层颜色
Opacityfloat1混合强度。结果 = mix(Base, 混合结果, Opacity)

模式与公式(Base 记作 A、Blend 记作 B):

分组模式公式
变暗Darkenmin(A, B)
MultiplyA × B
LinearBurnA + B − 1
Burn1 − (1 − B) / A
变亮Lightenmax(A, B)
Screen1 − (1 − A)(1 − B)
LinearDodgeA + B
DodgeA / (1 − B)
对比OverlayA ≤ 0.5 时 2AB,否则 1 − 2(1−A)(1−B)
HardLight同 Overlay 但以 B 判断分支
SoftLight柔和版叠加,边缘更平滑
VividLight按 A 分支的加深/减淡组合,对比最强烈
LinearLight按 B 分支的线性加深/减淡
LinearLightAddSubB + 2A − 1
PinLight按 B 分支取 max / min,产生硬边替换
HardMixstep(1 − A, B),结果只有 0 或 1,纯色块化
差值Differenceabs(B − A)
ExclusionA + B − 2AB
Negation1 − abs(1 − A − B)
SubtractA − B
DivideA / B
替换Overwrite直接用 B,配合 Opacity 做整体淡入淡出

菜单:color

节点输入输出说明
normalUnpackIn (vec4)vec3把 01 的贴图值解码成 −11 的法线:normalize(In.xyz × 2 − 1)
normalStrengthIn (vec3)、Strength (1)vec3调节法线强度,0 = 平面,>1 = 夸大凹凸
normalBlendA、B (vec3)vec3混合两张法线。ModeDefault(简单叠加)/ Reoriented(重定向,更正确)
normalReconstructZIn (vec2)vec3由 XY 推算 Z 分量,用于只存两通道的压缩法线贴图
normalFromHeightIn (float)、Strength (1)vec3由高度值用屏幕导数生成切线空间法线
normalFromTextureTex (sampler2D)、UV、Offset (0.005)、Strength (8)vec3由高度贴图三点差分生成法线,Offset 是采样间距
节点菜单输入输出说明
ditherutilityIn (动态)动态4×4 Bayer 有序抖动。配合 alpha 裁剪做「渐隐但不半透」的溶解、LOD 淡出

菜单:function。噪声是溶解、流动、扰动效果的基础。

节点输入输出说明
GradientNoiseFloatUVInfo (vec2)、Scalefloat梯度噪声(Perlin 风格),自然平滑,最常用
SimpleNoiseFloattexcoord (vec2)、Scalefloat值噪声的多倍频叠加,颗粒感更强
VoronoiFloatUVInfo (vec2)、AngleOffset、CellDensityfloat沃罗诺伊细胞噪声,做龟裂、鳞片、细胞纹理

菜单:function

节点输入输出说明
custom由用户定义any自定义 GLSL 代码节点,见下
switchtrue、false (动态)、value (bool)动态按布尔值二选一,等价于 logic/branch
normalScalenormal (vec3)、scale (float)vec3法线强度缩放
ContrastFloatIn (vec3)、Contrastvec3对比度(等价于 color/contrast,为兼容保留)
RemapVec4In (vec4)、InMinMax、OutMinMaxvec4vec4 版重映射(等价于 math/range/remap,为兼容保留)

当某个效果用节点搭起来太绕、或需要循环等节点做不到的结构时,用 custom 直接写 GLSL:

属性说明
codeGLSL 代码正文(不含函数名与参数列表,只写函数体)
inputList输入参数的名字与类型
outType返回值类型
outputList输出参数
defines需要的宏
includes需要引入的 GLSL 头文件

还有一批节点是其他节点的实现细节:它们参与编译、会在生成的 GLSL 里看到,但不出现在右键菜单, 也无法手工放置。列在这里是为了让你在读编译产物时知道这些函数从哪来:

隐藏节点被谁使用
colorSRGBToLinearcolorLinearToSRGBcolorRGBToHSVcolorHSVToRGBcolorspaceConversion
colorHueShifthue
uvRotateRadiansuv/rotate
rotateAboutAxisRadmath/vector/rotateAboutAxis
shapeRectangleFastestshapeRectangleNicestprocedural/rectangle
gradientNoisegradientNoise_dirGradientNoiseFloat
noise_randomValuenoise_interpolatevalueNoiseSimpleNoiseFloat
voronoi_noise_randomVectorVoronoiFloat
residue噪声哈希的取模运算
parallaxOffset1Stepuv/parallax
节点菜单输入说明
debugdebugcolor (vec4)把任意中间结果直接输出成颜色,用来「看一眼这条线上现在是什么值」

本文更新于