Building large scale environment for games can consist of several key elements including the base terrain, scattered landscape features, foliage and man-made props. In this lesson, learn how to set up all of these elements using procedural techniques in Houdini. Starting with terrain, you will create a layered desert landscape tool that can be opened up in UE4 using the Houdini Engine version 2 plugin. You will then use the scatter and align and mask by feature tools to create a scattering and instancing workflow. In the end, you will use PDG to create multiple terrain tiles that are populated automatically. You will also learn how to integrate your Houdini assets with the World Composition tools in UE4.

These project files contain a few Quixel Megascan assets made available courtesy of Epic Games. By downloading these assets, you are agreeing to the terms of the UE4 EULA.  These assets are intended for learning purposes only. To use Quixel Assets in your own projects, go the the Quixel website for more information such as the recent announcement that the Megascans library is completely free for use with Unreal Engine.

NOTE: This lesson uses the UE4 V2 plug-in which is now in beta. When you download and install Houdini 18.5 and choose to include the UE4 plug-ins, the old and the new plug-ins go into a directory under Houdini and you can then move it manually to the UE_4.25\Plug-ins\Runtime directory.

These lessons use the SideFX Labs tools. Make sure the latest release (non production build) is installed when doing this lesson.


Take a quick tour of the completed environment to get a sense of where this lesson is headed. Learn how the different elements work together and how you can bring this procedural approach to your own gamedev projects.

Length: 04:36


Learn how to use the height field based terrain tools in Houdini to create a desert landscape. You will learn how to add many layers and use masks to tweak the results to get the desired look. You will learn how to prepare this to be used in UE4 as a digital asset.

Length: 23:37


Now that the landscape has been setup, learn how to wrap it up into a digital asset and load the asset into UE4 using version 2 of the Houdini Engine plug-in. Learn how to promote parameters to the top level to allow level designers the ability to make creative decisions in the UE4 game editor.

Length: 24:27


Now that you have a landscape to work with, use the scatter and align and mask by feature tools to create a scattering and instancing workflow. This will be used to place terraced rock formations from Quixel on the slopes and procedurally generated rocks in the surrounding areas. 

Length: 21:54


A key element of this desert scene is a collection of sci-fi portals which act as hero props within the environment. You will learn how to scatter them around then you will make sure each of these elements avoids the edges and integrates well with the terrain. 

Length: 12:55


Now that you have points representing the various elements you need to populate the environment, you will set up instances for use in UE4. This means setting up another digital asset and then promoting key parameters to the top level. You will also include specific references to assets in your UE4 project.

Length: 20:22


The Procedural Dependency Graph [PDG] tools in Houdini let you automate tasks and distribute them to the cores on your computer or to a larger compute farm. This lesson shows how to set up a PDG network that can be brought into UE4 and processed in the game editor to generate multiple game tiles.

Length: 28:15


The world composition tools in UE4 are designed to help you manage larger open world setups. In this lesson, you will take the tiles, generated by PDG, and use them with these composition tools. This results in a large world map that loads efficiently during gameplay.

Length: 12:38



Simon is a tech Artist that loves building procedural tools and assets. By adding more and more procedural approaches to his workflow, he is able to build 3D models with speed and flexibility. During his studies at Digital Arts and Entertainment, he taught himself how to work with Houdini. After his studies, he started working on Ary and the Secret of Seasons at eXiin. Currently he is a Houdini freelancer and focuses on creating procedural content.

More from Simon Verstraete


  • Burly 3 weeks ago  | 

    These series are excellent... you guys are on fire!

  • ElleryIce 2 weeks, 6 days ago  | 

    ThankYou !!! This is a very useful Tutorial

  • kuimig 2 weeks, 6 days ago  | 

    thx simon~

  • Tom Freitag 2 weeks, 6 days ago  | 

    great one!

  • sixwell 2 weeks, 6 days ago  | 

    awesome work

  • jgonbaz 2 weeks, 6 days ago  | 

    Muy Interesante. Es excelente...

  • zhenglu 2 weeks, 6 days ago  | 

    I tried to make with the provided project, but the actor was not generated in subLevel.
    help! please! i lost in 4 days

  • zhenglu 2 weeks, 6 days ago  | 

    Actor only generated in mainLevel , need transform it in unreal?

    • Siver 2 weeks, 6 days ago  | 

      Where do you have issues? Is it with the baking of world composition?

      • zhenglu 2 weeks, 6 days ago  | 

        i want to mix heightfield tiles and instancer to sub_level, like this Wiki used attribute("unreal_level_path", "tile", “unreal_split_attr”);'s-new-%3F

        but i am fail.

        after press bake_to_actor , is also exist in mainLevel.
        i want to know your UE_Project_Level(Desert_PDG_scene_01) how to generated.

        Thank you very much for your reply.

        • Qingfeng Ronaldo 2 weeks, 6 days ago  | 

          I also encountered the same problem and need help.

        • Siver 2 weeks, 5 days ago  | 

          This is currently an issue that can happen and the developers are looking into it, thanks for letting us know.

  • valdomat 2 weeks, 5 days ago  | 

    Hi Simon! Thank you for the tutorial!

    What is it that you've done in Unreal with the instances after they've been scattered? They all live in their sub levels like you'd expect, but I can't see what actor they're a part of. They seem to be part of 3 separate "Procedural Foliage Spawners", but how does that connect to the references setup in Houdini? Did you manually put them in to the spawner after they'd been scattered?

    • valdomat 2 weeks, 5 days ago  | 

      Sorry, I just realized I jumped the gun. The static meshes I'm talking about are all placed with the volumes. So essentially all the Houdini-scattered meshes are all just instances.

      • Siver 2 weeks, 5 days ago  | 

        To place foliage in the scene you can choose multiple ways of doing that. In the video I use the scatter nodes and create instances around the cliffs.
        What you can also do is using the Unreal Procedural Foliage Spawners, so these are volumes were in the models will be scattered.
        You can place them by hand or you can instance them as well with point clouds, use an attribute unreal_instance and set the path to the foliageSpawner ( like this ProceduralFoliageSpawner'/Game/Desert_project/Foliage_spawners/Desert_foliage.Desert_foliage' ) .
        One down side is that at the moment you still need to press the button "Resimulate" manually. Setting scale attribute will make the volume larger.
        Also Unreal Procedural foliage tools are an experimental feature.

        • valdomat 2 weeks, 4 days ago  | 

          Got it.

          One, hopefully, last question :) I have an issue with getting my scattered instanced meshes to the sublevels. I baked with your example files, and there too they get baked to the persistent main level. Did you move your scattered object by hand? It's important to know since I'm building a tool that's meant to be built on a build server, so no hand placement can be involved in this process.

          • Siver 2 weeks, 4 days ago  | 

            It is possible when baking that instances and geometry is added to the sublevels, this is done by default. At the moment there is an issue with this and it will not always add instances and geo to the sublevels. (developers are looking into it)
            Something that can help a bit it in the Labs World Composition node set the wrangle "Add_instance_split_attribute1" to run over points, this can help.

    • zhenglu 2 weeks, 5 days ago  | 

      hi!would you successful to bake foliage to subLevel ? i faild and can't find where wrong with me.

      Refer to wiki set attributes ("unreal_level_path", "tile", “unreal_split_attr”,“unreal_foliage”)'s-new-%3F

      Thank you for your reply.

  • ChrisGG 2 weeks ago  | 

    Is it recommended to use Height Blending vs Weight Blending if working with Houdini to Unreal?

Please log in to leave a comment.