Browse Source

Merge pull request #41986 from Chaosus/vs_fix_triplanar_texture

Fix triplanar texture code generation in visual shaders
Yuri Roubinsky 5 years ago
parent
commit
deab76de22
2 changed files with 5 additions and 5 deletions
  1. 1 1
      scene/resources/visual_shader.cpp
  2. 4 4
      scene/resources/visual_shader_nodes.cpp

+ 1 - 1
scene/resources/visual_shader.cpp

@@ -1509,11 +1509,11 @@ void VisualShader::_update_shader() const {
 		if (shader_mode != Shader::MODE_PARTICLES) {
 		if (shader_mode != Shader::MODE_PARTICLES) {
 			func_code += "\nvoid " + String(func_name[i]) + "() {\n";
 			func_code += "\nvoid " + String(func_name[i]) + "() {\n";
 		}
 		}
+		insertion_pos.insert(i, code.get_string_length() + func_code.get_string_length());
 
 
 		Set<int> processed;
 		Set<int> processed;
 		Error err = _write_node(Type(i), global_code, global_code_per_node, global_code_per_func, func_code, default_tex_params, input_connections, output_connections, NODE_ID_OUTPUT, processed, false, classes);
 		Error err = _write_node(Type(i), global_code, global_code_per_node, global_code_per_func, func_code, default_tex_params, input_connections, output_connections, NODE_ID_OUTPUT, processed, false, classes);
 		ERR_FAIL_COND(err != OK);
 		ERR_FAIL_COND(err != OK);
-		insertion_pos.insert(i, code.get_string_length());
 
 
 		if (shader_mode == Shader::MODE_PARTICLES) {
 		if (shader_mode == Shader::MODE_PARTICLES) {
 			code_map.insert(i, func_code);
 			code_map.insert(i, func_code);

+ 4 - 4
scene/resources/visual_shader_nodes.cpp

@@ -4359,13 +4359,13 @@ String VisualShaderNodeTextureUniformTriplanar::generate_code(Shader::Mode p_mod
 	String code = "\t{\n";
 	String code = "\t{\n";
 
 
 	if (p_input_vars[0] == String() && p_input_vars[1] == String()) {
 	if (p_input_vars[0] == String() && p_input_vars[1] == String()) {
-		code += "\t\tvec4 n_tex_read = triplanar_texture( " + id + ", triplanar_power_normal, triplanar_pos );\n";
+		code += "\t\tvec4 n_tex_read = triplanar_texture(" + id + ", triplanar_power_normal, triplanar_pos);\n";
 	} else if (p_input_vars[0] != String() && p_input_vars[1] == String()) {
 	} else if (p_input_vars[0] != String() && p_input_vars[1] == String()) {
-		code += "\t\tvec4 n_tex_read = triplanar_texture( " + id + ", " + p_input_vars[0] + ", triplanar_pos );\n";
+		code += "\t\tvec4 n_tex_read = triplanar_texture(" + id + ", " + p_input_vars[0] + ", triplanar_pos);\n";
 	} else if (p_input_vars[0] == String() && p_input_vars[1] != String()) {
 	} else if (p_input_vars[0] == String() && p_input_vars[1] != String()) {
-		code += "\t\tvec4 n_tex_read = triplanar_texture( " + id + ", triplanar_power_normal," + p_input_vars[1] + " );\n";
+		code += "\t\tvec4 n_tex_read = triplanar_texture(" + id + ", triplanar_power_normal, " + p_input_vars[1] + ");\n";
 	} else {
 	} else {
-		code += "\t\tvec4 n_tex_read = triplanar_texture( " + id + ", " + p_input_vars[0] + ", " + p_input_vars[1] + " );\n";
+		code += "\t\tvec4 n_tex_read = triplanar_texture(" + id + ", " + p_input_vars[0] + ", " + p_input_vars[1] + ");\n";
 	}
 	}
 
 
 	code += "\t\t" + p_output_vars[0] + " = n_tex_read.rgb;\n";
 	code += "\t\t" + p_output_vars[0] + " = n_tex_read.rgb;\n";