# Using Gerstner Wave Formula on Grid Mesh?

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

## 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.

MAIN QUESTION:
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;
vertexBuffer.rewind();
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
//VERTEX
//DO NOT CHANGE THESE VALUES:
float xPos = x;
float yPos = 0;
float zPos = y;

// 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();

}
}
vertexBuffer.put(vertBufArray);
getBuffer(VertexBuffer.Type.Position).updateData(vertexBuffer);
updateBound();


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
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

• ### What is your GameDev Story?

In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

• 13
• 9
• 15
• 14
• 46
• ### Forum Statistics

• Total Topics
634062
• Total Posts
3015303
×