• Create Account

## Using Gerstner Wave Formula on Grid Mesh?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

No replies to this topic

### #1TastyLemons  Members

104
Like
0Likes
Like

Posted 01 February 2014 - 01:34 AM

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

#### Attached Thumbnails

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.