1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Redesign the graph editor for visual shaders

This commit is contained in:
Hendrik Brucker
2024-02-09 15:02:58 +01:00
parent 16d61427ca
commit 02a33b67a8
13 changed files with 438 additions and 63 deletions

View File

@@ -76,6 +76,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_VECTOR; }
VisualShaderNodeVectorBase();
};
@@ -101,6 +103,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override = 0;
virtual Category get_category() const override { return CATEGORY_INPUT; }
VisualShaderNodeConstant();
};
@@ -437,6 +441,8 @@ public:
virtual String get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeTexture();
};
@@ -473,6 +479,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual bool is_use_prop_slots() const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeCurveTexture();
};
@@ -543,6 +551,8 @@ public:
virtual String get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeSample3D();
};
@@ -671,8 +681,11 @@ public:
virtual bool has_output_port_preview(int p_port) const override;
virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeLinearSceneDepth();
};
@@ -695,6 +708,8 @@ public:
virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeWorldPositionFromDepth();
};
@@ -717,6 +732,8 @@ public:
virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeScreenNormalWorldSpace();
};
@@ -765,6 +782,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_SCALAR; }
VisualShaderNodeFloatOp();
};
@@ -957,6 +976,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_COLOR; }
VisualShaderNodeColorOp();
};
@@ -1006,6 +1027,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_TRANSFORM; }
VisualShaderNodeTransformOp();
};
@@ -1050,6 +1073,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_TRANSFORM; }
VisualShaderNodeTransformVecMult();
};
@@ -1122,6 +1147,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_SCALAR; }
VisualShaderNodeFloatFunc();
};
@@ -1166,6 +1193,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_SCALAR; }
VisualShaderNodeIntFunc();
};
@@ -1208,6 +1237,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_SCALAR; }
VisualShaderNodeUIntFunc();
};
@@ -1327,6 +1358,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_COLOR; }
VisualShaderNodeColorFunc();
};
@@ -1369,6 +1402,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_TRANSFORM; }
VisualShaderNodeTransformFunc();
};
@@ -1414,6 +1449,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeUVFunc();
};
@@ -1440,6 +1477,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TEXTURES; }
VisualShaderNodeUVPolarCoord();
};
@@ -1620,6 +1659,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeDerivativeFunc();
};
@@ -1669,6 +1710,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TRANSFORM; }
VisualShaderNodeOuterProduct();
};
@@ -1714,6 +1757,14 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override {
if (op_type == OP_TYPE_SCALAR) {
return CATEGORY_SCALAR;
} else {
return CATEGORY_VECTOR;
}
}
VisualShaderNodeStep();
};
@@ -1761,6 +1812,14 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override {
if (op_type == OP_TYPE_SCALAR) {
return CATEGORY_SCALAR;
} else {
return CATEGORY_VECTOR;
}
}
VisualShaderNodeSmoothStep();
};
@@ -1852,6 +1911,14 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override {
if (op_type == OP_TYPE_SCALAR) {
return CATEGORY_SCALAR;
} else {
return CATEGORY_VECTOR;
}
}
VisualShaderNodeMix();
};
@@ -1898,6 +1965,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TRANSFORM; }
VisualShaderNodeTransformCompose();
};
@@ -1921,6 +1990,8 @@ public:
virtual void set_op_type(OpType p_op_type) override;
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_VECTOR; }
VisualShaderNodeVectorDecompose();
};
@@ -1942,6 +2013,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_TRANSFORM; }
VisualShaderNodeTransformDecompose();
};
@@ -2584,6 +2657,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_CONDITIONAL; }
VisualShaderNodeIf();
};
@@ -2630,6 +2705,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_CONDITIONAL; }
VisualShaderNodeSwitch();
};
@@ -2698,6 +2775,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_CONDITIONAL; }
VisualShaderNodeIs();
};
@@ -2772,6 +2851,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual String get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const override;
virtual Category get_category() const override { return CATEGORY_CONDITIONAL; }
VisualShaderNodeCompare();
};
@@ -2815,6 +2896,14 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override {
if (op_type == OP_TYPE_SCALAR) {
return CATEGORY_SCALAR;
} else {
return CATEGORY_VECTOR;
}
}
VisualShaderNodeMultiplyAdd();
};
@@ -2862,6 +2951,8 @@ public:
virtual Vector<StringName> get_editable_properties() const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeBillboard();
};
@@ -2888,6 +2979,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeDistanceFade();
};
@@ -2909,6 +3002,8 @@ public:
virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeProximityFade();
};
@@ -2929,6 +3024,8 @@ public:
virtual String generate_global_per_node(Shader::Mode p_mode, int p_id) const override;
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeRandomRange();
};
@@ -2948,6 +3045,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeRemap();
};
@@ -2968,6 +3067,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
virtual Category get_category() const override { return CATEGORY_UTILITY; }
VisualShaderNodeRotationByAxis();
};