Environment Art in Houdini: Setting Up a Peaceful Fishing Scene

Julien Rollin shared a breakdown of the Afternoon Fishing project with us, showing how the vegetation was scattered and detailing the nuances of environment art in Houdini.


Hi! I'm Julien Rollin, currently a student at Creative Seeds, a small school in France. I’m mostly self-taught and I joined this school to gain new skills and turn this hobby into a real job! I began exploring 3D art when I was in primary school as a pastime, alongside music production. I was mixing and making songs so I needed track covers, that’s when I discovered 3D!

Before starting this project, I mostly worked on personal and freelance projects, heavily focused on photogrammetry and the technical aspects of 3D. I shared some of my knowledge in this interview. This time, I wanted to dive into environments, specifically in Houdini. I already had some knowledge of the Arnold render, but the entire software was new to me. I must say I love the nodal workflow now!

The Afternoon Fishing Project

This project was done internally at Illogic Studios during my 3-month internship. I did it besides the tasks I needed to do, with the support and help of my CG Supervisor Gabriel Grapperon. The beginning of the project was gathering references and selecting which type of environment I wanted to do, the mood, complexity, etc.

I came across Unit Image's short film "The Little Duck", which inspired me to explore their mood. To create a unique concept art, I used Midjourney to mix different references, and I ended up with a bunch of ideas. I selected one to serve as my main layout and I relied on my imagination and the short film for the rest.

I used Houdini as my primary software to explore the nodal-based workflow as well as the environment workflow. I was entirely out of my comfort zone, so it was a real challenge for me. Moreover, I only had two months to finish the project, so I needed to organize myself efficiently. For that, I primarily used Discord to collect all the references, inspiration, and resources that could be useful to me. The forum feature is quite nice for that, you can create one for each project on your personal server and keep things organized and accessible from your phone and PC. If you subscribe to Nitro, you can upload unlimited files of a large size, which is quite handy.


Once I had my Midjourney concept, I began a simple blockout in Maya with the overall shapes of the terrain, using classic polygon modeling to get things started. I figured that I needed to learn about Houdini’s height fields, so I moved directly into the software to learn how to scatter, model terrains, shading, and populate a sample scene to train myself on a small area. It wasn’t easy at first, but gradually, by adding assets, I finished my sample scene. I took my main reference for the scatter using Mickael Ricotti’s ArtStation post-closeup breakdown.

Then, I was confident enough to start my main layout and move the work I did on the sample scene to it. However, it didn't go as planned! My scatter was laggy and I needed extra weeks of work to make my scatter system work properly in a medium-scale environment.

So, I used Adrien Lambert’s AL Advanced Scatter HDA, which was perfect for what I needed.


The biggest challenge for my scatter was to have multiple variations. So, I made 3 to 4 different versions of each plant. I mostly used Megascans plants as well as the free Maxtree vegetation pack (Vol. 60), and some Graswald weed/debris.

Megascans plants are designed for game engines with opacity maps, so I needed to convert them to full geometry, for that I used the FoliageCutout HDA made by my friend Yoann Leong to convert the low-poly geometry into high-poly.

Once I had all the vegetation I wanted, I started scattering them gradually, trying to break up the “procedural” look as much as possible by adding those different plants using different noise types or painting by hand using masks. The small details in the foreground (branches, leaves, etc.) were placed by hand as well.

For the main subject, I decided to replace my initial idea of a car with a chair and a fishing rod. I think it makes more sense. I modeled the chair by hand and it’s available for free on Sketchfab. The rod was created by Vladimir Kotov, it's an excellent model.

The other models are mostly from Sketchfab too, such as the ducks made by Al Deezel. By using such models, I saved a lot of time and was able to focus more on set dressing, lighting, etc., later on. Since my goal was to create my first environment, I tried to avoid modeling and texturing as much as possible.


As the project evolved, I realized that I was having problems with framing, focal length, and the balance of elements in the frame. Midjourney generally does a great job creating coherent compositions, but mine didn't. There was a lack of balance between the right and left sides of the image. The mistake I made was progressing on the main scatter, and overall terrain... while I didn’t have a fixed subject in mind! So, I was tweaking the lighting and composition with the trees, small details, etc. inefficiently. Try to avoid doing the same thing.


For the lighting part, I chose to use Arnold. It handles many polys quite well, and it has robust features built in.

Since I wanted some areas darker than others, I used some trees as light blockers for the foreground and midground. For the background, I used Adrien Lambert’s AL Tools, which includes a Cloud Gobo HDA to fake shadows on the trees. I also cheated a bit on the terrain, I wanted to give more depth than just a front forest. Adding some hills in the background worked quite well to emphasize depth. Haze, mountains, and other background elements have been made in compositing.

Some other elements like the water details were only made using shading (the small waves were created with a noise plugged into the normal channel) and a bit of texturing for the duckweeds using some photos. Here's a one-minute summary of my process:


Creating terrain details and lighting with subject highlights were among the many challenges I faced during this project, but the biggest two I think were creating a believable scatter and the sky.

Something I learned through this project is that I tended to distribute my plants correctly on my ground, but everything was too evenly scattered. It lacked the delightful 'happy accidents' that can occur in nature. It's something I had a hard time realizing because I hadn't collected enough real references close to the style of my scene.


Also, I tried many skies and it’s not easy at all to match your CG render with a sky found from a reference pack. So I ended up using my HDRI sky which worked quite well.

My advice for anyone looking to create their first environment is to start with something on a small to medium scale. Something not too large can benefit from a significant depth of field, which can help avoid extensive background work, and a medium-sized project is perfect for practice before tackling a larger and more complex one. If you're interested in creating environments in Houdini, I highly recommend Adrien Lambert's YouTube channel as well as the official Houdini channel.

It’s also very important to share your work-in-progress on platforms like Discord servers, forums, and Twitter. This project wouldn't have progressed this far without the invaluable help from my friends and the people on these servers!

Thank you for reading this interview. If you have any questions, you can DM me on Instagram or Discord (@syntaxcg). If you enjoyed this breakdown, you can check out the ArtStation project here.

Julien Rollin, 3D Generalist

Interview conducted by Theodore McKenzie

Join discussion

Comments 1

  • cc joao

    Great work Julien. I was wondering how that hda that converts the low-poly geometry(using opacity) into high-poly works. Could you elaborate on that? I am facing an issue where opacity maps really slow down renders. Thank you.


    cc joao

    ·a month ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more