Using Terrain3D in Godot 4 - Part 2

Поделиться
HTML-код
  • Опубликовано: 5 июн 2024
  • In part 2, I cover the more advanced features of Terrain3D including holes, navigation, texture painting and so much more. Terrain3D is our high performance, editable terrain system for Godot 4, written in C++.
    Contents
    00:00 - Introduction
    00:22 - Common Problems
    02:01 - Texturing
    03:05 - Autoshader
    05:45 - Blending Manual Painting & Autoshader
    07:43 - Material Settings
    08:27 - World Background
    08:57 - Texture Filtering
    09:24 - Auto shader settings
    09:51 - Dual scaling
    10:29 - Height Blending
    10:47 - Macro Variation
    12:10 - Debug Views
    15:25 - Holes
    16:35 - Occlusion Culling
    17:02 - Navigation
    18:00 - Fix Flickering
    18:44 - Cull margin
    19:03 - Collision
    19:32 - Procedural Generation
    20:08 - Object Placement
    21:18 - Mobile & Web Support
    21:53 - Contributing
    22:15 - Future Plans & Updates
    Watch part 1:
    • Using Terrain3D in God...
    Download the plugin:
    github.com/TokisanGames/Terra...
    Join my discord server to chat about Terrain3D or our game, Out of the Ashes:
    tokisan.com/discord
    See pics and details of Out of the Ashes here:
    tokisan.com/out-of-the-ashes/
    Follow me:
    Email List: tokisan.com
    Twitter: / tokisangames
    Facebook: / tokisangames
    #godotengine #godot #gamedev
  • ИгрыИгры

