Log into your account to keep track of your progress. You can work through the lessons without logging in but your progress will be lost when you refresh the page.

This tutorial series covers everything that you will likely ever need, to understanding how to create terrains in Houdini. Starting from foundation layer of HF nodes and their functions, to using generated masks to create textures in COPs, to scattering geometry using said-masks, to applying and rendering them in a LOPnet with Karma. Listen to the soothing voice of Nikola Damjanov as he takes you along on his multi-chapter video guide and shows you how he creates terrains in Houdini!

How you choose to navigate this tutorial series depends entirely on you. You can choose to watch it all in one continuous go. Or you may choose to skip to the ice, fiery or dusty biome and see how that specific terrain was created.

What is this collection of videos going to be about? Yeah download the project file on that orange button above and crack open a Houdini session! This is basically a braindump of how I make environments, from start to end.
Fresh to terrain tools in Houdini? Here, I go over the main heightfield nodes that will be used to create our biomes. In the end, we are working with noises and masks, but we need to know how to control those.
We start with drawing some curves to define our mountain ranges and then gradually build up all the ridges and terrace details. We will also prepare the masks, which will be important when we go to the texturing step.
The beauty about heightfield masks is that you can use them for not only sculpting your terrain, but you can use same masks to shade it after, without any additional work. We go to into COPs context, pull in our masks and use composite nodes. All of them. We also add some extra cartography details.
Now we will dress our terrain with rocks. We will do the initial scatter with a cube. Yes, with the humble cube, you will be surprised how you can create some effective shapes, especially after some VDB processing!
Heightfields are limited to 2D axis, but I will show you a trick in which you can get overhang details! We do some post-processing and keep the details to the lava bits, but you can at least keep this trick in the bag and know that you can get interesting results from tuning the noise types and settings!
Now we will colour the lava rocks using the same methods of grabbing masks into COPs and compositing colours over each other. Be sure to have SideFX Labs installed, if you want to generate colours quickly (like from reference images) using Sample Screen Colours.
We're going to make some crunchy snow, push some terrace cliffside details out - and of couse we'll do the usual prep work of writing out masks, which we're going to plug into COPs to generate displacements, snow, and some hint of colour.
Nothing really new here, if you didn't already watch the Dusty/Fiery biome parts. If you haven't, then hey - we're going to use VOP COP2 Filter, Composite, Color, Levels, Noise and a few more nodes in the COPs context to generate our textures. We stay in Houdini and do it all here!
A sprinkle of a small forest of trees, which we're going to generate the base tree, using the Labs Tree tool. We'll prepare some simple UVs for it and then do the actual scattering across our icy terrain using... yes of course, you guessed it, masks.
So, the final part is to prep a piece of geometry with UVs, on which we will apply all the textures we generated for it. Since we are going to be using a displacement map, it'll just be a grid that we create. And yes, we will take this and the scattered rocks into LOPs and assemble our textures/materials, to render out some crunchy sharp pixels in Karma.
We will run through the setup which is the same as I used for the Dusty Biome. If you want to see step-by-step, then hop back to that video. We look at the material network for the rock and lava, and do some final colour adjustments to our texture maps. Just final tweaks to get it a bit tighter with contrasts and stuff like this.
We use just a grid with UVs, on which we will apply our displacement map to displace the geometry with. We grab also the trees and scatter them in LOPs, using the Copy to Points Instance LOP. Yep, we're still using the scattered points we generated previously in SOP context. Let's put it all together and do the final tweaks, while looking at Karma in the viewport.

CREATED BY

damjanmx
NIKOLA DAMJANOV

Game artist by day, procedural tinkerer by night.

More from Nikola Damjanov

COMMENTS

  • Evgeniy Kovalenkov 3 years, 3 months ago  | 

    Awesome!!!

    • zhangpengvfx 3 years, 3 months ago  | 

      niece ,have the projectfiles?

      • Shiv Dholakia 3 years, 2 months ago  | 

        project files please?

        • Caue Rodrigues 2 years, 8 months ago  | 

          Hello Nikola!
          Amazing tutorial! Congrats.
          I´m facing this issue after add textures to my terrain, looks like it´s applied just in a part based on height, IDK.

          http://prntscr.com/V1rcEp5hYWMl

          Thx!

          • jkazulyblanco 2 years, 7 months ago  | 

            Hello caue.archviz, I had a similar error and to fix it what I did was put a heightfield remap before the first heightfield erosion node, compute range and output min should be above zero

          • damjanmx 2 years, 8 months ago  | 

            Hey all, thanks!

            Project files are at the top of the page - top right, above the videos.

            • felixcantet 2 years, 7 months ago  | 

              Hello,

              Amazing tutorial, thank you very much !

              Just one issue on my side regarding COP's texture generation performance. Every update on the graph trigger the execution of the whole graph, taking up to 2 minutes to bake. It looks that you don't have this problem at all on your side. Any idea ? Houdini 19.5, on a 12 core CPU and a GTX 1080.

              Thank you very much

              • nbiddlecombe 2 years, 6 months ago  | 

                I'm just trying to follow the process of the dusty biome for the moment. There's no mention of how to bake the textures and/or which ones you baked.

                Which textures should I bake and how would I go about it?

                • JaimeArevalo 2 years, 5 months ago  | 

                  I´m missing something. At the moment of COPs and bringing the height layer into, ate the beggining of this video, the tutorial shows brown range colors, but mine are black and white. Any idea of what is happening?
                  BTW. Where the null node output for SOP import, should be?

                  Thanks in advance!

                  • Anoki 2 years, 4 months ago  | 

                    Hi, I am stuck at the beginning of this chapter because I can't find the OUT_DUSTY output. For a reason, I don't have what you have.
                    Any ideas?

                    • Anoki 2 years, 4 months ago  | 

                      Chapter 4

                    • patrickkrebs 1 year, 10 months ago  | 

                      Is there a video on how you wrote out your Heightmap?

                      • Storm Cellar 1 year, 4 months ago  | 

                        At the end of the 3rd Tutorial, I believe we need a Null Node after the final MASKS we finished with. Name it > OUT_dusty01 or whatever. Then link the COP Network to it in the 4th Tutorial.

                        • newkinostudio 1 year, 1 month ago  | 

                          you are correct, worked for me thank you

                        • newkinostudio 1 year, 1 month ago  | 

                          This is an excellent tutorial series. It encourages you to problem solve and allows you to practice your learning through repetition. I think for many users there was some confusion around the Out_Dusty but I do understand that this is an intermediate course.

                          Otherwise super grateful for this!

                          Please log in to leave a comment.