Jump to content
Site Stability Read more... ×
  • Advertisement
Sign in to follow this  

Using Gerstner Wave Formula on Grid Mesh?

This topic is 2088 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I need aid. If you had a 3d Grid. (Image) And you had control over the separate vertices. (Intersections, or Points). How would you implement the Gerstner Wave method to return a Vector(x,y,z) for EACH vertex along the grid?
I have created a grid mesh. This grid mesh, as all meshes do consists of several vertices. I have created a java programm that allows me to edit and animate the position of each seperate vertex. using their respective (x,y,z) vector positions. So if i add a random number to the y position of each vector during each iteration of the for loop in which the waves should be animated it will result in random spikes pulsating up and down. (Not the desired effect, but it does the trick). Now what i want to do, is implement the Gerstner Wave formula to create realistic waves using the grid system i have created.
see attachment for Image of Grid.
Link to Gerstner (Info):
Is it possible to return a Position(x,y,z) out of the Gerstner Method and apply it into my wave method?
public void update() {
        //Update Water
        int index = 0;
        int intDex = 0;
        for (int y = 0; y < sizeY; y++) {
            for (int x = 0; x < sizeX; x++) {
                //For Each Vertex do Something
                //Vertices do not maintain their position
                //They need to be set anew
                //DO NOT CHANGE THESE VALUES:
                float xPos = x;
                float yPos = 0;
                float zPos = y;
                //MAKE ADJUSTEMENTS BELOW:
                // This is where the values are changed
                xPos += 0;
                yPos += 0; //If made random, spikes pulsate up and down
                zPos += 0;
                waterVertexPos.set(xPos, yPos, zPos); //y is where z is
                //use Floats for accuracy on Waves
                vertBufArray[index++] = waterVertexPos.getX();
                vertBufArray[index++] = waterVertexPos.getY();
                vertBufArray[index++] = waterVertexPos.getZ();
See comments for more information on specific sections of teh code snippet. 
The main reason for me to incist to use this method, is because it is very ressource efficient.
If you have any more questions regarding my question, or need another segment of my code. Feel free to ask smile.png
Thank you for your time. It is very much appreciated.
If you can give me any alternatives to this wave creation method, it would also be appreciated :)
Sidney de Vries

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!