mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 14:11:15 +00:00
Continuation of work on visual particles system
This commit is contained in:
parent
3041becc64
commit
f632e36ae5
19 changed files with 1870 additions and 162 deletions
|
|
@ -44,6 +44,7 @@
|
|||
#include "scene/gui/panel.h"
|
||||
#include "scene/main/window.h"
|
||||
#include "scene/resources/visual_shader_nodes.h"
|
||||
#include "scene/resources/visual_shader_particle_nodes.h"
|
||||
#include "scene/resources/visual_shader_sdf_nodes.h"
|
||||
#include "servers/display_server.h"
|
||||
#include "servers/rendering/shader_types.h"
|
||||
|
|
@ -417,6 +418,11 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
|
|||
}
|
||||
}
|
||||
|
||||
Ref<VisualShaderNodeParticleEmit> emit = vsnode;
|
||||
if (emit.is_valid()) {
|
||||
node->set_custom_minimum_size(Size2(200 * EDSCALE, 0));
|
||||
}
|
||||
|
||||
Ref<VisualShaderNodeUniform> uniform = vsnode;
|
||||
if (uniform.is_valid()) {
|
||||
VisualShaderEditor::get_singleton()->graph->add_child(node);
|
||||
|
|
@ -1013,13 +1019,13 @@ bool VisualShaderEditor::_is_available(int p_mode) {
|
|||
|
||||
if (p_mode != -1) {
|
||||
switch (current_mode) {
|
||||
case 0: // Vertex or Emit
|
||||
case 0: // Vertex / Emit
|
||||
current_mode = 1;
|
||||
break;
|
||||
case 1: // Fragment or Process
|
||||
case 1: // Fragment / Process
|
||||
current_mode = 2;
|
||||
break;
|
||||
case 2: // Light or End
|
||||
case 2: // Light / Collide
|
||||
current_mode = 4;
|
||||
break;
|
||||
default:
|
||||
|
|
@ -1235,22 +1241,29 @@ void VisualShaderEditor::_update_options_menu() {
|
|||
|
||||
void VisualShaderEditor::_set_mode(int p_which) {
|
||||
if (p_which == VisualShader::MODE_SKY) {
|
||||
edit_type_standart->set_visible(false);
|
||||
edit_type_standard->set_visible(false);
|
||||
edit_type_particles->set_visible(false);
|
||||
edit_type_sky->set_visible(true);
|
||||
edit_type = edit_type_sky;
|
||||
custom_mode_box->set_visible(false);
|
||||
mode = MODE_FLAGS_SKY;
|
||||
} else if (p_which == VisualShader::MODE_PARTICLES) {
|
||||
edit_type_standart->set_visible(false);
|
||||
edit_type_standard->set_visible(false);
|
||||
edit_type_particles->set_visible(true);
|
||||
edit_type_sky->set_visible(false);
|
||||
edit_type = edit_type_particles;
|
||||
if ((edit_type->get_selected() + 3) > VisualShader::TYPE_PROCESS) {
|
||||
custom_mode_box->set_visible(false);
|
||||
} else {
|
||||
custom_mode_box->set_visible(true);
|
||||
}
|
||||
mode = MODE_FLAGS_PARTICLES;
|
||||
} else {
|
||||
edit_type_particles->set_visible(false);
|
||||
edit_type_standart->set_visible(true);
|
||||
edit_type_standard->set_visible(true);
|
||||
edit_type_sky->set_visible(false);
|
||||
edit_type = edit_type_standart;
|
||||
edit_type = edit_type_standard;
|
||||
custom_mode_box->set_visible(false);
|
||||
mode = MODE_FLAGS_SPATIAL_CANVASITEM;
|
||||
}
|
||||
visual_shader->set_shader_type(get_current_shader_type());
|
||||
|
|
@ -1403,9 +1416,9 @@ void VisualShaderEditor::_update_graph() {
|
|||
VisualShader::Type VisualShaderEditor::get_current_shader_type() const {
|
||||
VisualShader::Type type;
|
||||
if (mode & MODE_FLAGS_PARTICLES) {
|
||||
type = VisualShader::Type(edit_type->get_selected() + 3);
|
||||
type = VisualShader::Type(edit_type->get_selected() + 3 + (custom_mode_enabled ? 3 : 0));
|
||||
} else if (mode & MODE_FLAGS_SKY) {
|
||||
type = VisualShader::Type(edit_type->get_selected() + 6);
|
||||
type = VisualShader::Type(edit_type->get_selected() + 8);
|
||||
} else {
|
||||
type = VisualShader::Type(edit_type->get_selected());
|
||||
}
|
||||
|
|
@ -3224,8 +3237,18 @@ void VisualShaderEditor::_mode_selected(int p_id) {
|
|||
int offset = 0;
|
||||
if (mode & MODE_FLAGS_PARTICLES) {
|
||||
offset = 3;
|
||||
if (p_id + offset > VisualShader::TYPE_PROCESS) {
|
||||
custom_mode_box->set_visible(false);
|
||||
custom_mode_enabled = false;
|
||||
} else {
|
||||
custom_mode_box->set_visible(true);
|
||||
if (custom_mode_box->is_pressed()) {
|
||||
custom_mode_enabled = true;
|
||||
offset += 3;
|
||||
}
|
||||
}
|
||||
} else if (mode & MODE_FLAGS_SKY) {
|
||||
offset = 6;
|
||||
offset = 8;
|
||||
}
|
||||
|
||||
visual_shader->set_shader_type(VisualShader::Type(p_id + offset));
|
||||
|
|
@ -3233,6 +3256,21 @@ void VisualShaderEditor::_mode_selected(int p_id) {
|
|||
_update_graph();
|
||||
}
|
||||
|
||||
void VisualShaderEditor::_custom_mode_toggled(bool p_enabled) {
|
||||
if (!(mode & MODE_FLAGS_PARTICLES)) {
|
||||
return;
|
||||
}
|
||||
custom_mode_enabled = p_enabled;
|
||||
int id = edit_type->get_selected() + 3;
|
||||
if (p_enabled) {
|
||||
visual_shader->set_shader_type(VisualShader::Type(id + 3));
|
||||
} else {
|
||||
visual_shader->set_shader_type(VisualShader::Type(id));
|
||||
}
|
||||
_update_options_menu();
|
||||
_update_graph();
|
||||
}
|
||||
|
||||
void VisualShaderEditor::_input_select_item(Ref<VisualShaderNodeInput> p_input, String p_name) {
|
||||
String prev_name = p_input->get_input_name();
|
||||
|
||||
|
|
@ -3731,17 +3769,23 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
graph->get_zoom_hbox()->add_child(vs);
|
||||
graph->get_zoom_hbox()->move_child(vs, 0);
|
||||
|
||||
edit_type_standart = memnew(OptionButton);
|
||||
edit_type_standart->add_item(TTR("Vertex"));
|
||||
edit_type_standart->add_item(TTR("Fragment"));
|
||||
edit_type_standart->add_item(TTR("Light"));
|
||||
edit_type_standart->select(1);
|
||||
edit_type_standart->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
|
||||
custom_mode_box = memnew(CheckBox);
|
||||
custom_mode_box->set_text(TTR("Custom"));
|
||||
custom_mode_box->set_pressed(false);
|
||||
custom_mode_box->set_visible(false);
|
||||
custom_mode_box->connect("toggled", callable_mp(this, &VisualShaderEditor::_custom_mode_toggled));
|
||||
|
||||
edit_type_standard = memnew(OptionButton);
|
||||
edit_type_standard->add_item(TTR("Vertex"));
|
||||
edit_type_standard->add_item(TTR("Fragment"));
|
||||
edit_type_standard->add_item(TTR("Light"));
|
||||
edit_type_standard->select(1);
|
||||
edit_type_standard->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
|
||||
|
||||
edit_type_particles = memnew(OptionButton);
|
||||
edit_type_particles->add_item(TTR("Emit"));
|
||||
edit_type_particles->add_item(TTR("Start"));
|
||||
edit_type_particles->add_item(TTR("Process"));
|
||||
edit_type_particles->add_item(TTR("End"));
|
||||
edit_type_particles->add_item(TTR("Collide"));
|
||||
edit_type_particles->select(0);
|
||||
edit_type_particles->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
|
||||
|
||||
|
|
@ -3750,14 +3794,16 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
edit_type_sky->select(0);
|
||||
edit_type_sky->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
|
||||
|
||||
edit_type = edit_type_standart;
|
||||
edit_type = edit_type_standard;
|
||||
|
||||
graph->get_zoom_hbox()->add_child(custom_mode_box);
|
||||
graph->get_zoom_hbox()->move_child(custom_mode_box, 0);
|
||||
graph->get_zoom_hbox()->add_child(edit_type_standard);
|
||||
graph->get_zoom_hbox()->move_child(edit_type_standard, 0);
|
||||
graph->get_zoom_hbox()->add_child(edit_type_particles);
|
||||
graph->get_zoom_hbox()->move_child(edit_type_particles, 0);
|
||||
graph->get_zoom_hbox()->add_child(edit_type_sky);
|
||||
graph->get_zoom_hbox()->move_child(edit_type_sky, 0);
|
||||
graph->get_zoom_hbox()->add_child(edit_type_standart);
|
||||
graph->get_zoom_hbox()->move_child(edit_type_standart, 0);
|
||||
|
||||
add_node = memnew(Button);
|
||||
add_node->set_flat(true);
|
||||
|
|
@ -3977,9 +4023,10 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
|
||||
// INPUT
|
||||
|
||||
const String input_param_shader_modes = TTR("'%s' input parameter for all shader modes.");
|
||||
|
||||
// SPATIAL-FOR-ALL
|
||||
|
||||
const String input_param_shader_modes = TTR("'%s' input parameter for all shader modes.");
|
||||
add_options.push_back(AddOption("Camera", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "camera"), "camera", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_SPATIAL));
|
||||
add_options.push_back(AddOption("InvCamera", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "inv_camera"), "inv_camera", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_SPATIAL));
|
||||
add_options.push_back(AddOption("InvProjection", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "inv_projection"), "inv_projection", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_SPATIAL));
|
||||
|
|
@ -3998,6 +4045,23 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
add_options.push_back(AddOption("Time", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, -1, Shader::MODE_CANVAS_ITEM));
|
||||
add_options.push_back(AddOption("UV", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "uv"), "uv", VisualShaderNode::PORT_TYPE_VECTOR, -1, Shader::MODE_CANVAS_ITEM));
|
||||
|
||||
// PARTICLES-FOR-ALL
|
||||
|
||||
add_options.push_back(AddOption("Active", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_BOOLEAN, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Alpha", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("AttractorForce", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "attractor_force"), "attractor_force", VisualShaderNode::PORT_TYPE_VECTOR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Color", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Custom", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("CustomAlpha", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Delta", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("EmissionTransform", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Index", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("LifeTime", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Restart", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_BOOLEAN, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Time", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Transform", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Velocity", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, -1, Shader::MODE_PARTICLES));
|
||||
|
||||
/////////////////
|
||||
|
||||
add_options.push_back(AddOption("Input", "Input", "Common", "VisualShaderNodeInput", TTR("Input parameter.")));
|
||||
|
|
@ -4010,11 +4074,12 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
const String input_param_for_sky_shader_mode = TTR("'%s' input parameter for sky shader mode.");
|
||||
const String input_param_for_light_shader_mode = TTR("'%s' input parameter for light shader mode.");
|
||||
const String input_param_for_vertex_shader_mode = TTR("'%s' input parameter for vertex shader mode.");
|
||||
const String input_param_for_emit_shader_mode = TTR("'%s' input parameter for emit shader mode.");
|
||||
const String input_param_for_start_shader_mode = TTR("'%s' input parameter for start shader mode.");
|
||||
const String input_param_for_process_shader_mode = TTR("'%s' input parameter for process shader mode.");
|
||||
const String input_param_for_end_shader_mode = TTR("'%s' input parameter for end shader mode.");
|
||||
const String input_param_for_emit_and_process_shader_mode = TTR("'%s' input parameter for emit and process shader mode.");
|
||||
const String input_param_for_vertex_and_fragment_shader_mode = TTR("'%s' input parameter for vertex and fragment shader mode.");
|
||||
const String input_param_for_collide_shader_mode = TTR("'%s' input parameter for collide shader mode.");
|
||||
const String input_param_for_start_and_process_shader_mode = TTR("'%s' input parameter for start and process shader modes.");
|
||||
const String input_param_for_process_and_collide_shader_mode = TTR("'%s' input parameter for process and collide shader modes.");
|
||||
const String input_param_for_vertex_and_fragment_shader_mode = TTR("'%s' input parameter for vertex and fragment shader modes.");
|
||||
|
||||
add_options.push_back(AddOption("Alpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
|
||||
add_options.push_back(AddOption("Binormal", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), "binormal", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
|
||||
|
|
@ -4091,50 +4156,6 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
|
||||
add_options.push_back(AddOption("World", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "world"), "world", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
|
||||
|
||||
// PARTICLES INPUTS
|
||||
|
||||
add_options.push_back(AddOption("Active", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Alpha", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Color", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Custom", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("CustomAlpha", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Delta", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("EmissionTransform", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Index", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("LifeTime", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Restart", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Time", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Transform", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Velocity", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
|
||||
add_options.push_back(AddOption("Active", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Alpha", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Color", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Custom", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("CustomAlpha", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Delta", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("EmissionTransform", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Index", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("LifeTime", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Restart", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Time", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Transform", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Velocity", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
|
||||
add_options.push_back(AddOption("Active", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Alpha", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Color", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Custom", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("CustomAlpha", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Delta", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("EmissionTransform", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Index", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("LifeTime", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Restart", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Time", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Transform", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("Velocity", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
|
||||
|
||||
// SKY INPUTS
|
||||
|
||||
add_options.push_back(AddOption("AtCubeMapPass", "Input", "Sky", "VisualShaderNodeInput", vformat(input_param_for_sky_shader_mode, "at_cubemap_pass"), "at_cubemap_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_SKY, Shader::MODE_SKY));
|
||||
|
|
@ -4167,6 +4188,22 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
add_options.push_back(AddOption("SkyCoords", "Input", "Sky", "VisualShaderNodeInput", vformat(input_param_for_sky_shader_mode, "sky_coords"), "sky_coords", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_SKY, Shader::MODE_SKY));
|
||||
add_options.push_back(AddOption("Time", "Input", "Sky", "VisualShaderNodeInput", vformat(input_param_for_sky_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_SKY, Shader::MODE_SKY));
|
||||
|
||||
// PARTICLES
|
||||
|
||||
add_options.push_back(AddOption("CollisionDepth", "Input", "Collide", "VisualShaderNodeInput", vformat(input_param_for_collide_shader_mode, "collision_depth"), "collision_depth", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_COLLIDE, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("CollisionNormal", "Input", "Collide", "VisualShaderNodeInput", vformat(input_param_for_collide_shader_mode, "collision_normal"), "collision_normal", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_COLLIDE, Shader::MODE_PARTICLES));
|
||||
|
||||
add_options.push_back(AddOption("EmitParticle", "Particles", "", "VisualShaderNodeParticleEmit", "", -1, -1, -1, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("ParticleAccelerator", "Particles", "", "VisualShaderNodeParticleAccelerator", "", -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("ParticleRandomness", "Particles", "", "VisualShaderNodeParticleRandomness", "", -1, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT | TYPE_FLAGS_PROCESS | TYPE_FLAGS_COLLIDE, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("MultiplyByAxisAngle", "Particles", "Transform", "VisualShaderNodeParticleMultiplyByAxisAngle", "A node for help to multiply a position input vector by rotation using specific axis. Intended to work with emitters.", -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT | TYPE_FLAGS_PROCESS | TYPE_FLAGS_COLLIDE, Shader::MODE_PARTICLES));
|
||||
|
||||
add_options.push_back(AddOption("BoxEmitter", "Particles", "Emitters", "VisualShaderNodeParticleBoxEmitter", "", -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("RingEmitter", "Particles", "Emitters", "VisualShaderNodeParticleRingEmitter", "", -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
add_options.push_back(AddOption("SphereEmitter", "Particles", "Emitters", "VisualShaderNodeParticleSphereEmitter", "", -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
|
||||
add_options.push_back(AddOption("ConeVelocity", "Particles", "Velocity", "VisualShaderNodeParticleConeVelocity", "", -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
|
||||
|
||||
// SCALAR
|
||||
|
||||
add_options.push_back(AddOption("FloatFunc", "Scalar", "Common", "VisualShaderNodeFloatFunc", TTR("Float function."), -1, VisualShaderNode::PORT_TYPE_SCALAR));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue