Тёмный

[Godot] Procedural Planets (E05 Simple Biomes) 

Ombarus
Подписаться 8 тыс.
Просмотров 4,8 тыс.
50% 1

E01: • [Godot] Procedural Pla...
E02: • [Godot] Procedural Pla...
E03: • [Godot] Procedural Pla...
E04: • [Godot] Procedural Pla...
In this series we'll be creating a system for procedurally generating simple, but diverse planets. You can find the source code on my github at github.com/Ombarus/pcg_planet_yt
This series is heavily inspired by Sebastian Lague excellent tutorial for Unity. For more details and explanations check out his series at • Procedural Planet Gene...
******* www.solar-rogue.com/ *******
STEAM ► store.steampowered.com/app/13...
ITCH.IO ► ombarus.itch.io/solar-rogue
ANDROID ► play.google.com/store/apps/de...
IOS ► apps.apple.com/us/app/solar-r...
************************************************
Follow me and support me, check out these links :
Support me on Patreon ► / ombarus
Join the discussion on Discord ► / discord
Twitter ► @Ombarus1
Instagram ► / ombarus1
Website ► www.ombarus.com
Email ► ombarus.dev@gmail.com
Github ► github.com/Ombarus
Music ► www.bensound.com
My name is Ombarus and I'm a programmer / game developer from Canada who moved to Japan and decided to try my own luck with game dev.

Наука

Опубликовано:

 

