Browse Source

Fix vector field particle attractor texture sampling

Andreas Raddau 3 years ago
parent
commit
dfc6035ce1
1 changed files with 2 additions and 2 deletions
  1. 2 2
      servers/rendering/renderer_rd/shaders/particles.glsl

+ 2 - 2
servers/rendering/renderer_rd/shaders/particles.glsl

@@ -458,11 +458,11 @@ void main() {
 
 				} break;
 				case ATTRACTOR_TYPE_VECTOR_FIELD: {
-					vec3 uvw_pos = (local_pos / FRAME.attractors[i].extents) * 2.0 - 1.0;
+					vec3 uvw_pos = (local_pos / FRAME.attractors[i].extents + 1.0) * 0.5;
 					if (any(lessThan(uvw_pos, vec3(0.0))) || any(greaterThan(uvw_pos, vec3(1.0)))) {
 						continue;
 					}
-					vec3 s = texture(sampler3D(sdf_vec_textures[FRAME.attractors[i].texture_index], material_samplers[SAMPLER_LINEAR_CLAMP]), uvw_pos).xyz;
+					vec3 s = texture(sampler3D(sdf_vec_textures[FRAME.attractors[i].texture_index], material_samplers[SAMPLER_LINEAR_CLAMP]), uvw_pos).xyz * 2.0 - 1.0;
 					dir = mat3(FRAME.attractors[i].transform) * safe_normalize(s); //revert direction
 					amount = length(s);