OpenGL 3D Game Tutorial 37: Procedural Terrain

preview_player
Показать описание
LWJGL tutorial series on how to create a 3D Java game with OpenGL!

Procedural terrain generation this week!

Download the code:

Upcoming tutorials:

- Shadows
- Post processing
- Geometry shader

Future Tutorial Series:

- Game Audio
- Multiplayer
- Advanced Game Dev Concepts
- OpenGL Optimizing Techniques

Previous tutorial topics:

- Display
- VAOs and VBOs - Rendering a quad
- Rendering using glDrawElements
- Shader introduction
- Coloring using shaders
- Texturing
- Matrices, moving and rotating
- Loading 3D OBJ models
- Lighting I
- Lighting II
- Optimizations
- Transparency
- Fog
- Multitexturing
- Player Movement
- 3rd Person Camera
- Mipmapping
- Terrain Generation
- Terrain Collision Detection
- Texture Atlases
- GUIs/HUDs
- Multiple Light sources
- Point light attenuation
- Skybox
- Day/Night
- 3D Mouse Picking
- Water
- Cel Shading
- Normal Mapping
- Rendering Text
- Signed Distance Field Fonts
- Particle Effects
- Random Terrain Generation

End of video music- Kai Engel, "Waking Stars":

Рекомендации по теме
Комментарии
Автор

I love this.. I'm studying software engineering in college, and i LOVE game design. Thank you for these!

SirMacNaught
Автор

After this tutorial there's a neat little thing you can add if you remember the multitexturing tutorial.

Having multiple textures loaded into the shaders you can then check the current height of the terrain, and decide which texture to use based on that.
And you can also blend them like you did in the Multitexturing tutorial to get nice smooth transitions.

The result is that the terrain base texture changes based upon terrain height, snowy mountain tops, rocky mountains, green hills, and perhaps a nice beach texture right before the water edges? :D

mazdnd
Автор

Thanks for the new tutorial! I have been working through each of your tutorials on my quest to learn openGL

bryce
Автор

I don't understand anything, but it's extremly relaxing to watch this...

px
Автор

Thank you for an excellent tutorial, I've only just discovered your tutorial series/videos but it's really well presented/explained. Definitely going to look at the rest of your series.

dcaucett
Автор

Guys... Shadow mapping is next. Do you know how long I've waited for that tutorial? This is a dream come true :')

XxBurningCorexX
Автор

Can't wait for those future tutorials!

jahvick
Автор

Pls Make a Multiplayer Tutorial !!!!
You're Amaizing

MastersonHD
Автор

Amazing tutorial as always man congrats on being a top notch tutorial maker and thanks again!

ChubbaBubba
Автор

It's value noise. Arguably faster to generate.

jsbarretto
Автор

i actually like the sound of the keyboard clicking

itssuperninja
Автор

I'm making a unity game and with some modification this procedural terrain tutorial works good job

keljrackdevs
Автор

i am using your code here for perlin noise in Processing for my natural simulations. I use it as a number generator for accelerations of objects (as an example, animals in an ecosystem that move naturally looking because of perlin noise). First of all I want to really thank you for this video, it helped me A LOT!! Second, I am using the map() function to make it oscillate between some bigger values, but what values does it initially oscillate between, 0 and 1? Or -1 and 1? And how can I actually tell from the code? :D Thanks for all the help!

robertsolomon
Автор

+ThinMatrix Hey, another great one, i was wondering what is the sky box and the fog color, looks pretty neat . I find it hard to locate nice sky boxes

xDevelinful
Автор

In the getNoise function I noticed using here in C # that the value used to multiply the (x and z) makes an effect with which the lines only generate in the Z direction, and normally this is a little random too. I tried to randomize the value, but that made the map all messy, when the value is solid the lines are generated in different directions, but even so I wanted to find a way to correct this.

mistter_
Автор

I know I'm a little late to the party, but to make the getNoise method a little more efficient, maybe generate all the y values when the HeightsGenerator object is being constructed and store them in a private 2D array. Can't wait for Equilinox to come out!!!

GoalieSave
Автор

Any plans on using LWJGL 3 in the future for the tutorial series?

minecraf
Автор

Pretty sure that was Hugo's page, and it describes Value (or gradient) noise. Unfortunately the website was never corrected, and still says Perlin Noise. Also one of the first hits on google, so lots of people new to proc. gen. find it and think it is actual perlin.

Blackmodulestudio
Автор

Thanks for all your help. Your great at what you do and helped me ALOT! Thanks for everything, I just have one last favor to ask you... Can you do a tutorial on creating a sphere, I found a lot of tutorials online but none of them adds the indices and i cannot figure out on how to add them, please help me and once again thanks for everything i wish you all the best of luck with Equillinox

jpsilver
Автор

Can anyone help me, the player and entities isn't on the terrain. Sometimes floating and sometimes in the ground.

wesseldevstudio