VisualShaderNodeColorOp

继承: VisualShaderNode < Resource < RefCounted < Object

A Color operator to be used within the visual shader graph.

描述

Applies operator to two color inputs.

属性


枚举

enum Operator:

Operator OP_SCREEN = 0

Produce a screen effect with the following formula:


    result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);

Operator OP_DIFFERENCE = 1

Produce a difference effect with the following formula:


    result = abs(a - b);

Operator OP_DARKEN = 2

Produce a darken effect with the following formula:


    result = min(a, b);

Operator OP_LIGHTEN = 3

Produce a lighten effect with the following formula:


    result = max(a, b);

Operator OP_OVERLAY = 4

Produce an overlay effect with the following formula:


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

Operator OP_DODGE = 5

Produce a dodge effect with the following formula:


    result = a / (vec3(1.0) - b);

Operator OP_BURN = 6

Produce a burn effect with the following formula:


    result = vec3(1.0) - (vec3(1.0) - a) / b;

Operator OP_SOFT_LIGHT = 7

Produce a soft light effect with the following formula:


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

Operator OP_HARD_LIGHT = 8

Produce a hard light effect with the following formula:


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

Operator OP_MAX = 9

Represents the size of the Operator enum.


属性说明

Operator operator = 0

An operator to be applied to the inputs. See Operator for options.

1

本方法通常需要用户覆盖才能生效。

2

本方法无副作用,不会修改该实例的任何成员变量。

3

本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。

4

本方法用于构造某个类型。

5

调用本方法无需实例,可直接使用类名进行调用。

6

本方法描述的是使用本类型作为左操作数的有效运算符。

7

这个值是由下列位标志构成位掩码的整数。

8

无返回值。