Fisherman’s Rest
Introduction
Hi my name is Giora Nohl, I'm currently a 3D Environment Artist.
Introduction
Hi, I’m Giora Nohl, a 3D Environment Artist, and I’d love to share some insights into my recent project, “Fisherman’s Rest.“
I’ll walk you through the technical and artistic process behind some of the key decisions I made and why I went the routes I did.
This isn’t the one perfect way to make an environment – it’s just my way. Grab a coffee and enjoy!
Fisherman’s Rest started with a simple image in my head. It was a small red hut with a grass roof on a rocky island in Norway, home to a retired fisherman living alone.
He isn’t out there fishing for a living anymore. He does it because he wants to. It’s a retreat and a slow, self-contained life away from the rest of the world.
Even though you never actually see the character in the scene, he influenced every choice I made. Everything from the rusty old bike leaning against the exterior wall to the bread left on the counter and the leather armchair by the fire belongs to him.
I’ve always felt that focusing on those specific, lived-in details is what actually makes an environment feel alive.
Goals
The primary artistic goal was to build something that felt inhabited rather than staged. A lot of environments can fall into the trap of looking like a prop showcase.
Everything can look too clean, too evenly distributed, and with no sense that a person has ever touched any of it. I wanted Fisherman’s Rest to feel like you walked in on someone’s actual life mid-afternoon.
On the technical side, the project was built from the ground up for release on Fab, Unreal Engine’s asset marketplace. That shaped a lot of decisions, like ensuring full compatibility across Unreal Engine 5.2 through 5.7.
I also avoided Megascans assets, as licensing restrictions prevent selling those. This meant a strong emphasis on flexibility in every prop and material.
If I was going to spend the time building everything from scratch, I wanted each asset to be reusable and flexible. This allowed me to further develop my modeling, texturing, set dressing, and lighting skills.
Tools
-
Cinema 4D – Blockout and hard-surface base meshes
-
ZBrush – Giving almost all props at least one base sculpt layer, while others were fully sculpted, like the rocks and twigs
-
Substance Designer – All tileable materials, including the foliage
-
Substance Painter – Texturing unique assets
-
Marvelous Designer – Simulation for clothing, bedsheets, pillows, and blankets
-
Gaea – Background terrain and mountain generation
-
Marmoset Toolbag – High-poly baking and final asset presentation
-
Unreal Engine 5 – Final scene assembly
-
Fujifilm X-T3 + Godox AR400 (cross-polarized rig) – Photogrammetry capture
Inspiration & References
The actual spark happened when my mother got a rural house in Sweden. It’s a classic, small red-painted home, and seeing it made me want to create something with that same soul.
Around the same time, I was watching travel videos of the Norwegian fjords and became obsessed with the atmosphere there. That’s really how the idea for this environment started.
I spent a lot of time looking into traditional Norwegian “torvtak” (turf roofs). I just think they give off such a unique softness and lived-in feeling.
It is the absolute pinnacle of coziness, in my opinion. The grass roof perfectly grounds the entire building with the rest of the environment.
I also collected a bunch of reference and mood images for this project. These were all stored in my PureRef board.
Blockout & Composition
I started the project with a rough blockout, just throwing basic shapes together to nail down the composition. At this stage, I’m really just looking at the relationship between the island, the hut, and the water.
It’s all about speed here. I’m not worried about details yet; I just want to make sure the “bones” of the scene feel right.
Since I didn’t have a finished concept to follow, I basically concepted directly inside Unreal. Sometimes I’ll start with a sketch, but this time I already had a rough idea of the composition in my head.
I mainly wanted to see how it would actually function in 3D space and make sure the environment worked from more than just one specific angle.
For the background, I used Gaea to generate the Norwegian mountain landscape and then brought it into Unreal as a displaced mesh. Even though those mountains stay in the distance, they do a lot of heavy lifting when it comes to the scale and the overall geography of the place.
Getting that backdrop sorted early on really helped me figure out the foreground.
Modelling Process
The hut itself is built from a few modular base meshes. They are just some really basic shapes, honestly.
The wall modules are essentially squares with some added detail. I used a socket and plug system where the wall mesh for a window is just a hole, and the window itself is a separate module.
This made things flexible since I could swap or change the windows without touching the walls.
The roof also uses a simple module, but I added a unique mud layer on top. I wanted the roof to look a bit droopy and bent under its own weight in the center.
In my opinion, breaking up that perfectly straight silhouette makes the whole building feel much more aged and lived-in. This helped with the vibe I was going for, creating the feeling of something that was there way before you arrived.
For the materials on the hut, I used tileable textures with some triplanar noise blending to keep things from looking repetitive. I skipped vertex painting because I had Nanite enabled on everything.
I actually built this in Unreal 5.2 with the goal of eventually selling it on Fab. Since Unreal isn’t backward compatible, using 5.2 ensures it works for all versions moving forward.
I could have used the newer mesh painting features in later versions, or even unique masks. However, the noise blending combined with some leakage decals was enough to break up the surfaces in this case.
The actual windows, doors, and outer modules (outhouse and toolshed) were also modeled from basic shapes. They were built with normal weighted bevels and constructed from multiple individual parts that all share the same tiling texture.
I get variation by using a unique RGB mask controlled in the shader.
I also set these up as Blueprints with exposed rotation settings, so I can easily adjust how far a door or window is open.
It keeps the scene clean by treating them as single units. This is helpful since glass doesn’t support Nanite and can’t be part of a merged Nanite mesh anyway.
This method also allows me to add some functionality to the plug modules, like interacting with the doors or the windows.
I do the base modeling in Cinema 4D, taking my blockout mesh and refining the shapes until everything looks good. I also make sure the meshes are watertight.
I don’t really worry about polycount at this stage; I just focus on getting the look right. From there, I move into ZBrush for detailing.
Depending on the asset, that might just mean some light edge wear and chips, or a full sculpt.
Once the high-poly is done, I merge everything, run a DynaMesh, and then decimate it to create the “low-poly” Nanite mesh. This saves a massive amount of time compared to modeling a custom low-poly from scratch, and the visual fidelity is great.
There are over 300 props in this environment, so taking shortcuts like this is essential. As long as you don’t have super long, thin triangles that mess with culling, Nanite handles the extra geometry just fine.
I always do a final check on the decimated mesh to make sure it looks clean before moving on.
UVing & Texturing
I use RizomUV for all my unwrapping. I try to straighten everything out whenever possible.
Unwrapping decimated Nanite meshes is a bit different from traditional low-poly UVs. It tends to look a bit “rougher” than the perfectly clean, straight-lined UVs you might be used to.
RizomUV has some great selection tools that help with those triangulated meshes, and the process feels pretty natural once you get used to it. The core skills are still the same: maximizing UV space, mirroring or overlaying where possible, and straightening out curves.
Once the unwrapping is done, I take the decimated mesh and the high-poly version into Marmoset Toolbag to bake the details. I always keep my bakes at 4K to maintain as much quality as I can.
After that, I bring everything into Substance Painter and just go to town. For the props, the workflow is pretty consistent.
I have tintable props that come in with a semi-white albedo and use an RGB mask to control colors in the shader. This is used alongside standard props without that setup. I usually start with my own library of smart materials and expand it as I go.
I don’t really have any secret tricks when it comes to texturing. It’s mostly just putting in the time and effort and looking closely at your reference.
I use a personal collection of alpha textures I’ve built up over the years. Whenever I see interesting paint chips, scratches, or stains in real life, I take a photo.
I then bring it into Photoshop, and play with the levels and contrast to isolate the detail. For example, I have a specific chipped paint alpha I really like.
By enabling random rotation in the Substance Painter brush settings, I can get a very organic, random look with almost no extra work. Anchor points also really help blend multiple materials together and ground them.
I typically export three or four textures per prop: Diffuse, Normal, and an ORM map (Occlusion, Roughness, Metallic). I also include an optional RGB/RGBA mask.
I keep all of these at 4K because I want the source files to stay high-resolution. It’s easy to scale them down later, which is exactly what I did in-engine to match the correct texel density for the project.
Since I plan on selling these on Fab, I want them to be as flexible as possible for the end user. I have a small automated pipeline that takes the 4K textures and scales them down into various sizes.
This means buyers can just choose what works for them. I try not to lock anything in or bake anything down until the very end.
I created the tileable textures in Substance Designer. It’s just the normal process: going from small to big, and from height to everything else.
I completely avoided anything external for this project. This means no Megascans or pre-made Fab assets were used.
Asset Workflow Example
This is just a quick showcase and example of how two of my hero assets were treated. It highlights how I think about what I do, and why I do things a certain way.
The boat and the bike are great examples because they utilize a lot of my personal techniques. They also have some special workflows going on with them.
Bicycle
For the modeling stage, I modeled all the individual parts manually, focusing on getting the silhouette and shapes right. My base workflow is usually either subdivision modeling or volume meshing several Sub-D meshes together for more complex shapes.
Volume Mesher is a Cinema 4D feature similar to other VDB-based workflows that isn’t widely used in the gaming industry. I’m honestly not sure why, as it’s way more usable than a standard boolean modifier and allows for incredibly fast iteration.
You can easily merge or “melt” objects together, subtract them, or smooth them out. Just putting two Sub-D meshes into the Volume Mesher merges them perfectly, giving you a great starting point for sculpting.
After modeling the high-poly, I add a sculpt pass to the mesh. I add dents, edge wear, chips, rust spots, etc.
I then bake the high-poly mesh onto the unwrapped, decimated mesh.
Here is the bicycle inside Substance Painter. You can see the color is a flat white or light gray. This is intentional so I can tint it later once it’s in the engine.
This is the mask I use for the tinting. I have a specific export preset for assets that only need one tint mask.
It packs the mask channel directly into the alpha channel of the albedo map. My master material for props has a simple switch that reads that alpha channel, making it really easy to handle the tinting inside the engine.
And this is the final result for the bike.
This is the bicycle in-engine. I made a custom Construction Script Blueprint that lets you take the bike and customize it however you need.
Once you’re happy with how it looks, you can always merge it down into a single mesh if you’d rather not keep it as a Blueprint in your scene. I wrote another article a while back about how to set up Construction Script Blueprints like the one I used on the bicycle here.
It might be worth a read if you’re interested: https://www.thedinustyempire.com/articles/giora-nohl-racingtime
Boat
For the base high-poly model, I only modeled one half of the wooden parts.
They get mirrored onto the other side later on to save on texture space.
The sculpt pass was done in ZBrush, adding worn edges, broken wooden planks, etc.
The bake was then done in Marmoset Toolbag.
During the Substance Painter texturing stage, I really like to use the object mask I get when baking. I use it to add color and brightness variation to my wood.
This helps break repetition and makes everything look more realistic. Wood is never really the same, so breaking that up, even just slightly, helps immensely!
Unreal Scene Setup & Set Dressing
I used to build my portfolio scenes entirely around the final camera shots. It’s a great way to limit scope.
If you’re only posting a few renders, it doesn’t make much sense to spend time on things people will never see. However, since I wanted to sell this project, I had to make sure everything looked good from every angle.
It needed to be fully functional for anyone else to drop into their own game or environment. One example of an asset in the scene was the kitchen corner.
Everything was modeled with weighted normal bevels and uses tileable textures with a unique RGB mask for color variation and material blending.
You can tint the paint color in the engine and adjust every door or drawer via the Blueprint.
Once I finished the set dressing, I took everything related to the house and put it into a Packed Level Actor. This lets a user just drag and drop the whole hut, with all its props and details attached, right into their scene.
I did the same thing for the wooden dock. Treating them like sub-assemblies or prefabs just makes the whole thing much more user-friendly.
The rest of the island is fairly barebones, further away from the house. I focused most of the details on the waterfront where the hut sits.
I didn’t bother adding anything to the back of the island where it isn’t visible. I also avoided using PCG (Procedural Content Generation) for this.
I wanted maximum control over the placement, and I didn’t want to force buyers to enable extra plugins if they didn’t want to. Some people prefer keeping their projects lean, so I tried to keep the requirements as basic as possible.
For my portfolio shots, I used Ultra Dynamic Sky and FluidFlux to really push the visuals and get that last bit of polish. But for the version I’m putting on Fab, I swapped those out.
I used Unreal’s native lighting system and a simpler water shader to keep it accessible for everyone.
Presentation
This has always been my favorite part of the entire process. There is something satisfying about the final stages.
Maybe it’s because you’re finally over the hill and can see that the project actually turned out the way you imagined.
All my shots are set up using Level Sequences. I use a cinematic camera with locked manual exposure and physical camera exposure disabled.
This lets me adjust every setting individually without them affecting each other like a real camera would. In real life, changing your aperture changes your brightness.
Disabling that setting in Unreal lets me tweak the depth of field without messing up my lighting. I also rotate the sun and add extra lights to any shot that needs it.
Small rim lights or highlights on specific objects go a long way. I’m a big believer in treating portfolio projects like a small cinematic.
It’s totally fine to “cheat” a bit with extra lights during presentation. No one will notice!
Once the environment was done, I pushed out the final renders. Unreal can be a bit of a trouble child when it comes to getting polished, consistent results.
Sometimes renders come out looking different from one another even if you didn’t change a thing. I’ve noticed that if your hardware is getting overloaded during the process, Unreal starts acting up.
I used to pack my Movie Render Queue with a ton of console variables, but I’ve realized most of them aren’t even necessary. Now I just use them on a case-by-case basis.
For this project, I rendered using Lumen and just cranked the settings in the Post-Process Volume to get the best quality.
I exported the shots as .EXR files and brought them into DaVinci Resolve for grading. I prefer doing my color work there rather than in Unreal, though there’s no real right or wrong way to do it.
Some people like grading directly in the Post-Process Volume, but I find Resolve gives me way more flexibility. After adding some subtle sound effects and music, the video was finished.
I then grabbed some stills from the sequence to use as the main shots for the portfolio.
I also did a separate breakdown of the assets in Marmoset Toolbag. I really wanted to highlight a few of the props that got some extra love and attention during the sculpting and texturing phases.
Below are some of the interior props.
And some exterior ones!
Thanks for reading! Fisherman’s Rest was a really enjoyable project from start to finish. I’m glad I got to share the process behind it.
If you have any specific questions, don’t hesitate to reach out to me! You can just DM me on ArtStation!