Advertisement
Guest User

Untitled

a guest
May 21st, 2025
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "depth_utils.glslh"
  2.  
  3. in vec3 vertex_position_in;
  4. in vec3 vertex_color_in;
  5. in vec3 vertex_normal_in;
  6.  
  7. out float log_z;
  8. out vec3 vertex_color_out;
  9. out vec3 vertex_normal_out;
  10. out vec3 vertex_world_position_out;
  11. out vec4 vertex_position_prev_out;
  12. out vec4 vertex_position_next_out;
  13. out vec3 vertex_object_position_out; // Added: object-space position
  14.  
  15. uniform mat4 mat_view_proj;
  16. uniform mat4 mat_view_proj_prev;
  17. uniform mat4 mat_view_proj_next;
  18. uniform mat4 mat_world;
  19. uniform mat4 mat_world_prev;
  20. uniform mat4 mat_world_next;
  21.  
  22. uniform vec4 override_color_1;
  23. uniform vec4 override_color_2;
  24. uniform vec4 override_color_3;
  25. uniform int is_preview;
  26. uniform int is_force_color;
  27. uniform int is_disable_color_replace;
  28.  
  29. void main()
  30. {
  31. vec3 override_color_1_difference = vertex_color_in - vec3(1.0, 0.494, 0.0);
  32. vec3 override_color_2_difference = vertex_color_in - vec3(0.608, 0.494, 0.0);
  33. vec3 override_color_3_difference = vertex_color_in - vec3(0.216, 0.494, 0.0);
  34. vec3 override_color_4_difference = vertex_color_in - vec3(0.159, 0.275, 0.102);
  35. vec3 preview_color_difference = vertex_color_in - vec3(1.0, 1.0, 1.0);
  36.  
  37. if((is_disable_color_replace == 0 && (dot(override_color_1_difference, override_color_1_difference) < 0.01 || ( is_preview == 1 && dot(preview_color_difference, preview_color_difference) < 0.01 ))) || (is_force_color == 1))
  38. {
  39. vertex_color_out = override_color_1.rgb;
  40. }
  41. else if((is_disable_color_replace == 0 && (dot(override_color_2_difference, override_color_2_difference) < 0.01 || ( is_preview == 1 && dot(preview_color_difference, preview_color_difference) < 0.01 ))) || (is_force_color == 1))
  42. {
  43. vertex_color_out = override_color_2.rgb;
  44. }
  45. else if((is_disable_color_replace == 0 && (dot(override_color_3_difference, override_color_3_difference) < 0.01 || ( is_preview == 1 && dot(preview_color_difference, preview_color_difference) < 0.01 ))) || (is_force_color == 1))
  46. {
  47. vertex_color_out = override_color_3.rgb;
  48. }
  49. else if((is_disable_color_replace == 0 && (dot(override_color_4_difference, override_color_4_difference) < 0.01) && (dot(vec3(0.0, 1.0, 0.0), vertex_normal_in) >= 0.25)))
  50. {
  51. vertex_color_out = vec3(1.0, 1.0, 1.0);
  52. }
  53. else
  54. {
  55. vertex_color_out = vertex_color_in;
  56. }
  57.  
  58. vertex_normal_out = (mat_world * vec4(vertex_normal_in, 0.0)).xyz;
  59.  
  60. vec4 world_pos = mat_world * vec4(vertex_position_in, 1.0);
  61. vertex_world_position_out = world_pos.xyz;
  62. vertex_object_position_out = vertex_position_in; // Pass object-space position
  63.  
  64. vertex_position_prev_out = mat_view_proj_prev * (mat_world_prev * vec4(vertex_position_in, 1.0));
  65. vertex_position_next_out = mat_view_proj_next * (mat_world_next * vec4(vertex_position_in, 1.0));
  66.  
  67. gl_Position = mat_view_proj * world_pos;
  68. encode_depth(gl_Position, log_z);
  69. }
Tags: Stormworks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement