Unity 3d ondular terrain generation
up vote
-1
down vote
favorite
I am making a 3d game where i have to do some terrain generation to have an infinite and random level.
The terrain has to be ondular with ups and downs, like this:
https://imgur.com/a/prTuRl0
i used perlin noise to generate a terrain, with multiple planes in a queue, updating them as the player goes forward(i have the Z position of the last plane, so when i update when i peek from the queue the first in line, dequeue it and enqueue it again with new vertices, through mathf.PerlinNoise(0, zPosition))
the reason why i have a 0 in the first parameter is so that the planes are uniform in the x axis
i'd like to have a gameplay similar to dunes but in 3d, where the player controls a ball, clicking while grounded gives it speed, clicking while on air brings it down, and he can get score and streaks by smoothly going through downhills or die if he crashes against an uphill
problem:
https://imgur.com/a/sdZp1qQ
perlin noise isn't always up and down as i need it to be, sometimes it has those curves in the middle that make the ball jump and have weird not desired movement... appreciate any help on this subject.
c# unity3d procedural-generation
add a comment |
up vote
-1
down vote
favorite
I am making a 3d game where i have to do some terrain generation to have an infinite and random level.
The terrain has to be ondular with ups and downs, like this:
https://imgur.com/a/prTuRl0
i used perlin noise to generate a terrain, with multiple planes in a queue, updating them as the player goes forward(i have the Z position of the last plane, so when i update when i peek from the queue the first in line, dequeue it and enqueue it again with new vertices, through mathf.PerlinNoise(0, zPosition))
the reason why i have a 0 in the first parameter is so that the planes are uniform in the x axis
i'd like to have a gameplay similar to dunes but in 3d, where the player controls a ball, clicking while grounded gives it speed, clicking while on air brings it down, and he can get score and streaks by smoothly going through downhills or die if he crashes against an uphill
problem:
https://imgur.com/a/sdZp1qQ
perlin noise isn't always up and down as i need it to be, sometimes it has those curves in the middle that make the ball jump and have weird not desired movement... appreciate any help on this subject.
c# unity3d procedural-generation
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I am making a 3d game where i have to do some terrain generation to have an infinite and random level.
The terrain has to be ondular with ups and downs, like this:
https://imgur.com/a/prTuRl0
i used perlin noise to generate a terrain, with multiple planes in a queue, updating them as the player goes forward(i have the Z position of the last plane, so when i update when i peek from the queue the first in line, dequeue it and enqueue it again with new vertices, through mathf.PerlinNoise(0, zPosition))
the reason why i have a 0 in the first parameter is so that the planes are uniform in the x axis
i'd like to have a gameplay similar to dunes but in 3d, where the player controls a ball, clicking while grounded gives it speed, clicking while on air brings it down, and he can get score and streaks by smoothly going through downhills or die if he crashes against an uphill
problem:
https://imgur.com/a/sdZp1qQ
perlin noise isn't always up and down as i need it to be, sometimes it has those curves in the middle that make the ball jump and have weird not desired movement... appreciate any help on this subject.
c# unity3d procedural-generation
I am making a 3d game where i have to do some terrain generation to have an infinite and random level.
The terrain has to be ondular with ups and downs, like this:
https://imgur.com/a/prTuRl0
i used perlin noise to generate a terrain, with multiple planes in a queue, updating them as the player goes forward(i have the Z position of the last plane, so when i update when i peek from the queue the first in line, dequeue it and enqueue it again with new vertices, through mathf.PerlinNoise(0, zPosition))
the reason why i have a 0 in the first parameter is so that the planes are uniform in the x axis
i'd like to have a gameplay similar to dunes but in 3d, where the player controls a ball, clicking while grounded gives it speed, clicking while on air brings it down, and he can get score and streaks by smoothly going through downhills or die if he crashes against an uphill
problem:
https://imgur.com/a/sdZp1qQ
perlin noise isn't always up and down as i need it to be, sometimes it has those curves in the middle that make the ball jump and have weird not desired movement... appreciate any help on this subject.
c# unity3d procedural-generation
c# unity3d procedural-generation
asked Nov 17 at 15:00
Fábio Ramos
43
43
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I fixed this problem by using the Normal Distribution Function to generate the waves, by messing with the parameters, i can add width or height to my wave
Using 5 planes per "wave" (each wave is a gameobject array of 5 planes), and simply going through the vertexes in the x axis, changing all their heights to the same value calculated in the function, incrementing x and doing it again
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I fixed this problem by using the Normal Distribution Function to generate the waves, by messing with the parameters, i can add width or height to my wave
Using 5 planes per "wave" (each wave is a gameobject array of 5 planes), and simply going through the vertexes in the x axis, changing all their heights to the same value calculated in the function, incrementing x and doing it again
add a comment |
up vote
0
down vote
I fixed this problem by using the Normal Distribution Function to generate the waves, by messing with the parameters, i can add width or height to my wave
Using 5 planes per "wave" (each wave is a gameobject array of 5 planes), and simply going through the vertexes in the x axis, changing all their heights to the same value calculated in the function, incrementing x and doing it again
add a comment |
up vote
0
down vote
up vote
0
down vote
I fixed this problem by using the Normal Distribution Function to generate the waves, by messing with the parameters, i can add width or height to my wave
Using 5 planes per "wave" (each wave is a gameobject array of 5 planes), and simply going through the vertexes in the x axis, changing all their heights to the same value calculated in the function, incrementing x and doing it again
I fixed this problem by using the Normal Distribution Function to generate the waves, by messing with the parameters, i can add width or height to my wave
Using 5 planes per "wave" (each wave is a gameobject array of 5 planes), and simply going through the vertexes in the x axis, changing all their heights to the same value calculated in the function, incrementing x and doing it again
answered Nov 19 at 17:17
Fábio Ramos
43
43
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352408%2funity-3d-ondular-terrain-generation%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown