跳到主要内容

VisualShaderNodeColorOp

继承

VisualShaderNode

简要描述

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

描述

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

成员

类型属性名默认值
intoperator0

枚举

enum Operator:

  • **OP_SCREEN = 0**

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

result = vec3(1.0-(vec3(1.0-a)*(vec3(1.0-b);
  • **OP_DIFFERENCE = 1**

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

result = abs(a-b);
  • **OP_DARKEN = 2**

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

result = min(a,b);
  • **OP_LIGHTEN = 3**

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

result = max(a,b);
  • **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 /(vec3(1.0-b);
  • **OP_BURN = 6**

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

result = vec3(1.0-(vec3(1.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
Default0
setterset_operator(value)
getterget_operator