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...
VisualShaderNodeColorFunc
繼承: VisualShaderNode < Resource < RefCounted < Object
Color 函式,在視覺化著色器圖中使用。
說明
屬性
|
列舉
enum Function: 🔗
Function FUNC_GRAYSCALE = 0
使用以下公式將顏色轉換為灰度。
vec3 c = input;
float max1 = max(c.r, c.g);
float max2 = max(max1, c.b);
float max3 = max(max1, max2);
return vec3(max3, max3, max3);
Function FUNC_HSV2RGB = 1
將 HSV 向量轉換為等效的 RGB 向量。
Function FUNC_RGB2HSV = 2
將 RGB 向量轉換為等效的 HSV 向量。
Function FUNC_SEPIA = 3
使用以下公式套用棕褐色調效果。
vec3 c = input;
float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);
float g = (c.r * 0.349) + (c.g * 0.686) + (c.b * 0.168);
float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);
return vec3(r, g, b);
Function FUNC_LINEAR_TO_SRGB = 4
Converts color from linear encoding to nonlinear sRGB encoding using the following formula:
const vec3 a = vec3(0.055f);
return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c.rgb, lessThan(c.rgb, vec3(0.0031308f)));
The Compatibility renderer uses a simpler formula that may produce undefined behavior with negative input values:
vec3 c = input;
return max(vec3(1.055) * pow(c, vec3(0.416666667)) - vec3(0.055), vec3(0.0));
Function FUNC_SRGB_TO_LINEAR = 5
Converts color from nonlinear sRGB encoding to linear encoding using the following formula:
vec3 c = input;
return mix(pow((c.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), c.rgb * (1.0 / 12.92), lessThan(c.rgb, vec3(0.04045)));
The Compatibility renderer uses a simpler formula that behaves poorly with negative input values:
vec3 c = input;
return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878);
Function FUNC_MAX = 6
代表 Function 列舉的大小。
屬性說明
A function to be applied to the input color.