Тёмный
No video :(

Massive Infinite TERRAIN that Generates INSTANTLY: Clipmap & Collisions 

DitzyNinja's Godojo
Подписаться 3,2 тыс.
Просмотров 16 тыс.
50% 1

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

 

23 авг 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 75   
@ditzyninja
@ditzyninja Год назад
Check out part 2: LOD and Stitching ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Hgv9iAdazKg.html
@MrScorpianwarrior
@MrScorpianwarrior Год назад
Not gonna watch this whole video right now because I don't need this information, but I will absolutely subscribe!
@barrykelly4651
@barrykelly4651 10 месяцев назад
This is incredibly dense content. Most tutorials I want sped up. This one I had to slow down! Very well laid out, you put a lot of work and thought into this. Thanks for sharing!!
@asapshazzy
@asapshazzy Год назад
You’re a great dev! Honestly some of the best tutorials for Godot I’ve seen. Good luck!
@ditzyninja
@ditzyninja Год назад
Thank you so much!
@bodamat
@bodamat Год назад
You are making the best advanced tutorial for Godot, thanks
@ditzyninja
@ditzyninja Год назад
I really appreciate that :) and no problem!
@cristiandecu
@cristiandecu 9 месяцев назад
The problem with clipmaps from my experience is that it cannot render the terrain at distances larger than the clipmap itself. For instance, if your clipmap is 2048 by 2048 and the map is 4098 by 4098 if you are somewhere in the corner of the map you won't be able to see any topological features beyond the 2048 threshold and that for me is simply not acceptable. I mean, yes, you could blame it on the fog but it will just ruing the immersion. Fog can be used to hide stuff such as grass chunks popping in in the distance, but you should still be able to see the mountains to make the player get a sense of just how large the map is. While quad tree based terrains are a little more difficult to implement I'd rather spend a day or two getting it to work the way I want it instead of sacrificing the immersion of an outdoor level for the sake of simplicity.
@NirielWinx
@NirielWinx Год назад
Well, infinite... if your height map has one texel per meter (which one would need to resolve river beds), then it'll start glitching 1000 km away from the origin. That's like, the size of France. Pretty huge indeed!
@WindBendsSteel
@WindBendsSteel Год назад
Origin shifting solves that, I actually made a terrain that goes up tp 16000 km, the only thing limiting the size now is gpu bit precision, for the heightmap generators.
@NirielWinx
@NirielWinx Год назад
Did you manage to have it work well with physics?
@ditzyninja
@ditzyninja Год назад
There are ways of getting a lot more out of the heightmaps. Technically, It will always repeat eventually.. but it's effectively infinite lol. I'm going to make that the topic of my next video.
@WindBendsSteel
@WindBendsSteel Год назад
@@ditzyninja Yeah, that's the thing, I managed to make a truly infinite terrain that actually never repeats, it is 100% procedural, nothing is pre-rendered.
@FinaISpartan
@FinaISpartan Год назад
Awesome video! I love seeing how far devs can push the engine
@ditzyninja
@ditzyninja Год назад
Thanks! Glad you liked it
@DoctorMandible
@DoctorMandible Год назад
@4:50 you made the Take On Me music video! Cool tutorial! Hoping for more multiplayer stuff soon! Also, godot now exposes more pathfinding options for postprocessing.
@ditzyninja
@ditzyninja Год назад
Thanks! Glad you liked it. I didn't release Godot added more postprocessing options. That's awesome
@yvanvan3729
@yvanvan3729 Год назад
Excellent work and great tutorial ! TYVM for sharing your knowledge.
@ditzyninja
@ditzyninja Год назад
You're very welcome!
@bitbraindev
@bitbraindev Год назад
It still puzzles me that you have not more subscribers. Go subscribe everyone!
@ditzyninja
@ditzyninja Год назад
Thanks man, I really appreciate that 🙂
@ditzyninja
@ditzyninja Год назад
I just checked out your channel and subscribed right away. Your videos are awesome! High-quality and straight to the point.
@BrianJorgensenAbides
@BrianJorgensenAbides Год назад
Haha, thanks for sharing and showing your face! I’ve been working on the exact same problem. Love it
@ditzyninja
@ditzyninja Год назад
lol No problem! Are you working on it for a game?
@liblast
@liblast Год назад
Wow. I'd love to experiment with some more complex fragment shader for this terrain to make it look better. Thank you for releasing the code, though please specify a license - otherwise nobody knows what is and isn't ok to do with your code! MIT is the most liberal - people can grab the code and use it even in proprietary projects, GPL is more restrictive - it'll force whoever uses the code to also license theirs under the same or compatible license.
@kaileh57
@kaileh57 Год назад
Great work as always!
@ditzyninja
@ditzyninja Год назад
Thank you! :)
@Tankerbox
@Tankerbox 2 месяца назад
This litterally made my game possible! Without this tutorial I would be moving on lol.
@ditzyninja
@ditzyninja 2 месяца назад
That's awesome man. I'm really glad this helped out. I don't make tutorials anymore, but I've learned a lot since making this. Let me know if you run into any other hurdles. I might be able to give some tips.
@Tankerbox
@Tankerbox Месяц назад
@@ditzyninja For context, Im using this framework as collision for my raycast based driving system. The major hurdle I'm running into currently is whenever the collision plane regenerates the raycast slips through for a frame making the driving feel jittery and unpredictable at times. If you found a fix to that or had a similar problem a general tip would be great. If not that's fine Im still extremely grateful for the tutorial!
@Hodebrot
@Hodebrot 4 месяца назад
Dude, that‘s exactly what I‘ve been trying to achieve. 😂 I just managed to get the clipmesh working. Now I‘ve found your video. 😂
@ditzyninja
@ditzyninja 4 месяца назад
Glad it helped!
@greyly_
@greyly_ Год назад
-19C in the beginning of November. That's cold.
@linglang854
@linglang854 9 месяцев назад
Fantastic pacing and great content :) keep it up dude!
@psipivids
@psipivids 6 месяцев назад
For anyone wondering how to center the noise texture to (0,0), just add 0.5 to the texture_position and it'll center itself!
@robertdeckard2136
@robertdeckard2136 14 дней назад
subscribed because of your channel name
@synccyt_
@synccyt_ Месяц назад
Incredible
@EeVeE3D
@EeVeE3D Год назад
Great work
@ditzyninja
@ditzyninja Год назад
Thank you
@MagicMaskedMonkey
@MagicMaskedMonkey Год назад
important! adding the player to the export var, otherwise it will not work. and also get_settings is now get_setting_with_override. thats all i could find :)
@dgn_2282
@dgn_2282 7 месяцев назад
So helpful, great vid!
@user-ns1nn6nl3j
@user-ns1nn6nl3j Год назад
okay this is great! most videos on these shader-based terrains come off as too complicated. But I have this one implemented now and working, so thanks. One question, I am trying to give some other characters collision with the terrain as well, but when I create a new static body and give it a new collision map, they are updating each other. I'm pretty confused on why/how this is happening. Didn't know if you had tried this and seem something similar. Thanks! EDIT: I figured it out! The reason it didn't work was because it was changing the shape property the collisionmap scene, which then affected every collision map. I ended up giving the static body node its own controller which insantiates a collision shape at startup for whatever physics_target you choose.
@ditzyninja
@ditzyninja Год назад
Glad this helpful! and I'm glad you figured out the collision shape issue too
@lachlanburns4382
@lachlanburns4382 Год назад
Awesome tutorial man!
@ditzyninja
@ditzyninja Год назад
Thanks!
@michrebmann4509
@michrebmann4509 Год назад
Hey Ditzy! Cool tutorial (both parts), also the dynamic texturing one is cool!!!! have a question. have you figured out how to calculate the normals in the fragment shader? i found some tuts, but they dont work with your specific case (i think because of the world pos of the vertex) im a noob in shaders, so i would love you could help me!
@michrebmann4509
@michrebmann4509 Год назад
sorry i mean in the vertex shader....
@ditzyninja
@ditzyninja Год назад
Hey thank! I have worked out the normals. That was going to be my next video, but I put my YoutTube channel on the back burner for a little bit. (Work, life, etc. they may be short but they take days to make). I'll try to get it up soon!
@FriskDreemurr66669
@FriskDreemurr66669 28 дней назад
this line: var image:Image = load(ProjectSettings.get_setting("shader_globals/heightmap").value).get_image() gave me this error: Attempt to call function 'get_image' in base 'null instance' on a null instance. does get_setting work differently now?
@thegoblintown
@thegoblintown Год назад
This was a really cool video thanks a lot.
@ditzyninja
@ditzyninja Год назад
Noo problem. Glad you liked it!
@roywilkinson2078
@roywilkinson2078 Год назад
Great tutorial. Thank you. Can this be done in 3.5 or will I need 4.0?
@ditzyninja
@ditzyninja Год назад
Thanks! It can totally be done in Godot 3.5. The lack of global uniforms just makes things a little messier.
@roywilkinson2078
@roywilkinson2078 Год назад
@@ditzyninja Thanks
@GarmrNL
@GarmrNL 9 месяцев назад
This is an amazing tutorial, thanks! When you say a HeightMapShape3D (at 6:48) sometimes behaves strange, do you mean that it misaligns with the terrain mesh? I'm running into that now using Godot 4 🙂
@gamesnotdeveloped
@gamesnotdeveloped Год назад
I was planning to start programming a similar solution, but you have already done it and solved important problems. Have you thought about turning the project into an add-on / base framework for creating large worlds in Godot? Can you specify the license of the released code? It would be nice to fork it and try to turn it into an add-on, don't you think?
@kaihenthe
@kaihenthe Год назад
tutorials very good, i am now a 1.89K sub
@ditzyninja
@ditzyninja Год назад
Thanks for subscribing :)
@nahuelvazquez2241
@nahuelvazquez2241 7 месяцев назад
this is sebastian lague but with godot
@orthodoxcaveman5819
@orthodoxcaveman5819 Год назад
Great video, got stuck though at 7 30. Where does the Heightmap variable come from? Can't make it work on my side
@ditzyninja
@ditzyninja Год назад
Thanks! That comes from the Heightmap script created at 5:43. You then have to add that script under the Autoload tab in the Project settings which makes it accessible in any other script in your project. It's Godot's version of a singleton.
@orthodoxcaveman5819
@orthodoxcaveman5819 Год назад
@@ditzyninja Hell yeah, it worked. You're awesome man! Gonna try combining this with @lonegamedev 's grass shader and see how it goes.
@418im_a_teapot4
@418im_a_teapot4 Год назад
downside is, you can't use raycast to generate terrain objects unless you make the collision bigger
@ditzyninja
@ditzyninja Год назад
You can generate the object then use the x and z values of its position along with the heightmap to find the correct y value
@sergeyiu2301
@sergeyiu2301 10 месяцев назад
Great series, wanted to test complete project as demo for my game but it gives an error "Invalid get index 'global position'(on base: 'Nil'). What should i do start using the template?
@ditzyninja
@ditzyninja 10 месяцев назад
Thanks! Are you able to see where in the code that error is being thrown from?
@justvibin314
@justvibin314 9 месяцев назад
@ditzyninja I have the same issue, seems to be a problem with func _physics_process(_delta): global_position = player_character.global_position.round() * Vector3(1,0,1); I'm new to Godot but it seems like the player_character isnt being instantiated properly
@user-ns1nn6nl3j
@user-ns1nn6nl3j Год назад
So I am still working on this. I am now being bottlenecked by having too many moving items with these collision shapes at once, and I think it is because we are updating the collision shape on the CPU. I guess we could write it as a GDExtension in C++
@ditzyninja
@ditzyninja Год назад
I've played around using compute shaders for this. I plan on making a video after covering a few more topcs.
@rhaikh
@rhaikh Год назад
5:33 what do you plan to do for other collision objects far away? (like npcs?)
@rhaikh
@rhaikh Год назад
9:15 ok thanks. haha
@dbatdev
@dbatdev Год назад
I'll rematch this until it sinks in. you speak so fast, but thanks for sharing your work.
Далее
A new way to generate worlds (stitched WFC)
10:51
Просмотров 525 тыс.
ОБЗОР ПОДАРКОВ 🎁 | WICSUR #shorts
00:55
Algorithm behind huge Terrain in Godot
15:46
Просмотров 8 тыс.
Coding Terrain From Scratch
49:28
Просмотров 4,7 тыс.
The biggest lie in video games
15:18
Просмотров 1,8 млн
Using Terrain3D in Godot 4 - Part 2
22:54
Просмотров 22 тыс.
Godot Terrain Plugin CLIPMAP LOD - TerraBrush DevLog
5:14