10 окт 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 35   
@VarunSharma-dn8oq
@VarunSharma-dn8oq 2 года назад
I'm busy with my programming job, but after sometime will watch your tutorials.
@Chevifier
@Chevifier 2 года назад
I made it to the end thank you. Spent all day coding along. Now I need to learn how to apply QuadTree LODS 😂
@wilma7612
@wilma7612 9 месяцев назад
did you figure out the lods
@giggio1747
@giggio1747 2 года назад
Thank you for providing such good quality content! Very easy to follow.
@btiwari-games5279
@btiwari-games5279 2 года назад
Good progress
@marvinalberto7963
@marvinalberto7963 Год назад
was able to make it in godot 4 :D thanks.
@abhishek-farswan
@abhishek-farswan 2 года назад
thanks for sharing XD
@Slakimil
@Slakimil 2 года назад
I like it.
@TheAstrocricket
@TheAstrocricket Месяц назад
I am having issues with "dynamic_texture.create_from_data()", it is just not working, I've printed and debugged all of the parameters and they are all valid. Whenever I print the data from the dynamic_texture though, it prints an empty array... It always outputs, "Invalid Image: image is empty"; Always pointing at the mentioned line.
@BreadSauce4
@BreadSauce4 Месяц назад
I'm having the same issue, did you end up fixing it?
@TVYL3IGH
@TVYL3IGH Год назад
Thanks so much for expanding this concept into Godot.! Great writing. Any chance that a set of textures (in an AtlasTexture? Or Array?) can be used to show a different texture at each height? Can you point me in the direction of how to modify your code to do this? Where should I start?
@TVYL3IGH
@TVYL3IGH Год назад
Preferably a set of materials, rather than a set of textures.
@Chevifier
@Chevifier 2 года назад
I have one question though Ive been doing 3D design for a while now whats the best explanation for indices vs vertices?
@Ombarus
@Ombarus 2 года назад
Index are pointer to vertex. This allow re-using vertex. For example a cube has 8 vertex but needs 12 triangles (2 per face) so 12 * 3 indices (which point to one of the 8 vertex of the cube). The reason we do it like that in 3D is that vertex can be pretty heavy (they have lots of data: position, normals, UVs, Colors, etc.) but indices are just number pointing to the data so it takes less space.
@Chevifier
@Chevifier 2 года назад
@@Ombarus Thanks im trying to figure out how to add a quadtree LOD system to it Ive seen a video of it added but in Unity and in godot I cant instance a class inside the same class. But I can instance nodes but managing that become increasingly troublesome
@Chevifier
@Chevifier 2 года назад
@@Ombarus I finally actually GETTING it now...days after seeing your reply. I under stood what you said but I didnt GET it if that makes any sense at all. How I figured it out was just not using any loops and made 1 plane. defining the 4 vertex points then defining which 3 makes the 2 triangles. The reason I was confused is because I thought the indices were positional data lol
@TizianoBasile
@TizianoBasile Год назад
This is a great series! Now, what if I want to procedurally add collision shapes on those planets?
@TVYL3IGH
@TVYL3IGH Год назад
extends MeshInstance func _process(delta): #Creates collision mesh of planet if Globals.ready_to_coll: Globals.GeneratedPlanetColl = create_trimesh_collision() Globals.ready_to_coll = false There are many ways to do this, such as adding the two vars to a parent node and referencing the parent from within the above script. Globals like these should not be used in a procedural project. The result is very resource intensive on a large scale as the collision mesh comes out with too many vertices. STEPS: 1.) Create 2 empty variables ([GeneratedPlanetColl], [ready_to_coll]) in a singleton script, such as one named 'Globals'. 2.) Add the above code to a script attached to the planet mesh(s). 3.) Set [Globals.ready_to_coll = true] on a ready() function in any script or after being generated in-game. An accurate but slow collision mesh should then generate properly.
@igeon4983
@igeon4983 2 года назад
will there be a video about the atmosphere??
@Ombarus
@Ombarus 2 года назад
I actually tried adding some atmosphere but that's surprisingly tricky. It could be a whole series by itself! So it's not in the plans for now. If you want something realistic you'll need to implement actual raytracing with some light scattering shaders and for what I'm trying to do it would cost too much performance. I tried faking it using the Fresnel attribute in a Godot Shader and I think with a bit of tweaking it might be possible to get it looking "ok".
@teltowfamily2223
@teltowfamily2223 Год назад
i am attemting to make a sci-fi space exploration space rpg with procederal generation and i dont know anything.... thanks soooooo much!!!
@Snafuey
@Snafuey Год назад
I ported this to Godot 4 but I'm having an issue with the shader or maybe with how the gradient textures have changed. With a single gradient the planet is colored correctly except for the lowest. Everything at 0 is not colored or colored as the top end color. Then if using multiple gradients the color is only 1 px tall. You can move it up and down based on the start_height but it doesn't grow into the rest of the planet. What size is the texture image suppose to be?
@noahb817
@noahb817 9 месяцев назад
I'm having the same issue. Were you able to fix it?
@oliverkuss139
@oliverkuss139 7 месяцев назад
@@noahb817 If you haven't figured out yourself, try return biome_index / max (1.0, num_biomes) at the end of biome_percent_from_point
@Strattt-rj1ci
@Strattt-rj1ci 4 месяца назад
I fixed this! The "1px" seems to be a Problem with the inherent filtering of the ImageTexture-Format in Godot, meaning in this specific example it distorts the relatively simple (256x2) image into one of the 2 gradients with a small line of the second gradient around the top half, you can see this by saving the texture that goes into the sampler2D and applying it to a Sprite3D, then zooming in. This can be fixed by instructing the sampler2D to filter by nearest: uniform sampler2D name : filter_nearest; This doesnt quite correct the mistake though, the "t = 0.0" problem you described still applies (and it also applies to UV.y = 1.0 or 0.0). To fix this you can either clamp it with a function to be slightly inside the 0 to 1 range or you can let the sampler sample the middle of that gradient (so with 2 gradients the first gradient is selected for UV.y = 0.25 and the other for UV.y = 0.75). Apparently the sampler doesnt really like sampling the border of the texture Hope this helps.
@Strattt-rj1ci
@Strattt-rj1ci 4 месяца назад
also the size of the ImageTexture is your w*h in the code
@AdamsAGD
@AdamsAGD 2 месяца назад
@@Strattt-rj1ci i have spent like 8 hours going back to the first videos to see if i mistyped something, have spent another 10 hours using print() to see if any values were coming back odd... omg tnk u for being smarter than us. would have been here for another week. i mean, technically i could have fixed it by just doing t+0.01 but thats feels so ghetto.
@aidanflannery1934
@aidanflannery1934 2 года назад
they should make a godot plugin with the export extensions
@aidanflannery1934
@aidanflannery1934 2 года назад
with more usability and a template of a proceedually generated planet with bioms andstuff
@BreadSauce4
@BreadSauce4 Месяц назад
I'm trying this in Godot 4.2.2, and there is an error saying "res://3D/Planet Generator/Resources/PlanetData.gd:70 - Invalid call. Nonexistent function 'get_data' in base 'GradientTexture1D'." What do I use instead to still return a PackedByteArray?
@Ombarus
@Ombarus Месяц назад
I haven't ported it to Godot 4 myself, but someone on discord posted this snippet: data.append_array(b.gradient.get_image().get_data()) I hope it helps
@BreadSauce4
@BreadSauce4 Месяц назад
@@Ombarus That worked, but now it says "Invalid image: image is empty" even though I have a gradient texture set up in the array.
Далее
Coding Adventure: Procedural Moons and Planets
22:48
Просмотров 1,7 млн
[Godot] Procedural Planets (E01 the sphere)
19:07
Просмотров 21 тыс.
Дарю Самокат Скейтеру !
00:42
Просмотров 339 тыс.
Кто то встречал их на улице?
00:59
Did I make money selling my game?
15:23
Просмотров 4,7 тыс.
Freaking Line Rendering!
11:36
Просмотров 2,1 тыс.
You won't believe how I use UML!
6:38
Просмотров 773
Planet atmospheres, ray-sphere intersections.
7:24
Просмотров 27 тыс.
My GameDev Journey
11:47
Просмотров 2 тыс.
Tierlisting the BEST (and worst) GAME ENGINES
33:51
Просмотров 203 тыс.
Godot 4 - Tiled Dungeon Environment From Scratch
26:24
Просмотров 389 тыс.
[Godot] Procedural Planets (E04 Gradient Texture)
11:55
Здесь упор в процессор
18:02
Просмотров 146 тыс.