Amazing work and compelling walkthrough, been on godot for years and just figured out difference between tres and res and how easy it is to make dds texture files, thank you so much! You should definitely post about the new version release on the godot forums!
This is exceptional, Unreal should pay attention their landscape/terrain system in incredibly clunky in comparison, and there is no way to paint colour over terrain.
you clearly have not tried Unreals landscape system much then, I feel like this one still has a lot to add because after trying to switch I am missing tons of features :/
@@KEJGAMER57keyword here is clunky, i think the landscape system is much harder to work on, while this is more artists friendly. Then theres unity's terrain system which is stuck in the 1990s.
Great plugin. Very well done. In case anyone prefers, you can also use tools to automatically channel pack your textures. You can make a quick batch script to automate channel packing the textures. I'm using the portable version of ImageMagick. Here's the command to pack for reference: "magick normal.jpg rough.jpg \ -alpha off -compose CopyOpacity -composite result.png"
This is probably one of the best terrain systems out for Godot 4 right now. Cant wait to see how you implemented holes which Im sure is difficult and might have edge cases. The tool to compose the textures from within Godot would be perfect. At one point I even started looking into making a Gimp plugins to do it but its complicated and not worth the time investment, I never thought to just doing one in Godot which is much easier.😅
I don't understand how people think they are going to make a full game but can't even make such a simple tool themselves. It is very, very, very simple to pack texture channels in gdscript.
Impressive addon but also great work on the documentation and video tutorials, it's really professional! I'm especially happy that the latest version added vertex spacing for low poly worlds. Do you recommend low poly worlds use low resolution textures or decreased UV scale (or both)? Part 2 mentions using one or the other, but I have no idea what are the advantages or performance differences.
Probably both, but I'm not targeting low poly worlds so am not an authority on the subject. I'd say try them both out and let actual experience guide you.
This is really cool! Ive been following Zylann and the Voxel project ever since you made a video on it, but it is really great to see a robust terrain solution for Godot! Will there be generators by script, or perhaps a node based system like MapMagic or Zylann's terrain systems?
Sangat jelas dan rinci. Terima kasih telah memberikan tutorial untuk saya sebagai pemula yang baru mengenal GODOT 4. Saya tunggu video selanjutnya. Chanel ini akan menjadi tempat saya belajar menggunakan GODOT 4.
Great job! Btw is there a way to set the max fps while editing? I noticed you have over 1100fps at times which seems a bit unnecessary. Thanks for a great video!
Settable in Godot, or in your GPU driver, nothing to do with Terrain3D. Read comments on godot proposal 8607. You're not seeing actual FPS. Also look at a monitor like taskmanager to see how much GPU is actually utilized.
Regarding how to break up your terrain tiling, there are techniques like texture bombing and tri-planar projection that would make a great addition for a future update of Terrain3D. There are probably videos on youtube on the underlying information, math and what not, about how to make them from a programming standpoint.
Triplanar projection kills normals in Godot, and 3x more expensive. We're using macrovariation, shown in this video, but will be detailed in part 2. And may implement 3D projection.
Just looking at the channel packing section, it's kind of a slow process with gimp. Have you looked at a tutorial that does this with something like natron or fusion instead? It's way quicker and you instantly get a reusable "packing rig" for merging channels. I think fusion supports output to .dds as well.
What if we want an island surrounded by an infinite ocean? Does it make sense to use a 2nd clipmap for the ocean or do you think there's a better solution? I assume we'd have to write our own custom shader in order to use a 2ndTerrain3D node for this purpose.
Project status page has some water options. Can be just a plane. Two Terrain3Ds might be overkill, but you can try. I'm thinking about adding a paintable water layer that will add a second clipmap above the first. But that's a long way off.
For people having their terrain turn white when they try to add more than one texture: Your texture format, as far as I know, must be a BPTC_RGBA png. So your reimport settings for the texture you want to use should look like this: Mode: VRAM Compressed High Quality: On Normal Map: Disabled Mipmaps Generate: On These seem to be the only settings that matter for getting it to work.
The documentation explains what is needed in detail. BPTC is needed only for the demo because the existing two textures are BPTC. When you create your own project you can put in any textures. The requirement is that all subsequent textures match size and format of the first.
@@TokisanGames I might just be a little dumb, but I was troubleshooting this problem using the docs for like an hour and only found this solution from this comment - might be helpful to have a disclaimer at the top of the texture painting page?
@@saintxshenanigans None of that worked for me. After looking into the files that came with the demo, I saw that the original texture files weren't dds format at all. They were all png, so after the gimp step, I ran into trouble. It was fixed from making the project all white after I re-rendered the rock030_alb_ht file as a png instead of a dds. Hope this helps. Upvote me.
Hey there! Thanks for the amazing plugin! Can you please explain how to use the new channel packer tool? I couldn't find a description of how to use it in tbe docs
First understand what you need by reading the texture doc and this video. Albedo+Height, Normal+Rough. Then this tool should be self explanatory. Add albedo and height textures to be combined, and normal and rough. Come to discord for help.
It's not designed for runtime modification and isn't trivial. It can be done the same way our editor does it, but it requires adequate programming skill. If you aren't at the level of being able to look at the code, review the API, get the maps, modify them as images, put them back and force regeneration, then you're better served using Zylann's voxel terrain which is designed for realtime modification.
Using the exact same textures used in the video and the demo I noticed differences especially in the grass. The original grass for example is way more reflectiv. Comparing the pngs from the demo vs. those created by the automatic packer and even those packed by me manually using gimp there are noticable differences. Is there something you did with the textures when packing that is different in the video (or in the demo) to make them look better? I'm am fairly new to the world of textures not sure what are best practices, for example when the grass is somehow too shiny.
In Material/Debug Views, enable Texture Rough. It should be mostly white. The default roughness texture is middle grey, which is too glossy for ground cover. Best practice with textures is to experiment, learn, and think about the textures so you can develop experience and understanding. Dirt or ground cover should not be shiny unless it's wet. Adjust your textures however you like before packing them.
@@TokisanGames Thanks for the quick answer! I tried replicating the changes you made in gimp but without success. Now that I know for sure that you adjusted the textures, I am way more confident in playing around. I didn't expect at first that a material ready for download had to be adjusted to not be that shiny. Congrats on the new release btw! The detiling works great compared to the UV rotations, and the mesh instancing looks promising, especially with the future plans mentioned in the docs!
Cool tool. I'm interested in how this can be leveraged for procedural world generation. As it stands, it looks like making any world is going to be painfully manual. Would be fantastic if a script centric API was provided.... though I suppose I could just be less lazy and look at the code for this myself.
Hey man I wanted to ask where/how you got that live fps meter, I have been searching for something like this but couldnt find anything. Also this is a great video!
So, is there any way to 'auto-smooth' heightmap imports? I've tried several heightmaps of different types and they all wind up looking minecraft-blocky because of the topography map increments. If I run them over with the smoothing tool for a couple minutes, they look about like what I would expect a functional model to look like.
You're probably importing 8-bit maps, which look like garbage. Use 16-bit or 32-bit height maps via r16 or exr as stated in the import documentation. No png or jpg.
@@TokisanGames I have a workflow with TerreSculptor 2.0. My heightmap source is PNG only. I can smooth in TS2.0 and export in r16. That's on me for not having proper sources.
This looks amazing. Trying to figure it out. Both the demo map and a map I made using this will not render the mesh. Can walk/drive around so collision and everything is there, just not rendering. Really hoping I can figure it out because this looks more convenient (and probably more performant) than doing all my terrain stuff in Blender.
This is a fantastic tool, but is there a way to make your own brushes? I got this to work on a desert environment but there aren't any that would be appropriate for dunes! A good voronoi brush would go so hard.
Hi, thanks for this great video, but unfortunatly when I put my character on the terrain, it's like there is no collision and he goes under the terrain. The terrain collision is activated with Layer 1 and Mask 1 and 2. any idea (I'm quite new to Godot)?
is there a way to use the sculpting tools in-game for a map editor? I found the class Terrain3DEditor but there was no documentation for it. I tried the function void start_operation(position: Vector3) but that didn't seem to work.
The whole Godot editor is a Godot game. Our editor.gd is a script running 'in game" that you can look at. All of our classes are documented in the online docs. Built in documentation is not possible with GDExtension at the moment.
Idk why I just can’t get a height map to look normal it just looks like a bunch of sharp point cones everywhere idk what I’m doing wrong….I’ve read the docs so idk…..
You need to understand what format your input file is in. You might need to export it with different settings, or convert it to a supported format in photoshop/gimp/krita. Come to our discord for support.
How to fix error: Failed loading resource: res://addons/terrain_3d/terrain.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
I have never been more overwhelmed than trying to understand this texture packing process. Why aren't there libraries of texture packs ready to go? Also I really don't want to have to download GIMP. I haven't used GIMP since I learned Photoshop.
Frankly it's such a common gamedev practice across all engines that it behooves you to learn it. Every 3D model or asset pack you've bought or downloaded has come with channel packed textures. Photoshop doesn't handle alpha channels well, but there's a built-in tool for packing in the Terrain3D Tools menu. Texture packs come as individual files so you the gamedev can pack them how you want for the material you are creating. Our selection of maps and packing is different than might be used in another environment. It's not the texture creator's job to guess how you want your textures packed or pack them 5 different ways to cover every possibility. It's a reasonable expectation that the gamedev will spend 2 minutes and pack them as they need.
@@TokisanGames I'll just have to do it a few times to get used to it. I'm just glad there are tutorials like yours that put it in plain English for people like me. Thanks so much.
@@TokisanGames that's ok. we just switched to Hterrain the year old one that just works out the box. It's one of the most basic features anyone would first want to do with a Terrain, I was flabbergasted that Terrain3D did not natively support it
You're using a newer version than when the video was made. We have to make changes if you want improvements. Storage is still storage in 0.9.2. Texture list is now asset list to account for instanceable meshes and textures. All documented in release notes and the current API and documentation.
It tells you the exact problem. All textures must be the exact same format per the docs. Your albedo texture format of the third set (ID 2) doesn't match the first (ID 0). You can lookup formats 19 and 22 in the Godot Image docs. We can help more effectively on discord.
@@TokisanGames I have the same problem as him but i used exactly the same settings that you have shown here, tried with both png and dds it gives same result. When i try to use it in new project it works without problem.
@@vranigavrani Then you have the same cause for the problem. You've added a new texture that doesn't match the existing format. If you are adding textures to the demo, they are currently using BPTC, not DXT5. You can see that in the inspector, and the Import settings. Check HQ on the import panel. Read the docs and come to discord for help.
@@TokisanGames I misunderstood at the first i tho my texture is the problem but after some time i figured it must be Godot import settings. Thanks man, after some tweaking in import settings i got it to match existing textures and it worked. Great tool, going to try build something out of it and see how it goes.
Look at your console. It probably tells you that you're using inconsistent formats or sizes. Then read the texture docs that tell you the specs that must be identical.
Materials blend using the height texture if height blending is enabled (default) and you've put height textures into the files, and you're blending with the spray brush using a moderate value. If you're referring to blend based on Y-axis value, they don't. They blend based upon slope using the autoslope setting, which also has a height reduction to reduce by Y axis.
Anyway to turn the terrain into a mesh? I am trying to get simple grass textured to work with it or actually any scattering tool but they all need a mesh for it to work.
@@TokisanGames Thanks for replying so quickly but not too long after writing this comment I found a different plugin that had everything I needed for my project plus more.
For a low poly look, you can start with low res texture and or very low uv scale on the texture. Then nearest texture filtering in the material. Or custom shader with lighting per vertex or flat shading on the normals. Will take some experimentation with the shader. If you want a different color/texture per face you'll need to rewrite the custom shader.
@@MrJohnnyImba It already has a section on nearest filtering and low uv scale. However, for the other things I said you will have to experiment to find the look you like by programming the shader. I won't get into that.
When I first open the imported project, all of the world is missing. I just see a stone wall and some mountain. It's like something didn't import properly but I'm not sure how to check what.
Carefully check you did each exact step I showed and written in the docs. Read the console as I said and review the troubleshooting docs. If you're on macos you probably need to build the plugin yourself. Come in to discord for support.
Read both installation and troubleshooting in the docs, or come into discord for support. Can't help here. Make sure you're downloading the binary release zip file, not source code.
can you impliment a compatibility mode? (mobile and forward + dose work) so I can use this Plugin for a Android Game? Or is there a possibility to export it to android I dont know?
If you wanted an exported mesh, you should just create it in Blender. You can bake our mesh shape and export it with GLTF, but it's not a good mesh unless you remesh it in Blender.
@@TokisanGames hmm I see, is there any plans to be able to import masks of some kind? I use gaea for terrain generation and it would be cool to be able to import flow maps and things like that.
@@chimingito I have other higher priorities for my personal task list like this beta release. Other people have needed things and implemented them like navigation generation. It's a communal project, so if someone needs it bad enough, they'll implement it. Understanding and importing proprietary, 3rd party control maps is a very niche use case. Someone has to implement it separately for gaea, world machine, unity, unreal, etc.
@5:50 ...can you tell the difference between Rock 28 and Rock 30 as to why its better for terrain? No man I can't and it makes me happy that someone way smarter than me can't either LOL... I appreciate your hard work sir, and I think a lot of the community does as well.
You get exr or r16 heightmaps from other third party tools and import them here. Or you can draw your own terrain here and export them. Read the import/export document.
not gunna lie, tool looks amazing and cant wait to use it but im not seeing anything even similar to the files you have for Godot, i dont have an addons section and no where to add add ons in my project
@@TokisanGames made the addon folder but i get this error message when i go to Project Settings and go to plug in and i see it but when i click enable i get this "Unable to load addon script from path: 'res://addons/terrain3d-0.9.2-beta/addons/terrain_3d/editor.gd'. This might be due to a code error in that script. Disabling the addon at 'res://addons/terrain3d-0.9.2-beta/addons/terrain_3d/plugin.cfg' to prevent further errors." currently using 4.2.2 Stable. ill try downloading from the asset lab, I'm new to Godot so all of this is so new lol so idk if I'm doing something wrong or a compatibility issue, honestly wasn't expecting a response so thank you!
@@daveprazuch1441 Just confirmed it is definitely searchable in the assetlib in 4.2.2. The error message means you didn't follow the directions in the documentation. Probably downloaded the wrong file or didn't put it in the right directory. Carefully review the written instructions to get each exact step. Use the console executable as described in the docs and look carefully at the first error messages. Come in to our discord server. Can't provide support here.
Soooo my project doesn't have an "Add-On directory" which is... frustrating, what is more frustrating is that tools like this don't inherently exist inside of the program, without me having to dig around online for some plug-in that doesn't function, and has no further steps than "look for a folder that's buried and just copy the plug-in right into it, into a folder that... doesn't exist for you lol" Idk. Did I just miss a step or something? Would be nice if the engine had an actual tutorial, because it's built like it was made by toddlers, and every tutorial is kinda... ass.
Just make a folder called "addons" in your project folder and copy terrain_3d in there. Or just copy the whole addons folder from the download. The working demo is there for you to analyze and learn from to setup your own project. I can't help you with your complaints about Godot's design choices or other tutorials.
you should create an addon into your proyect settings -> plugins -> create new pugling and gotodo do all work, then delete the puglin created and copy paste terrain3d folter into de new folder called addons
why do we have to do soo much just to get a texture into this game engine? what are the other options? I'm coming from unreal engine 5 and this is total BS godot....
It wasn't Godot's choice, it was mine. In UE, you spend time wiring up texture channels to create your material. Here you spend that time directly packing the files. Every game engine uses channel packed textures, and every gamedev needs to learn how to do it, for far more than terrain. We've had a built in channel packer for months so you don't even need to use Gimp. If you can't be bothered to spend the 2 minutes and are going to be rude, use one of the other inferior terrain systems, write your own, or use UE5; it's a great engine.
All right, this feature is a huge turn off, but this did clear it up 9.5/10, a 10/10 or 11/10 solutions to pack a Python file to do this automatically in batch
Core devs often break the engine during development. 4.3 is not supported until it is stable. Development branches are only for advanced devs capable of self support. This is likely due to clayjohn inverting the depth texture.
Sometimes you need to enable the plugin after install.
Project Settings -> Plugins -> Terrain3D.
ok
This actually was the reason mine wasn't working right...guess I should've checked first lol
I haven't used plugins so far, so it might be a dumb question, but does this work with godot mono?
@@SystemUpdate310 Yes
@@TokisanGames Awesome! Then this is exactly what I need! Thank you for your work!
You guys are doing god's work... I don't know why Godot doesn't have the minimalist terrain tool yet.
It's crazy cuz I got headphones on and his voice has a slight echo to it like if God himself was talking
Amazing work and compelling walkthrough, been on godot for years and just figured out difference between tres and res and how easy it is to make dds texture files, thank you so much!
You should definitely post about the new version release on the godot forums!
This is such a well made video! Thank you so much. Eagerly awaiting Pt 2.
WOW, 9.2 Update is awsome!!! the painting ist 100% exact!! thank you so much guys!!
* ha ha make sure your Main Node3D is on x=0 y=0 z=0 or you have huge problems to draw Gras ha ha ha
I painted some trees with the "grass brush" how do I get collision with them? :D
this will become the default terrain system - really good job
This is an amazing and awesome effort and resultant work. Kudos to you
This is exceptional, Unreal should pay attention their landscape/terrain system in incredibly clunky in comparison, and there is no way to paint colour over terrain.
you clearly have not tried Unreals landscape system much then, I feel like this one still has a lot to add because after trying to switch I am missing tons of features :/
@@KEJGAMER57keyword here is clunky, i think the landscape system is much harder to work on, while this is more artists friendly. Then theres unity's terrain system which is stuck in the 1990s.
Thank you this is exactly what I was needing when I needed it.
This is such a well done Tutorial, one of the best I have ever seen
Amazing Tool! Looking forward for the second part.
Amazing work man!! Thanks for doing this and helping the open source community!
I just moved to Godot and was reading up on your project. Many thanks for your efforts.
I am impressed by your tutorial let alone the addon. Good stuff!
Very awesome! I've wanted something like this for Godot for quite a while!
Very well made video. Subscribed and waiting for part 2
Great plugin. Very well done.
In case anyone prefers, you can also use tools to automatically channel pack your textures.
You can make a quick batch script to automate channel packing the textures.
I'm using the portable version of ImageMagick. Here's the command to pack for reference:
"magick normal.jpg rough.jpg \
-alpha off -compose CopyOpacity -composite result.png"
Thanks. There's also a built-in tool in the Terrain3D Tools menu now.
Oh, I didn't know that. Thanks for the info.
This is soo good. Not comparing but in some cases its even better then Unity terrain. You guys are boss for making it available for everyone!
This is probably one of the best terrain systems out for Godot 4 right now. Cant wait to see how you implemented holes which Im sure is difficult and might have edge cases.
The tool to compose the textures from within Godot would be perfect. At one point I even started looking into making a Gimp plugins to do it but its complicated and not worth the time investment, I never thought to just doing one in Godot which is much easier.😅
I don't understand how people think they are going to make a full game but can't even make such a simple tool themselves. It is very, very, very simple to pack texture channels in gdscript.
Nice, I never knew how packing texture channels in Gimp, and also a good tip with ambientcg
This tool is seriously impressive
Cliffhanger before Christmas? When part 2? 😂
Impressive addon but also great work on the documentation and video tutorials, it's really professional! I'm especially happy that the latest version added vertex spacing for low poly worlds. Do you recommend low poly worlds use low resolution textures or decreased UV scale (or both)? Part 2 mentions using one or the other, but I have no idea what are the advantages or performance differences.
Probably both, but I'm not targeting low poly worlds so am not an authority on the subject. I'd say try them both out and let actual experience guide you.
Thanks for the video. I really needed the tutorial to download.
This is really cool! Ive been following Zylann and the Voxel project ever since you made a video on it, but it is really great to see a robust terrain solution for Godot!
Will there be generators by script, or perhaps a node based system like MapMagic or Zylann's terrain systems?
Generator yes. Nodes? idk
Sangat jelas dan rinci. Terima kasih telah memberikan tutorial untuk saya sebagai pemula yang baru mengenal GODOT 4. Saya tunggu video selanjutnya. Chanel ini akan menjadi tempat saya belajar menggunakan GODOT 4.
Great job! Btw is there a way to set the max fps while editing? I noticed you have over 1100fps at times which seems a bit unnecessary. Thanks for a great video!
Settable in Godot, or in your GPU driver, nothing to do with Terrain3D. Read comments on godot proposal 8607. You're not seeing actual FPS. Also look at a monitor like taskmanager to see how much GPU is actually utilized.
Regarding how to break up your terrain tiling, there are techniques like texture bombing and tri-planar projection that would make a great addition for a future update of Terrain3D. There are probably videos on youtube on the underlying information, math and what not, about how to make them from a programming standpoint.
Triplanar projection kills normals in Godot, and 3x more expensive. We're using macrovariation, shown in this video, but will be detailed in part 2. And may implement 3D projection.
Very well explained!
thanks tokisan, very cool :)
This thing is really Fn good. Thanks a million.
Awesome work ! Thank you.
Just looking at the channel packing section, it's kind of a slow process with gimp. Have you looked at a tutorial that does this with something like natron or fusion instead? It's way quicker and you instantly get a reusable "packing rig" for merging channels. I think fusion supports output to .dds as well.
Never heard of natron or fusion, but you're welcome to use any tool. Making them in gimp is really nbd. We have over 20 textures in OOTA.
@@TokisanGames they’re both nose based compositors, natron is open source and fusion you can get for free as part of davinci resolve :)
What if we want an island surrounded by an infinite ocean? Does it make sense to use a 2nd clipmap for the ocean or do you think there's a better solution? I assume we'd have to write our own custom shader in order to use a 2ndTerrain3D node for this purpose.
Project status page has some water options. Can be just a plane. Two Terrain3Ds might be overkill, but you can try. I'm thinking about adding a paintable water layer that will add a second clipmap above the first. But that's a long way off.
For people having their terrain turn white when they try to add more than one texture:
Your texture format, as far as I know, must be a BPTC_RGBA png.
So your reimport settings for the texture you want to use should look like this:
Mode: VRAM Compressed
High Quality: On
Normal Map: Disabled
Mipmaps Generate: On
These seem to be the only settings that matter for getting it to work.
The documentation explains what is needed in detail. BPTC is needed only for the demo because the existing two textures are BPTC. When you create your own project you can put in any textures. The requirement is that all subsequent textures match size and format of the first.
@@TokisanGamesokay cool
@@TokisanGames I might just be a little dumb, but I was troubleshooting this problem using the docs for like an hour and only found this solution from this comment - might be helpful to have a disclaimer at the top of the texture painting page?
@@saintxshenanigans None of that worked for me. After looking into the files that came with the demo, I saw that the original texture files weren't dds format at all. They were all png, so after the gimp step, I ran into trouble. It was fixed from making the project all white after I re-rendered the rock030_alb_ht file as a png instead of a dds. Hope this helps. Upvote me.
@@Xer0Tr0n Thank you
Hey there! Thanks for the amazing plugin!
Can you please explain how to use the new channel packer tool? I couldn't find a description of how to use it in tbe docs
First understand what you need by reading the texture doc and this video. Albedo+Height, Normal+Rough. Then this tool should be self explanatory. Add albedo and height textures to be combined, and normal and rough. Come to discord for help.
you guys are gods
excellent material, thx!
Hey, I know I'm late, but I really like your editor theme. Is there any way for me to easily get such a theme?
It's godot-minimal-theme by passivestar on github
Could you please mention how to edit the terrain on runtime including the collisions in some of your future videos? Otherwise amazing work! Thanks
It's not designed for runtime modification and isn't trivial. It can be done the same way our editor does it, but it requires adequate programming skill. If you aren't at the level of being able to look at the code, review the API, get the maps, modify them as images, put them back and force regeneration, then you're better served using Zylann's voxel terrain which is designed for realtime modification.
Using the exact same textures used in the video and the demo I noticed differences especially in the grass. The original grass for example is way more reflectiv. Comparing the pngs from the demo vs. those created by the automatic packer and even those packed by me manually using gimp there are noticable differences. Is there something you did with the textures when packing that is different in the video (or in the demo) to make them look better? I'm am fairly new to the world of textures not sure what are best practices, for example when the grass is somehow too shiny.
In Material/Debug Views, enable Texture Rough. It should be mostly white. The default roughness texture is middle grey, which is too glossy for ground cover.
Best practice with textures is to experiment, learn, and think about the textures so you can develop experience and understanding. Dirt or ground cover should not be shiny unless it's wet. Adjust your textures however you like before packing them.
@@TokisanGames Thanks for the quick answer! I tried replicating the changes you made in gimp but without success. Now that I know for sure that you adjusted the textures, I am way more confident in playing around. I didn't expect at first that a material ready for download had to be adjusted to not be that shiny.
Congrats on the new release btw! The detiling works great compared to the UV rotations, and the mesh instancing looks promising, especially with the future plans mentioned in the docs!
Part 2 coming soon? Really fascinating to see how this handles holes.
Yes
This is exactly what I have been looking for. Any way to donate to you guys?
You could wishlist and buy our game when it comes out in a long while. In the meantime, I appreciate following and sharing here, twitter, and discord.
16:23 Please keep uv rotation! Im playing with some cartoony textures that have a bit of repetition and its a godsend to add some slight variation
Our implementation of UV rotation was garbage. It's been replaced with proper detiling.
@@TokisanGames makes sense. Looks amazing when i tried it 😅
Cool tool. I'm interested in how this can be leveraged for procedural world generation. As it stands, it looks like making any world is going to be painfully manual. Would be fantastic if a script centric API was provided.... though I suppose I could just be less lazy and look at the code for this myself.
Indeed. There's a code generated demo, and a noise library built into the engine so you can procedurally generate a world right now.
Will the TextureSetup tool be a part of the Terrain3D plugin or a separate plugin?
Channel packer will be included
Hey man I wanted to ask where/how you got that live fps meter, I have been searching for something like this but couldnt find anything.
Also this is a great video!
Look at the demo code. It's there for you to deconstruct. Just a label the prints the engine's information.
So, is there any way to 'auto-smooth' heightmap imports? I've tried several heightmaps of different types and they all wind up looking minecraft-blocky because of the topography map increments. If I run them over with the smoothing tool for a couple minutes, they look about like what I would expect a functional model to look like.
You're probably importing 8-bit maps, which look like garbage. Use 16-bit or 32-bit height maps via r16 or exr as stated in the import documentation. No png or jpg.
@@TokisanGames I have a workflow with TerreSculptor 2.0. My heightmap source is PNG only. I can smooth in TS2.0 and export in r16. That's on me for not having proper sources.
2ish months later, was channel packer released and included yet?
It was merged in January.
This looks amazing. Trying to figure it out. Both the demo map and a map I made using this will not render the mesh. Can walk/drive around so collision and everything is there, just not rendering. Really hoping I can figure it out because this looks more convenient (and probably more performant) than doing all my terrain stuff in Blender.
Saw your discord message. Follow up there.
This is a fantastic tool, but is there a way to make your own brushes? I got this to work on a desert environment but there aren't any that would be appropriate for dunes! A good voronoi brush would go so hard.
Add an EXR to the brushes directory, visible in your OS file explorer.
Hi, thanks for this great video, but unfortunatly when I put my character on the terrain, it's like there is no collision and he goes under the terrain. The terrain collision is activated with Layer 1 and Mask 1 and 2. any idea (I'm quite new to Godot)?
Does it work in the demo? If so, compare your project and player setup and code with the demo. Come in to our discord for help.
I'd like to be able to grab whatever texture is at xy so I can make footstep sounds but damn I love holes!😍
Use the get_texture_id function in the API. It returns the base id, overlay id, and blend value as a vector 3 for you to interpret.
perfect plugin
this is a masterpiece
Ohhhhh yesssssss
Awesome!
is there a way to use the sculpting tools in-game for a map editor? I found the class Terrain3DEditor but there was no documentation for it. I tried the function void start_operation(position: Vector3) but that didn't seem to work.
The whole Godot editor is a Godot game. Our editor.gd is a script running 'in game" that you can look at. All of our classes are documented in the online docs. Built in documentation is not possible with GDExtension at the moment.
Idk why I just can’t get a height map to look normal it just looks like a bunch of sharp point cones everywhere idk what I’m doing wrong….I’ve read the docs so idk…..
You need to understand what format your input file is in. You might need to export it with different settings, or convert it to a supported format in photoshop/gimp/krita. Come to our discord for support.
How to fix error: Failed loading resource: res://addons/terrain_3d/terrain.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
Improper installation. Review installation instruction in docs. Read troubleshooting doc. Or download from asset library.
I have never been more overwhelmed than trying to understand this texture packing process. Why aren't there libraries of texture packs ready to go? Also I really don't want to have to download GIMP. I haven't used GIMP since I learned Photoshop.
Frankly it's such a common gamedev practice across all engines that it behooves you to learn it. Every 3D model or asset pack you've bought or downloaded has come with channel packed textures.
Photoshop doesn't handle alpha channels well, but there's a built-in tool for packing in the Terrain3D Tools menu. Texture packs come as individual files so you the gamedev can pack them how you want for the material you are creating. Our selection of maps and packing is different than might be used in another environment. It's not the texture creator's job to guess how you want your textures packed or pack them 5 different ways to cover every possibility. It's a reasonable expectation that the gamedev will spend 2 minutes and pack them as they need.
@@TokisanGames I'll just have to do it a few times to get used to it. I'm just glad there are tutorials like yours that put it in plain English for people like me. Thanks so much.
@@PastaMaster115 Use the built in tool in the menu, now that its available.
is there a collection of textures that are prepared in the proper format to be used with Terrain generator?
No, download your own. The documentation links to sites with hundreds of free options.
How do you work with smaller areas? Region size has a drop down but only one option =(
Nightly builds and the pending release support multiple region sizes.
@@TokisanGames that's ok. we just switched to Hterrain the year old one that just works out the box. It's one of the most basic features anyone would first want to do with a Terrain, I was flabbergasted that Terrain3D did not natively support it
@@greatyonder5853 We natively support changing region sizes in our development branch and the new release coming soon. HTerrain is good.
dude mine says assets when save storage and all that stuff and not texture list
You're using a newer version than when the video was made. We have to make changes if you want improvements. Storage is still storage in 0.9.2. Texture list is now asset list to account for instanceable meshes and textures. All documented in release notes and the current API and documentation.
Can you help me? When inserting the textures I get error messages: "Texture ID 2 albedo format: 19 doesn't match first texture: 22"
It tells you the exact problem. All textures must be the exact same format per the docs. Your albedo texture format of the third set (ID 2) doesn't match the first (ID 0). You can lookup formats 19 and 22 in the Godot Image docs. We can help more effectively on discord.
@@TokisanGames I have the same problem as him but i used exactly the same settings that you have shown here, tried with both png and dds it gives same result.
When i try to use it in new project it works without problem.
@@vranigavrani Then you have the same cause for the problem. You've added a new texture that doesn't match the existing format. If you are adding textures to the demo, they are currently using BPTC, not DXT5. You can see that in the inspector, and the Import settings. Check HQ on the import panel. Read the docs and come to discord for help.
@@TokisanGames
I misunderstood at the first i tho my texture is the problem but after some time i figured it must be Godot import settings. Thanks man, after some tweaking in import settings i got it to match existing textures and it worked.
Great tool, going to try build something out of it and see how it goes.
im having an issue that when i try to add a second texture to my texture list it all goes white.
Look at your console. It probably tells you that you're using inconsistent formats or sizes. Then read the texture docs that tell you the specs that must be identical.
From a fresh project, how do I get the materials to blend depending on height as per your demo?
Materials blend using the height texture if height blending is enabled (default) and you've put height textures into the files, and you're blending with the spray brush using a moderate value.
If you're referring to blend based on Y-axis value, they don't. They blend based upon slope using the autoslope setting, which also has a height reduction to reduce by Y axis.
how do you not show the gridded area that is not a region
Deselect Terrain3D, or turn off Perspective/View Gizmos, or Perspective/View Grid.
Anyway to turn the terrain into a mesh? I am trying to get simple grass textured to work with it or actually any scattering tool but they all need a mesh for it to work.
No, they need collision to work, which I talk about in part 2. Enable debug collision.
@@TokisanGames Thanks for replying so quickly but not too long after writing this comment I found a different plugin that had everything I needed for my project plus more.
@@katkazam5246I am curious, which plugin is it?
This is such a great piece of software! Is it possible to create low poly terrain with a color / texture per face? Any ideas how to approach that?
For a low poly look, you can start with low res texture and or very low uv scale on the texture. Then nearest texture filtering in the material. Or custom shader with lighting per vertex or flat shading on the normals. Will take some experimentation with the shader.
If you want a different color/texture per face you'll need to rewrite the custom shader.
@@TokisanGames Thanks! Maybe it’s too much to ask for but perhaps you could throw a minute about this in the part 2 vid or is it too specific?
@@MrJohnnyImba It already has a section on nearest filtering and low uv scale. However, for the other things I said you will have to experiment to find the look you like by programming the shader. I won't get into that.
When I first open the imported project, all of the world is missing. I just see a stone wall and some mountain. It's like something didn't import properly but I'm not sure how to check what.
Carefully check you did each exact step I showed and written in the docs. Read the console as I said and review the troubleshooting docs. If you're on macos you probably need to build the plugin yourself. Come in to discord for support.
it does not work for me the texture lists do not show up on my project no matter what i try
Did you enable the plugin? Read the written installation instructions.
@@TokisanGames ahhhh ok I'll try again tomorrow
i dont have texture list in my inspector ?
If you've enabled the plugin, the asset dock is probably at the bottom of your screen and can be moved to any sidebar.
I am getting errors while i am downloading and setup every version. Even i am tired every thing to enableing addon. But it doesn't work
Read both installation and troubleshooting in the docs, or come into discord for support. Can't help here. Make sure you're downloading the binary release zip file, not source code.
Why can't I change the terrain position?
Transforms are intentionally disabled. You can read about clipmap terrains in our System Architecture documentation
can you impliment a compatibility mode? (mobile and forward + dose work) so I can use this Plugin for a Android Game? Or is there a possibility to export it to android I dont know?
or maybe a possibility to export the mesh with all colors this would also work for me
Compatibility mode is already supported. Android also works, though still experimental. Read the Supported Platforms document.
If you wanted an exported mesh, you should just create it in Blender. You can bake our mesh shape and export it with GLTF, but it's not a good mesh unless you remesh it in Blender.
How would you use the Metalness map?
I wouldn't for terrain. It's a waste of vram. But you can look at tips in the documentation.
finally , btw how to show the CPU and GPU time at the right corner of the editor ?
In the top left of the viewport where it says 'Perspective' click on the more menu and enable 'View Frame Time'.
@@ijidau thanks !
do you support importing a splatmap to assign the materials on the terrain?
Not at the moment. Only heights or color (satellite). The system doesn't use splatmaps at all, so would need code for conversion.
@@TokisanGames hmm I see, is there any plans to be able to import masks of some kind? I use gaea for terrain generation and it would be cool to be able to import flow maps and things like that.
@@chimingito I have other higher priorities for my personal task list like this beta release. Other people have needed things and implemented them like navigation generation. It's a communal project, so if someone needs it bad enough, they'll implement it. Understanding and importing proprietary, 3rd party control maps is a very niche use case. Someone has to implement it separately for gaea, world machine, unity, unreal, etc.
How can I define the size of the map? I don't want it to be too big.
Set world background to none. Look at Tips in docs.
is there any way to make this work with compatibility renderer?
The documentation has a section for mobile/web. Opengles support in gd4 is lacking features. We can't support it until Godot builds out opengles.
@TokisanGames oh okay, thank you for your response! Also, sorry for asking on two videos 😂 I must have gotten confused
I'm using Godot 4.2 and the inspector won't accept any of my textures besides the Godot icon :(
Come to discord for help.
found any solution?
@5:50 ...can you tell the difference between Rock 28 and Rock 30 as to why its better for terrain?
No man I can't and it makes me happy that someone way smarter than me can't either LOL...
I appreciate your hard work sir, and I think a lot of the community does as well.
Hello, how can I get the exr and r16 files in the video
This is very important to me
You get exr or r16 heightmaps from other third party tools and import them here. Or you can draw your own terrain here and export them. Read the import/export document.
Can you give me the URL of a third-party tool? Thank you very much.@@TokisanGames
me like because u good videos
Is part 2 still being made?
Almost done. Tutorial videos take a long time to explain things well.
does LOD work with this Terrain3D system?
It's a clipmap terrain. LOD is built in. See the architecture in the docs.
Can you recommend a good Multiplayer Day/Night/Weather system?
We'll release a day/night system in a few months. Time is managed by a variable, which you can sync yourself.
@@TokisanGames Are you going to release each system you created for Oota? 🤔
@@TrizZzle No, we don't have the capacity to maintain and support them all for general use.
not gunna lie, tool looks amazing and cant wait to use it but im not seeing anything even similar to the files you have for Godot, i dont have an addons section and no where to add add ons in my project
Create the addons folder in your filesystem panel. Or download Terrain3D from the assetlib tab.
@@TokisanGames made the addon folder but i get this error message when i go to Project Settings and go to plug in and i see it but when i click enable i get this
"Unable to load addon script from path:
'res://addons/terrain3d-0.9.2-beta/addons/terrain_3d/editor.gd'. This might be due to a code error in that script.
Disabling the addon at 'res://addons/terrain3d-0.9.2-beta/addons/terrain_3d/plugin.cfg' to prevent further errors."
currently using 4.2.2 Stable.
ill try downloading from the asset lab, I'm new to Godot so all of this is so new lol so idk if I'm doing something wrong or a compatibility issue, honestly wasn't expecting a response so thank you!
@@TokisanGames i searched on the asset lab "Terrain3d" and not seeing it
@@daveprazuch1441 Just confirmed it is definitely searchable in the assetlib in 4.2.2.
The error message means you didn't follow the directions in the documentation. Probably downloaded the wrong file or didn't put it in the right directory. Carefully review the written instructions to get each exact step. Use the console executable as described in the docs and look carefully at the first error messages.
Come in to our discord server. Can't provide support here.
Does it work on mobile phone?
Mobile platforms are experimental and need work and testers.
Soooo my project doesn't have an "Add-On directory" which is... frustrating, what is more frustrating is that tools like this don't inherently exist inside of the program, without me having to dig around online for some plug-in that doesn't function, and has no further steps than "look for a folder that's buried and just copy the plug-in right into it, into a folder that... doesn't exist for you lol" Idk. Did I just miss a step or something? Would be nice if the engine had an actual tutorial, because it's built like it was made by toddlers, and every tutorial is kinda... ass.
Just make a folder called "addons" in your project folder and copy terrain_3d in there. Or just copy the whole addons folder from the download. The working demo is there for you to analyze and learn from to setup your own project.
I can't help you with your complaints about Godot's design choices or other tutorials.
you should create an addon into your proyect settings -> plugins -> create new pugling and gotodo do all work, then delete the puglin created and copy paste terrain3d folter into de new folder called
addons
That was a lot words for "I'm incompetent"
please dont remove uv rotation, its so useful for clearly tiled textures
The original several implementations were garbage. In 0.9.2 it finally detiles properly and has been renamed.
🍻
why do we have to do soo much just to get a texture into this game engine? what are the other options? I'm coming from unreal engine 5 and this is total BS godot....
It wasn't Godot's choice, it was mine. In UE, you spend time wiring up texture channels to create your material. Here you spend that time directly packing the files. Every game engine uses channel packed textures, and every gamedev needs to learn how to do it, for far more than terrain. We've had a built in channel packer for months so you don't even need to use Gimp. If you can't be bothered to spend the 2 minutes and are going to be rude, use one of the other inferior terrain systems, write your own, or use UE5; it's a great engine.
@@TokisanGames Im happily using heigh terrain with zero issues and drop in textures. lol sorry if i came off grumpy.
All right, this feature is a huge turn off, but this did clear it up 9.5/10, a 10/10 or 11/10 solutions to pack a Python file to do this automatically in batch
What feature? Channel packing textures? There's a tool built into the menu now.
don't work in godot 4.3 dev6
Core devs often break the engine during development. 4.3 is not supported until it is stable. Development branches are only for advanced devs capable of self support. This is likely due to clayjohn inverting the depth texture.
why ist still just pain in 2024
What?
Bro what is this out of the ashes
Out of the Ashes is an adventure game we are developing. Look at the channel for a development trailer from a few years ago.
When I try to add in Terrain3D to my own project it doesn't show the textures tab at the bottom where you can add in new textures.
Enable the plugin in project settings. Listed in the Installation instructions.
@@TokisanGames Yeah, I started a new project, and it is showing up now, but its not letting me paint any texture onto the white terrain.
@@SovereignVis Come in to the discord server for help. And look in your console for error messages.
Il y a marqué Asset a la place de Texture list
The new version is newer than the video.