跳转至

VisualShaderNodeColorOp

继承

VisualShaderNode

简要描述

可视着色器图中要使用的Color运算符。

描述

将[成员运算符]应用于两个颜色输入。

成员

类型 属性名 默认值
int operator 0

枚举

enum Operator: - OP_SCREEN = 0

使用以下公式产生滤色效果:

result = vec31.0-vec31.0-a*vec31.0-b;
  • OP_DIFFERENCE = 1

通过以下公式产生差异效果:

result = absa-b;
  • OP_DARKEN = 2

使用以下公式产生变暗效果:

result = minab;
  • OP_LIGHTEN = 3

使用以下公式产生变亮效果:

result = maxab;
  • OP_OVERLAY = 4

使用以下公式产生叠加效果:

for(int i = 0; i < 3; i++){
    float base = a *;
    float blend = b*;
    if (base < 0.5) {
        result* = 2.0 * base * blend;
    } else {
        result* = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);
    }
}
  • OP_DODGE = 5

使用以下公式产生减淡效果:

result = a /vec31.0-b;
  • OP_BURN = 6

使用以下公式产生加深效果:

result = vec31.0-vec31.0-a/b;
  • OP_SOFT_LIGHT = 7

通过以下公式产生柔光效果:

for (int i = 0; i < 3; i++) {
    float base = a*;
    float blend = b*;
    if (base < 0.5) {
        result* = base * (blend + 0.5);
    } else {
        result* = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));
    }
}
  • OP_HARD_LIGHT = 8

使用以下公式产生强光效果:

for (int i = 0; i < 3; i++) {
    float base = a*;
    float blend = b*;
    if (base < 0.5) {
        result* = base * (2.0 * blend);
    } else {
        result* = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));
    }
}

成员说明

  • int operator
Default 0
setter set_operator(value)
getter get_operator