- set(cs->p_ext, x, y, z, P_EXT * glm::distance(glm::vec3(x,y,z), center) / maxSize);
- set(cs->p_hum, x, y, z, P_HUM * (1.f - glm::distance(glm::vec3(x,y,z), center) / maxSize));
- set(cs->p_act, x, y, z, P_ACT * (1.f - glm::distance(glm::vec3(x,y,z), center) / maxSize));
+ // between [0,0,0] and [1,1,1]
+ glm::vec3 uniformPos = glm::vec3(i - x, j - y, k - z) / glm::vec3(width, height, depth);
+
+ float dist = glm::distance(uniformPos, glm::vec3(0.5,0.5,0.5)) / maxDist;
+ set(cs->p_ext, i, j, k, P_EXT * dist);
+ set(cs->p_hum, i, j, k, P_HUM * (1.f - dist));
+ set(cs->p_act, i, j, k, P_ACT * (1.f - dist));