Комментарии • 116

  • @Chevifier
    @Chevifier 4 месяца назад +22

    So far the only drawback with Terrain3D is setting up the textures. I'm fine with it from a technical standpoint but for other its a whole process that they'll have to redo over and over again. Glad that there's the texture setup utility being worked on though.👏

  • @Gdquest
    @Gdquest 4 месяца назад +11

    You did an oustanding work not only on this whole toolkit, but also on this video! This is a really well-thought-out tool, and I can't wait to see what will come next for this project. :)

  • @yourmajesty9025
    @yourmajesty9025 4 месяца назад +28

    It would be absolutely amazing if you could add your own plant placement system in Terrain3d. Third-party systems are inefficient and inconvenient to use. ❤

    • @danyknight9107
      @danyknight9107 4 месяца назад +7

      Right now it will convert T3D in a complete Terrain on its own, it is great as right now, but scatterting vegetation is truly needed. Tokisan, thanks for this amazing gift

    • @prestonharrison2140
      @prestonharrison2140 4 месяца назад

      Agreed! I'm currently using Proton Scatter and while it's great, it feels like a misfit for what I'm trying to achieve.

  • @TrizZzle
    @TrizZzle 4 месяца назад +4

    These videos are really helpful! The only thing I was missing when switching from Unity to Godot was terrain. You can't imagine how happy you made me! Also I'm very excited on the future of Terrain3D. Thank you for your amazing work! 😊

  • @MeshVoid
    @MeshVoid 4 месяца назад +1

    That's is insane! Such a feature rich tool! Thank you for your efforts!

  • @thelordofman7539
    @thelordofman7539 4 месяца назад +5

    Thank you so much for this awesome tool and tutorial series + docs; all absolutely fantastic!

  • @joshuaherring5599
    @joshuaherring5599 4 месяца назад +1

    I just downloaded and used this, and I love it. I look forward to using it more, and these videos were awesome for picking it up easily. You should make a part 3 for optimizing things!

  • @Connor_Sherlock
    @Connor_Sherlock 4 месяца назад +1

    Terrain3D is the last piece of the puzzle in getting me to switch from unity to godot. The macrovariation and dual scaling add are going to add so much production value for basically zero time investment, love it. If you ever expand on the procedural workflow and add shadergraph-esque visual node based UI it be will everything I could every hope for in a terrain system. 10/10 great work keep it up.

    • @TokisanGames
      @TokisanGames  4 месяца назад +8

      Zero-time investment on your part. Countless hours for us.

  • @ranqemax
    @ranqemax 4 месяца назад +2

    Absolutely amazing plugin. This finally made map design in Godot a joy and really allows me to be creative without barriers!

    • @TokisanGames
      @TokisanGames  4 месяца назад +2

      Wait until you try the slope sculpting tool coming in 0.9.1.

  • @danyknight9107
    @danyknight9107 4 месяца назад

    Huge thanks for this, we are using it in our project actively, it is a real savior against chunks. Keep up the great work

  • @furkanatalar
    @furkanatalar 4 месяца назад +1

    Thank you for sharing such a quality plugin with everyone.

  • @wukerplank
    @wukerplank 2 месяца назад +1

    Such a good tool! I work on a small RTS prototype and integrating this was pretty straight forward.

  • @shanefoster5305
    @shanefoster5305 3 месяца назад

    I was about to give up on making large maps because it was too time-consuming. Thanks so much! This helps infinitely. Now to figure out how to auto-generate realistic maps with seeds so I can have various servers have new maps regularly!

  • @lukaspaver
    @lukaspaver 2 месяца назад +1

    I took me a bit to setup but this is amazing. Thank you for existing!

  • @the_jd6967
    @the_jd6967 4 месяца назад +4

    Thx for making such a good, fast plugin(by using c++), really adds to godot's modular and lightweight nature
    BTW 43th like

  • @philicious7806
    @philicious7806 Месяц назад +1

    Thank you so much for that tool. The terrain truly looks amazing, especially with the macro variations enabled!

  • @cosb7207
    @cosb7207 4 месяца назад +1

    Fantastic work, I love this community

  • @The.S
    @The.S 4 месяца назад

    Superb, very well done and explained

  • @TranquilMarmot
    @TranquilMarmot 2 месяца назад

    Truly amazing work!

  • @CudderMC
    @CudderMC 4 месяца назад

    insane work guys!

  • @isaacgentz3319
    @isaacgentz3319 4 месяца назад

    "...it's most likely because you haven't enabled the plugin".
    Yup!
    Thanks for such a wonderful tool - the power of OSS!

  • @maiqtheliar2611
    @maiqtheliar2611 4 месяца назад

    Finally!! Thank you for this mate

  • @CitizenCoder
    @CitizenCoder 4 месяца назад +1

    This looks amazing. Also im very interested in your game, please post more about it! Your last video on it was 2 years ago ❤

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      Thanks. Will do. The transition from Godot 3 to Godot 4 has taken more than a year as so many things like terrain and day/night cycle didn't exist, and engine devs made changes that forced us to redo work multiple times. This year we'll be producing more media as we're getting things back to looking good again.

  • @rostenross
    @rostenross 4 месяца назад

    Wow I Love your work. This is an AMAZING addons for godot and gamedeveloper.

  • @thomaseubank1503
    @thomaseubank1503 4 месяца назад +1

    15:57 My applause! Now I can make the game I wanted on Godot. I just need to lower the polygon count.

  • @VishnuViswanathan-sk2cc
    @VishnuViswanathan-sk2cc 22 дня назад

    Thank you bro it is a amazing plugin.

  • @rahmanlinux9602
    @rahmanlinux9602 4 месяца назад

    I'll give it a try thank you very much

  • @Chevifier
    @Chevifier 4 месяца назад

    WOOT!! Sharing!

  • @PCXyHOHSmF
    @PCXyHOHSmF 4 месяца назад

    i love this tool, thanks for the video 👋

  • @Even-Steven
    @Even-Steven 4 месяца назад

    Very cool!

  • @aviatedviewssound4798
    @aviatedviewssound4798 4 месяца назад +2

    Godot is moving faster than I tough.

  • @DodgerEcho
    @DodgerEcho 4 месяца назад

    Thank you

  • @adhdGameDev
    @adhdGameDev 4 месяца назад

    Legends

  • @axedaddy1
    @axedaddy1 4 месяца назад

    Love & appreciate all the work gone into this. One question, is it possible to create holes at runtime?

    • @TokisanGames
      @TokisanGames  4 месяца назад

      Yes using the API. The editor is a running game and does it. It's not for a beginner though. Zylann's Voxel Tools is designed for end user destructibility and tunnel creation.

    • @v44n7
      @v44n7 3 месяца назад

      @@TokisanGames thanks for the amazing tool, one question, how do you refill holes?

    • @TokisanGames
      @TokisanGames  3 месяца назад +1

      @@v44n7 There's an enable [holes] checkbox on the setting. Turn it off.

  • @saul8510
    @saul8510 4 месяца назад

    macro variation is my secret love (don't tell to anyone, i just love changing it, to what suits me.

  • @rogermonteiro3882
    @rogermonteiro3882 3 месяца назад

    The only problem i've found so far is to make cliffs/canyons. In general is a very good tool, ty.

    • @TokisanGames
      @TokisanGames  3 месяца назад +1

      Don't make them straight vertical. Give them a slight grade. Or cover the face with mesh rocks.

    • @rogermonteiro3882
      @rogermonteiro3882 3 месяца назад

      @@TokisanGames Another question. Is it possible to increase the maximum region? Rn is 16x16. I wish i could use something like 80x80

    • @TokisanGames
      @TokisanGames  3 месяца назад +1

      ​@@rogermonteiro3882 See issue #77

  • @kobeguy
    @kobeguy 17 дней назад

    Been loving Terrain3D! Do you know if you have plans for road/path support? Similar to EasyRoads3D in Unity

    • @TokisanGames
      @TokisanGames  17 дней назад +1

      No, there's already a road plugin for Godot. Won't take much work for it to snap to the ground if it's not already native. We already have a slope tool for sculpting flat, angled ground and paths.

    • @kobeguy
      @kobeguy 16 дней назад

      @@TokisanGames Gotcha thanks! I'll have to look into the snap to ground feature for making roads/paths as it would make it a lot easier.

  • @michaeljburt
    @michaeljburt 4 месяца назад

    Does the occluder also occlude multimesh objects? I think that's where the largest performance increase will come from (e.g. culling foliage behind a mountain). Reason I ask is that I've had issues with setting up occlusion culling on multimeshes in gd4

    • @TokisanGames
      @TokisanGames  4 месяца назад

      We just provide Godot with an occluder. The engine is responsible for how it works. All object instances in a multimesh show up in one draw call. So, there is no option to cull part of the multimesh. It's all or nothing. If that's what you want then look at your MMI's AABB, extra_cull_margin, visibility ranges, and ignore_occlusion_culling.

    • @michaeljburt
      @michaeljburt 4 месяца назад

      Gotcha, yeah that's what I thought. There's also a technique to reduce the visible instance count of the multimesh based on distance from the camera (but that might look bad for games with an aerial component)@@TokisanGames

  • @AreaTeamVlogs
    @AreaTeamVlogs 4 месяца назад

    Please make more videos about making Voxel things in Godot

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      I haven't kept up with Zylann's progress on Voxel Tools and am not using voxels in my projects currently. So, it will be a long while before I look at that again. I'd like to make more, shorter videos about other things though.

  • @firerunnew
    @firerunnew 4 месяца назад +1

    How high can the terrain be if we make the ocean Subnautica style?
    Could the landscape be as huge and endless as in MTerrain?

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      The current max is 16k x 16k with potential for more in the future, and height range is whatever fits in a 32-bit float. Around a few 10ks away from the camera and single floating point precision breaks down though, so for very large terrains you'll need to build Godot, the release templates, and Terrain3D with double precision.

  • @R1fleman
    @R1fleman 4 месяца назад +1

    im not understanding how to make the navigation im making a survival game and i want animals to use the terrain but then i need the whole world to have a nav when i try and paint the whole world (4 clunks) in the "nav paint" it does not load a nav but when i use less "nav paint" it generates a nav CAN YOU HELP ME

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      Come to discord for support. Using the navigation server is complex and you need to read all of our documentation on it, and much of Godot's documentation. Our docs specifically tell you to create multiple regions if the nav area gets too big. If you need the whole world navigable, you probably don't need a navigation mesh, or you just need to bake an area around the player, which our code generated demo does. The Godot docs will help you understand how best to use the nav system.

    • @R1fleman
      @R1fleman 4 месяца назад

      @@TokisanGames thanks i tried code generated demo and put it in my scene and it works thanks your terrain addon is the best one out there ❤

  • @warsin8641
    @warsin8641 4 месяца назад

    I love this terrain plugin but could you make the brush sizes larger I can only go to 200m but I want to lift massive ground up but you know

    • @TokisanGames
      @TokisanGames  4 месяца назад

      Use 0.9.1 and type in what you want. It will be sluggish though due to no gpu painting.

    • @warsin8641
      @warsin8641 4 месяца назад

      tysm love ya!

  • @DarinLawsonHosking
    @DarinLawsonHosking 3 месяца назад

    Quick question you say it does procedural generation can that be Voxel base terrain?

    • @TokisanGames
      @TokisanGames  3 месяца назад

      Use Zylann's voxel tools for a voxel terrain. This is height map only. Procedural generation means terrain created by code. We have a demo showing how to create a heightmap from a noise generator and loading that into the terrain via code at startup.

  • @oomegator
    @oomegator 4 месяца назад

    Is there a way to increase the texture resolution? As default it seems super low when using sensible measurements. Only "solution" Ive found is to sculpt the terrain at a massive scale and then scale the assets Ive made using real life measurements at to a huge scale aswell. Making a dirt road that is 2 meters wide with default values looks super blocky.

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      Texture resolutions are entirely up to whatever you put in. The demo has 1k textures. In Out of the Ashes, we're using 2k. Max is 16-32k depending on your card. Each texture slot has its own separate UV scale for your control. You don't want to scale up your game as you'll screw with physics bodies and animations. Keep everything at real units.
      If you want to increase the mesh resolution, v0.9.1-dev already has a vertex_spacing setting.

    • @oomegator
      @oomegator 4 месяца назад

      I see, the textures themselves look good (using 2k) but the way they blend together is super blocky at lower scales. Maybe the vertex_spacing setting will make it blend smoother? Any ETA for when v0.9.1 will be released to the masses?

    • @TokisanGames
      @TokisanGames  4 месяца назад

      @@oomegator You might have something wrong with your texture setup, like no height textures, or non-recommended painting technique, or replaced the noise texture. Blocky blending hasn't been an issue for many months. I showed how to do it in this video. We have over 20 textures in OOTA and have no issue with blending or texture scaling. Next version will come out within a week, but vertex scaling won't fix poor painting technique or messed up textures. Discord is better for support.

    • @oomegator
      @oomegator 4 месяца назад

      Ok! Thank you for taking time to answer! 🙂

  • @JohnLogostini
    @JohnLogostini 4 месяца назад

    So i am going to play with this and if possible get the World Creator team promoting this

  • @ervr4
    @ervr4 2 месяца назад

    is it possible for this to work with compatibility renderer? I am working on a platform that can't run on mobile or forward+ without stuttering and materials flickering in and out of existence.

  • @random6959
    @random6959 4 месяца назад

    Is there any plan to add this plugin as a basic tool in godot?

    • @TokisanGames
      @TokisanGames  4 месяца назад

      You mean integrate it with the core engine? The core devs don't want that.

  • @sanyi9667
    @sanyi9667 10 дней назад

    anyone knows how to use icterus's simple grass addon with this? I try but it simply wont draw any grass. I dont even know why this happens

    • @TokisanGames
      @TokisanGames  10 дней назад

      Enable debug collision. Our foliage instancer will be out in a few weeks.

  • @Siromakha
    @Siromakha 4 месяца назад

    Why there there is no way to scale terrain? I have 16x16 km terrain that has 8K heightmap, when importing it is 8km

    • @TokisanGames
      @TokisanGames  4 месяца назад

      No one has built it yet. See PR #296.

  • @samlewis2426
    @samlewis2426 4 месяца назад

    Yo, I'm actually having a bit of a problem with collisions, and found an answer in this video that didn't necessarily fix my issue. Is there any common problems with the collision, or am I just stupid?

    • @TokisanGames
      @TokisanGames  4 месяца назад

      Haven't had any problems, nor reports from others with collision. Come in to discord for specific help.

    • @samlewis2426
      @samlewis2426 4 месяца назад

      @@TokisanGames No worries, I actually figured it out myself, the regions of the terrain have to be identified with the tool, to gain collision, specifically with the "Add Regions" along the side toolbar when you're focused in on the terrain itself.

    • @TokisanGames
      @TokisanGames  4 месяца назад

      @@samlewis2426 Yes only sculpted regions are real terrain with collision. The world background noise is just an expensive visual gimmick.

  • @mirtir472
    @mirtir472 3 месяца назад

    how does terrain3d react with very large terrain, by that i mean, how does the "loading" react, like will it acctualy load the whole map in the ram right from the start ?
    but good job for real, this tool seem better then unreal and unity one. or at least when i tried them and it's 10000% better then the one i did for my opengl map editor hahahahah it's amazing what you guys did !

    • @TokisanGames
      @TokisanGames  3 месяца назад

      It loads all terrain data at start. There's no streaming in Godot or our plugin. There's a bug in Godot that prevents saving more than around 8k^2. But it could be imported at runtime up to 16k^2.

    • @mirtir472
      @mirtir472 3 месяца назад

      @@TokisanGames so if i want to uses that to make a massif terrain for airplane it's kinda a no? Would be around 50km by 50km

    • @TokisanGames
      @TokisanGames  3 месяца назад

      @@mirtir472 Current heightmap maximum size is 16km^2. You can scale the distance between vertices say up to 10x. But to run a 50km world you'll most likely need to build the engine and plugin with double precision.

    • @mirtir472
      @mirtir472 3 месяца назад

      @@TokisanGames make sens loading a 250k height map in the gpu would probably eat a large amount of vram. Is it possible to use multiple terrain node with our system?
      I will try to make it work! Thanks for your answer ! I will also keep you updated if i found good idea !

    • @TokisanGames
      @TokisanGames  3 месяца назад

      @@mirtir472 not simultaneously, at the moment. We use multiple terrains in different scenes.

  • @kfrz
    @kfrz 3 месяца назад

    Maybe I'm completely inept; but I am unable to figure out the GAEA->GODOT workflow for this

    • @TokisanGames
      @TokisanGames  3 месяца назад

      Every commercial tool has the ability to export heightmaps in format we can read directly or that can be manipulated in photoshop/gimp/krita. I searched and instantly found that Gaea can export PNG, Tiff, and EXR up to 16k. Use EXR as our import docs recommend.

    • @kfrz
      @kfrz 3 месяца назад

      Thank you, I have no issues with export or format; the issue is the Array object assigned to the panel is totally uneditable; the ONLY workaround I have so far is to import the height data but copy/paste the example 3dTextureSet from the demo project and even then I can only replace a texture, I still cannot add elements to the array. I'll read the code again and try to suss it out.
      @@TokisanGames

    • @TokisanGames
      @TokisanGames  3 месяца назад

      @@kfrz Come to discord for support. If you can't use the tool as I demonstrated in this video, then you have an installation problem with the plugin or Godot. You might have error messages on your console. You should not be editing the array in the resource, which is read only, but using the texture panel as demonstrated.

  • @vast634
    @vast634 3 месяца назад

    Why not an option to let the "auto shader" overwrite the manual shaded parts (overwrite blend data). Then turning auto shader off / marking it manual, and the user can alter the auto shaded parts.

    • @TokisanGames
      @TokisanGames  3 месяца назад

      Baking the autoshader is worth considering. The user can already alter the autoshaded parts with settings or manual painting.

  • @user-ip9dk8bt9i
    @user-ip9dk8bt9i 4 месяца назад

    Does it work on the mobile, knowing that my phone is Huawei Y9s, and is the graphics on the mobile the same as the one on the PS or different

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      No idea, it's experimental. I talked about mobile in this video. Watch that section, and read the page on mobile in the (latest version, not stable) docs for updates.

    • @user-ip9dk8bt9i
      @user-ip9dk8bt9i 4 месяца назад +1

      @@TokisanGames Okay and godot 3 is it suitable or not

    • @TokisanGames
      @TokisanGames  4 месяца назад +1

      @@user-ip9dk8bt9i Don't use Godot 3, use 4

    • @saul8510
      @saul8510 4 месяца назад

      As far as i am aware and tried with an oppo reno 4z 5g and my new reno 8 pro(which is way more modern , rhough i rathered a good pc xd) , it seem's to work well, though sculpting and some stuff are a bit clunky. ​@@TokisanGames

  • @JohnStonexDj
    @JohnStonexDj Месяц назад

    Can I paint a Street Texture with a Path 3d in Terrain 3d? ( so the street is 100% accurate)

    • @TokisanGames
      @TokisanGames  Месяц назад +1

      Sure, or use the Godot Road Generator, but neither have anything to do with Terrain3D. Enable our editor collision so whatever other utility can snap to the ground.

    • @JohnStonexDj
      @JohnStonexDj Месяц назад

      ​@@TokisanGames the "Snap funktion" only works with the CSG Polygon and not with the path 3D :(

    • @JohnStonexDj
      @JohnStonexDj Месяц назад

      @@TokisanGames wish I had the same raycast funktion like Beau Seymour in his Godots Roads Video by 5min

    • @TokisanGames
      @TokisanGames  Месяц назад +1

      @@JohnStonexDj If you want to use Path3D you of course need additional code. I assumed you knew it's just a barebones math class. It doesn't generate meshes. You'd need to generate your own mesh, and provide snapping functionality. Eg Waterways does this, uses Curve3D, generates meshes, snaps to ground colliders.
      If you want a no code option, use CSG or the plugin I mentioned.
      Regardless these are independent of Terrain3D. They'll just query the terrain via code, the same as any mesh, though we provide more options in our Integrating with Terrain3D documentation.

    • @JohnStonexDj
      @JohnStonexDj Месяц назад

      @@TokisanGames Thanks for answer so quickly.Yes I know that path 3d dont generate a mashes. I built a CSG around my path 3d so I have my street network template for painting it on the terrain. I`m a coding newbie but I saw Terrain 3D brings extra library for raycast stuff. Will read the documentation about it one day.
      The KI told me when I want to use the Terrain 3D library I have to write "Import Terrain3D" but Godot marks this red because Terrain3D and my path3d are not in the same folder ... I dont get it

  • @Devloper_Div
    @Devloper_Div 4 месяца назад

    Spital garder is more better for object placing

  • @matejjurkacek9043
    @matejjurkacek9043 3 месяца назад

    Hello there, I would like to enable Terain3D in Project Settings, but after I click to Enable this shows up
    '' Unable to load addon script from path: 'res://addons/terrain_3d/editor/editor.gd'. This might be due to a code error in that script.
    Disabling the addon at 'res://addons/terrain_3d/plugin.cfg' to prevent further errors. ''
    And I don't know how to Enable it.
    Any advices please?

    • @TokisanGames
      @TokisanGames  3 месяца назад +1

      Incorrect installation. Review part 1 again and the written instructions. There are likely more errors in your console that say it can't find the dll because it's not on your drive or in the right spot.