• Create Account

Need scary sound effects or creepy audio loops for your next horror-themed game? Check out Highscore Vol.3 - The Horror Edition in our marketplace. 50 sounds and 10 loops for only \$9.99!

### #ActualTapped

Posted 15 September 2012 - 07:23 AM

Thanks, i generate the noise with glm::perlin. First I create a random 3D vector, which is then being multiplied with the position in the random volume, then i use that as the seed for perlin.

The thing is that my blocks are 2.0 * 2.0 * 2.0 in opengl size. And 32 * 32 * 32 voxels per block, therefore 16 * 16 * 16 voxels per cubic meter(opengl). What you see on the picture is one block, so 4 cracks appear per block. So yeah, i believe it is some problem with the tiling of the random volume. However, how can i create a tileable noise volume. I have tried different techniques which did not fix the cracks, like using the same noise on all edges...

#define RANDOM_VOLUME_EXTENT 16

glm::vec3 randVec(glm::signedRand1<float>(), glm::signedRand1<float>(), glm::signedRand1<float>());
for(int i = 0;i < RANDOM_VOLUME_EXTENT;++i)
{
for(int j = 0;j < RANDOM_VOLUME_EXTENT;++j)
{
for(int k = 0;k < RANDOM_VOLUME_EXTENT;++k)
{
glm::vec3 p(i * randVec.x, j * randVec.y, k * randVec.z);
randBuffer[(i*RANDOM_VOLUME_EXTENT*RANDOM_VOLUME_EXTENT)+(j*RANDOM_VOLUME_EXTENT) + k] = glm::perlin(p);
}
}


### #1Tapped

Posted 15 September 2012 - 07:21 AM

Thanks, i generate the noise with glm::perlin. First I create a random 3D vector, which is then being multiplied with the position in the random volume, then i use that as the seed for perlin.

The thing is that my blocks are 2.0 * 2.0 * 2.0 in opengl size. And 32 * 32 * 32 voxels per block, therefore 16 * 16 * 16 voxels per cubic meter(opengl). What you see on the picture is one block, so 4 cracks appear per block. So yeah, i believe it is some problem with the tiling of the random volume. However, how can i create a tileable noise volume. I have tried different techniques with no result, like using the same noise on all edges...

#define RANDOM_VOLUME_EXTENT 16

glm::vec3 randVec(glm::signedRand1<float>(), glm::signedRand1<float>(), glm::signedRand1<float>());
for(int i = 0;i < RANDOM_VOLUME_EXTENT;++i)
{
for(int j = 0;j < RANDOM_VOLUME_EXTENT;++j)
{
for(int k = 0;k < RANDOM_VOLUME_EXTENT;++k)
{
glm::vec3 p(i * randVec.x, j * randVec.y, k * randVec.z);
randBuffer[(i*RANDOM_VOLUME_EXTENT*RANDOM_VOLUME_EXTENT)+(j*RANDOM_VOLUME_EXTENT) + k] = glm::perlin(p);
}
}


PARTNERS