diff options
author | mightygoat <alpha5and5official@gmail.com> | 2022-06-18 02:17:31 +0530 |
---|---|---|
committer | mightygoat <alpha5and5official@gmail.com> | 2022-06-19 01:20:57 +0530 |
commit | 59029f1a3f52c52a887e2e96715d8b0e0851e4b3 (patch) | |
tree | 92602988e87e3caa0eec82ac5423cbb439b6207e /scene/resources/particles_material.cpp | |
parent | 0daa868ab432d71442b76fa9bcfe3723abfc8718 (diff) |
Declaring emission_tex_ofs globally
Diffstat (limited to 'scene/resources/particles_material.cpp')
-rw-r--r-- | scene/resources/particles_material.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp index c4b15df6bb..7a49b9b515 100644 --- a/scene/resources/particles_material.cpp +++ b/scene/resources/particles_material.cpp @@ -488,6 +488,12 @@ void ParticlesMaterial::_update_shader() { code += " float degree_to_rad = pi / 180.0;\n"; code += "\n"; + if (emission_shape == EMISSION_SHAPE_POINTS || emission_shape == EMISSION_SHAPE_DIRECTED_POINTS) { + code += " int point = min(emission_texture_point_count - 1, int(rand_from_seed(alt_seed) * float(emission_texture_point_count)));\n"; + code += " ivec2 emission_tex_size = textureSize(emission_texture_points, 0);\n"; + code += " ivec2 emission_tex_ofs = ivec2(point % emission_tex_size.x, point / emission_tex_size.x);\n"; + } + code += " CUSTOM.y += DELTA / LIFETIME;\n"; code += " float tv = CUSTOM.y / CUSTOM.w;\n"; if (tex_parameters[PARAM_INITIAL_LINEAR_VELOCITY].is_valid()) { |