Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
VisualShaderNodeColorOp¶
Inherits: VisualShaderNode < Resource < RefCounted < Object
在可视化着色器图中使用的 Color 运算符。
Description¶
将 operator 应用于两个颜色输入。
Properties¶
|
Enumerations¶
enum Operator:
Operator OP_SCREEN = 0
用以下公式产生屏幕效果。
result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);
Operator OP_DIFFERENCE = 1
用以下公式产生差异效果。
result = abs(a - b);
Operator OP_DARKEN = 2
用以下公式产生变暗效果。
result = min(a, b);
Operator OP_LIGHTEN = 3
用以下公式产生减淡效果。
result = max(a, b);
Operator OP_OVERLAY = 4
用以下公式产生叠加效果。
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
用以下公式产生闪避效果。
result = a / (vec3(1.0) - b);
Operator OP_BURN = 6
用以下公式产生燃烧效果。
result = vec3(1.0) - (vec3(1.0) - a) / b;
Operator OP_SOFT_LIGHT = 7
用以下公式产生柔光效果。
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
用以下公式产生硬光效果。
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
代表 Operator 枚举的大小。
Property Descriptions¶
Operator operator = 0
要应用于输入的运算符。参阅 Operator 的选项。