How to Create Cozy Countryside House in 3D
Gokhan Canıtez shared the workflow behind the Italian Countryside House project, showing the Cactus Generator created in Houdini and the process of making tileable textures in Substance 3D Painter.
Introduction
Hello everyone! I’m Gökhan Canıtez, a 3D artist with a deep love for games, movies, and all things interactive. My passion for visual storytelling goes back to childhood, when I first discovered the magic of Nintendo NES games like Super Mario Bros. 3, Snake Rattle 'n' Roll, and Soccer. Those imaginative, colorful worlds and bosses left a lasting impression on me and sparked my fascination with platformers and stylized experiences.
As I got older, PC gaming opened up a whole new universe. Unreal Tournament, Quake, Age of Empires, and countless others. We used to connect our PCs with LAN cables across rooms (and even across apartments!) just to play together, which really built my appreciation for shared interactive experiences and gameplay design.
While studying philosophy at university, I became increasingly drawn to photography and cinema. I spent most of my time in the school’s film club, watching and discussing movies, attending film analysis classes, and even experimenting with short films and editing using After Effects and Premiere Pro. I also dabbled in animation with Flash and Photoshop, trying out hand-drawn sequences just for fun. All of this gradually pulled me toward the world of CG.
After graduating, I stumbled upon a Reddit post about camera tracking. It was a simple street scene, nothing too flashy, but the way CG elements were integrated blew my mind. That moment made me ask myself, “Could I really do something like this?” The lighting, shadows, animation, and VFX were so believable that I immediately dove into the comments and started researching how it was made. That post became the turning point. I began teaching myself 3D art from scratch.
Later, I formalized my learning with courses at Anima Okul and expanded my skillset across the full CG pipeline. For nearly four years, I worked as a procedural modeling artist at Capoom, where I had the chance to dive deep into Houdini, a tool I had admired from the very beginning. After Capoom scaled down, I worked freelance at Otomat Film, where I handled photogrammetry-based underwater terrain projects and produced 360° immersive renders.
Since then, I’ve focused on shaping my portfolio and learning Unreal Engine to bring more of my ideas to life in real-time environments. This project marks a milestone in that journey.
Italian Countryside House
I’d been thinking of creating a calm, still environment with a house and garden, inspired by places like Tuscany and other Mediterranean villages. The idea was to build a timeless, painterly space with a semi-realistic look.
At the start of every project, I dedicate time to gathering references to better understand the subject and establish a clear creative direction. I don’t aim for a huge reference library upfront, but instead, I start with a core concept and expand gradually as the project evolves. For this project, I used PureRef to build a reference board, beginning with one key image that captured the overall mood and atmosphere I wanted. From there, I organized supporting references into categories like vegetation, architecture, materials, and lighting. This approach kept me focused on a consistent visual language while giving me room to explore and refine the details throughout production.
The main inspiration came from the movie Céline and Julie Go Boating, along with games like The Vanishing of Ethan Carter, What Remains of Edith Finch, and Life is Strange: True Colors. These references shaped my goal: to create a house and garden that felt like a memory.
It was also my first Unreal Engine project, so I wanted to test Houdini Engine workflows between Houdini and UE5 by creating some tools like cactus and ivy generators while building the scene.
Modeling & Set Dressing
My modeling workflow was fairly straightforward. While I’m also comfortable with Maya, I decided to create all the modular house pieces in Houdini for this project, mainly because I was planning to develop some tools like a cactus and ivy generator, so keeping everything in one place made the most sense.
I started with the house. Based on the texturing plans (specifically using tileable stone wall textures), I calculated the dimensions for each modular piece, such as width and height. Initially, I considered going for a fully modular and procedural setup where things like wall height could be changed via parameters, and UV shells would automatically adjust cut at the right points, repositioned precisely in UV space, and seamlessly tiled. It’s a powerful approach and an exciting technical challenge, but in the end, I chose not to implement it this time. Since I was also learning Unreal Engine and this was my first full environment project, I didn’t want to expand the scope too much.
I found a solid reference and committed to staying close to it. I modeled the building according to the planned dimensions and kept the polycount very low. One thing I noticed was that a very low vertex count made vertex painting a bit tricky – there just weren’t enough vertices to paint smoothly in some areas, so that’s something I’ll keep in mind for future projects.
I created standard modular components: plain walls, walls with windows or doors, and corner pieces. The width varied only for the corners; otherwise, everything followed the same size logic to keep the structure clean and consistent. Building the house exactly as shown in the reference image, I added wooden shutters and other small details to bring it to life. I also adjusted the pivot points of the shutters so they could rotate, allowing for a subtle wind animation later on.
For the roof, I followed a more procedural approach inspired by Jeronimo Maggi’s tutorial. It worked really well and complemented the modular house setup. Even though I only added one more house in the background (mostly visible from its corner), the combination of procedural roof and modular walls would allow easy variation if needed. However, populating the entire scene with different buildings was never the goal, this project was about learning modularity and environmental storytelling through a single, focused structure.
Once the house was done, I moved into Unreal and created a simple blockout using only the building. I sculpted the terrain directly with Unreal’s landscape tools, matching the shape and flow of the real-world reference. I initially considered generating the landscape in Gaea or Houdini using heightfields, but since the terrain was fairly simple, sticking with Unreal’s built-in tools was the most efficient choice.
Finally, I used Nanite for all of my assets to ensure performance and maintain visual quality throughout the scene.
Vegetation
My primary goal with vegetation was to create a dynamic, living garden space around the house. From the beginning of the project, I had planned to create the house, a Cactus Generator HDA, and possibly an Ivy Generator myself. However, to manage time effectively, I decided to rely on ready-made assets for the rest of the environment and foliage, primarily using content from Fab and the Quixel Library.
All the foliage assets in the scene were set up with World Position Offset and wind effects enabled to ensure a smooth, natural-looking wind simulation.
For the base vegetation, I used the City Park pack for grass and trees. Later, I added flowers after seeing a beautiful flower setup in Framestore’s Gucci Flora breakdown video. I recognized the pack they used, found it on Fab, and immediately incorporated it into my project.
The process of placing vegetation involved a lot of back and forth. I iterated on layout and density while simultaneously learning how to use Unreal’s Foliage Tools. Luckily, the workflow was quite intuitive, similar to the terrain sculpting tools. The first pass involved placing grass to check the general look and feel. Once I was happy with that, I moved on to adding trees, adjusting their placement and rotation to create a natural rhythm in the composition.
For the second grass pass, I wanted more variation and a less “groomed” look, especially in the area behind the house. To achieve this, I decided to dive into Procedural Content Generation (PCG). I followed a tutorial by Pwnisher as a starting point, and then continued researching to troubleshoot and expand on what I needed. PCG helped me add more variation to the grass distribution, giving the back garden a more wild and untouched feel compared to the front.
I also used a separate PCG graph to assist with landscape detailing and distribution logic. Throughout the process, I kept refining the terrain manually as well, sculpting, adjusting, and reshaping it as the vegetation layout evolved.
In addition to the standard trees and grasses, I added noise and scale variation, as well as mixed different tree types to simulate a forest-like transition in the background. PCG is proving to be a powerful tool with lots of creative potential, and I’m excited to continue exploring its possibilities in future projects.
Cactus Generator Tool HDA
While working on the environment, I also started developing a Cactus Generator HDA. The reference house I was working with had two cactuses: one small cactus near the side wall and a larger, more iconic one standing in front. They added a charming, local character to the scene, and I thought it would be a great opportunity to build a tool around that.
I’ve always enjoyed the blend of technical and artistic thinking, so I planned to build both a Cactus and Ivy Generator using the Space Colonization algorithm, which is one of my favorite procedural growth methods. However, due to time constraints, I decided to focus only on the cactus for this project.
The core system is a seed-and-food point setup, where food points guide the cactus growth in an organic, controllable way. I exposed several parameters to art-direct the result like branching density, thickness, height, random noise, and curvature so the final cactus can vary greatly in shape while staying consistent in style.
I created the HDA with two inputs for flexibility, and then brought it into Unreal Engine via Houdini Engine. I placed both cactuses in the scene, one small, tucked into the side of the house, and one large, acting as a visual focal point near the entrance.
At this point, it's worth noting something for anyone attempting a similar setup: Unreal Engine 5.5 does not currently support Houdini Engine. There are some workarounds, but I found them unreliable or difficult to configure. So instead, I made a backup and opened my project in UE 5.4, where the Houdini Engine works properly. This allowed me to test the full HDA workflow and showcase my generator inside Unreal.
Houdini Engine takes care of scale and orientation, so there's no need to manually adjust the assets. Once the cactus is shaped the way I want using the exposed parameters, I bake the mesh directly inside Unreal, then start again with new parameters if needed.
One thing to be careful about changing parameters after placing your asset can reset its material assignments. So it’s important to set up your material pathing and naming properly inside Houdini. I’ll include a breakdown of my material naming conventions and folder structures (such as using the /Game path inside the Content Browser) to help others avoid confusion.
s@unreal_material = "Material'/Game/MM_Cactus.MM_Cactus'";
s@unreal_material = "Material'/Game/Trunk.Trunk'";
Texturing & Trim Sheets
For the house assets, I created two material setups, one with tessellation for higher detail and another without it for better performance. Since I often use Substance 3D Painter in my projects and am currently learning Substance 3D Designer as well as Houdini’s COPs, I chose to work with tileable textures for this scene. That decision was part of the plan from the beginning: while I love the process of creating custom materials, this project was about delivering a polished result within a self-imposed time limit.
All of the UVs for my custom assets were unwrapped in Houdini. As I was working with modular components, I also saw this as a great opportunity to dive into trim sheet and atlas-based texturing workflows. I started by planning my trim sheet layout in Photoshop, allocating areas for elements like the outer walls, interior plaster, wooden window heads, shutters, marble trims, and other façade details. Once I had my layout, I modeled a flat plane and imported it into Substance 3D Painter to mask and paint each material region directly. I then exported the texture set, using it as a reference for UV placement.
In Houdini, I tested the textures on the plane using assigned materials, then began arranging UVs of the actual assets to align precisely with the trim sheet layout I had defined. This step was done manually, but while working through it, I started thinking about developing a custom tool for precise UV shell placement within a UDIM space, something I’d like to prototype in the future.
I assigned materials per asset (walls, shutters, glass, etc.) and brought them into Unreal Engine as two master material sets. Within Unreal, I created material instances with adjustable parameters like brightness, contrast, and saturation. I also set up a vertex painting material for the landscape to blend between different ground textures.
To break up the uniformity of the walls, I used decals and vertex painting, adding touches like moss buildup in shaded or damp areas, inspired by my reference images. These additions helped to ground the environment in reality and gave it a more weathered, lived-in look.
One thing I missed during this process was using RGB masking to introduce more material variation within a single shader. It’s something I now understand better and plan to integrate into future projects.
Final Scene
Once the main elements, such as the house and walkway, were placed, I began refining the terrain and layout based on the composition from my primary camera angle. I spent considerable time adjusting the position of environmental elements, constantly tweaking the layout to achieve a sense of balance and realism.
Due to hardware limitations, I worked in Unlit mode for much of the project, which helped with performance. However, when it came time to finalize the scene, I switched to Lit mode to fine-tune how shadows fell across the house and landscape, especially to match the soft, warm lighting in my references.
I added small props based on what the scene needed to feel inhabited: a candle holder by the floor-to-ceiling windows, a shovel and garden hose to suggest recent gardening activity, and slightly rotated shutters to add visual variety. I also placed flower pots and adjusted the density of grass in the back garden, favoring more greenery and fewer stone elements, as seen in the references.
To complete the illusion of a real location, I tweaked the background house, added a double metal garden gate, and refined the tree line in the background until the whole scene felt cohesive and grounded.
Lighting
My goal for the lighting was to create a cozy, warm ambiance that felt both inviting and natural. I used Unreal’s Lumen system with a slightly orange-tinted directional light to simulate late afternoon sunlight. Contact shadows and high-quality shadow settings were enabled to enhance realism, especially where trees and architecture interacted.
Some parts of the house appeared too dark despite adjusting light bounce settings, so I added rectangle lights on the shaded side to bring out more detail and balance the exposure. A Post Process Volume was used to control the global lighting mood and tweak the final color tone, ensuring everything felt harmonious.
Rendering & Post-Production Settings
For the final renders, I used a Cine Camera Rig Rail combined with a 16:9 digital film camera setup in Unreal Engine. I manually adjusted the focus using the Draw Debug Focus Plane option to ensure precise depth of field. In addition to the main tracking shot, I placed three extra cameras around the scene at slightly different positions and angles to casually inspect the composition and lighting from alternate perspectives.
To animate the main shot, I keyframed the camera rig along the rail, introducing a smooth, subtly rotating movement to evoke a cinematic feeling. For variety, I created another close-up shot looking out from the top floor, where I changed the shutter color, added flower pots, and applied a slight rotation animation to the shutter, suggesting a gentle breeze. These small touches helped reinforce the atmosphere of a quiet, sunlit countryside afternoon.
To further enhance the mood, I incorporated the Niagara particle systems with falling leaves to give the scene a light, animated quality. One technical hurdle during rendering was ensuring foliage wind effects were active during sequences. To resolve this, I used Level Visibility Actors and carefully managed animation timing inside the Level Sequencer. That allowed me to toggle visibility of certain levels or assets and ensure wind effects were properly triggered in the render.
Conclusion
This project took roughly two months to complete and was an incredibly rich learning experience. The reference I used included a beautiful swimming pool, but I chose to omit it to keep the project scope manageable and focused.
One of the biggest challenges I faced was in the creation and planning of modular pieces and textures. Because I changed materials midway through the project, I had to rework some dimensions and UV layouts multiple times. That taught me the importance of early planning, especially when it comes to modularity and texture tiling. Defining these decisions at the beginning can save a lot of time and headaches later on.
Optimization was another critical hurdle. As I brought in high-quality foliage and assets from Fab, I noticed some of them appeared in low resolution during rendering. I had to manually replace them with mid-quality versions to maintain visual fidelity without compromising performance. Balancing density, asset quality, and lighting while learning Unreal Engine from scratch was a real test but ultimately a rewarding one.
One persistent issue was getting the wind simulation to work on the foliage. Despite trying countless tutorials and forum posts, my trees and plants initially showed little or no movement in the final renders. After extensive debugging, checking material setups, World Position Offset settings, and adding visibility triggers in the Level Sequencer, I finally got it working. The experience reminded me that deep technical issues often require persistence and experimentation.
To artists just starting out: choose clean, well-structured reference images with clearly readable forms and simple compositions. Modular planning and tiling strategy should be a top priority before jumping into asset creation. Be ready for iteration; it’s totally normal to go back and forth multiple times. Many things won’t work on the first try, and that’s okay. The key is to stay curious and keep testing.
Don’t fall for shortcuts that leave you disconnected from the end result. Instead, invest in high-quality tutorials with clear, structured instruction. Following one or two complete environment workflows from start to finish can help you understand the big picture while learning specific techniques. For this project, I closely followed Nicolas Bucco’s “Learn Environment Art for 3D Video Games” course, along with countless supplementary YouTube tutorials. And always try to ask for feedback. If something is off for your eye, always come back for it and fix it until it gives you the feeling of achievement.
In the end, I’m proud of what I achieved with the Italian Countryside Project, and I’m excited to keep learning, building, and sharing more in the future. See you in the next one.