Part of the Khronos Group

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 3 of 3

Thread: heightmap of points vertex(or geometry) shader

  1. #1
    Newbie Newbie
    Join Date
    Dec 2018

    heightmap of points vertex(or geometry) shader

    I'm playing with geometry shaders and try to generate a heightmap. In CPU side I have generated a grid of points like this :

    Code :
    const int NUM_X = 140;
    const int NUM_Z = 40;`
    const float HALF_SIZE_X = 100.0f/2.0f;
    const float HALF_SIZE_Z = 100.0f/2.0f;
    GLfloat* data = (GLfloat*)malloc( (NUM_X*NUM_Z * 3) * sizeof(GLfloat));
        int count = 0;
        int i, j;
        for( j=0;j<NUM_Z;j++) {
            for( i=0;i<NUM_X;i++) {
                data[count] = ((((float)(i))/(NUM_X-1)) *2-1)* HALF_SIZE_X;
                data[count+1] = 0.0f;
                data[count+2] =((((float)(j))/(NUM_Z-1))*2-1)*HALF_SIZE_Z;

    and in GPU side I transform this points in cubes in the geometry shader.

    What I want to do is to generate a heightmap from this grid of points in the vertex or geometry shader like a minecraft. I know i have to use an algorithm like perlin noise or simplex noise but I have no idea how to implement them to obtain a terrain. I saw some code found in webgl-noise but it's not conclusive and I don't understand it very well. I tried to convert the array in a texture but it's the same thing.

    I want to generate heightmap in the shader because when we move it will generate a new heightmap with the same points. It will give the impression we will move but it's just the terrain on y axis changes. But my problem is I don't know how to generate this terrain.

    Any idea how to do, please ?

  2. #2

  3. #3
    Newbie Newbie
    Join Date
    Dec 2018
    It was an example of what kind of terrain I want. Sorry for the mistake.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts