Ovie Mukoro explains how he created a dreamy windmill step by step and breaks down the texturing of the main parts of the design.
In case you missed it
You may find these articles interesting
My name is Ovie Mukoro and I am a 3D Environment Artist from the United States. Previously, I graduated from Becker College with a Bachelor of Arts in Interactive Media Design, where I worked as a Lead 3D Artist intern for MassDiGI. I am glad to have been given the opportunity to write one of these articles!
About the Project
Though I was happy with the last project I had completed, it had not reflected what I was most passionate about working on. This time around, I wanted to focus on an environment inspired by the games and films I grew up with (Final Fantasy, Kingdom Hearts, Ghibli). It was then that I came across Whinbek's Windmill Tower concept, and I knew that it was going to be a really exciting project to work on with a bunch of new challenges.
This concept art helped me get a better sense of the core idea and emotional palette I wanted to express, and even set all the learning goals I listed to tackle the environment with full preparations:
- Tackling Modeling and Texturing Exercises
- Making Trim Sheets
- Creating Dynamic Lighting
From there, using a mix of Google, Pinterest, and sometimes Twitter, I started gathering references that matched the general mood and lighting I wanted to achieve. Writing notes with keywords at the top for searches was a good strategy, but I found it was not as helpful as just taking screenshots of the movies and games I wanted to replicate. Here is a small section of what I started out with:
I modeled everything in Autodesk Maya and brought it into Unreal Engine for quick iteration and sense of scale. I also adjusted the field of view to match the concept art, and made a basic master material in Unreal Engine to create block out textures.
The curved wooden planks on the windmill blades and the grey wooden planks on the roof in the front of the house were made using a bend modifier. The second, smaller windmill was made with basic primitive shapes but also rotated around on different axes. The door at the top of the building was made modeling a door-like shape, shoving it into the windmill building, and using the function Mesh > Booleans > Difference. Same goes for the window shapes. The rest of the shapes in the building were not difficult to model as they are mostly made of beveled cubes.
Getting the right look for the wood planks was definitely one of the biggest challenges of this project. For references I grabbed a few photographs in real life but mostly used wood references from the Ghibli movies. Howl’s Moving Castle was the perfect movie for wood references! I definitely paused the movie more than a few times to get a shot of every interesting wood plank.
All of the wood in this scene was textured with a trim sheet that was sculpted in ZBrush. Each plank on the trim sheet was made using two slightly different wood sculpting techniques — one being Dannie Carlone's, and the other being Polygon Academy's. The planks were also separately sculpted and baked with a material ID in Substance Painter.
In Substance Painter, the trim sheet was generally textured using a base color with an anchor point and the main planks were given an HSL perceptive filter to get a noticeable amount of color variation on the planks. The HSL Perceptive filter is super sensitive so I had to adjust them by literal decimals. I then added in some dark highlights on the planks using the metal edge wear generator and some dirt variation by mixing Grunge Maps, Blur Directional, and Sharpen filters.
I achieved the diagonal wood look on the red planks and other parts of the building by taking a plane, adjusting the UVs so they are mapped onto four planks of the trim sheet, and moving the vertices on one side. I also vertex painted some of the windmill blades for color variation.
The red planks in the scene with the different splotches of color were achieved through vertex painting. I made two variations of the same trim texture with different colors. The orange splotches were created using decals, and for some of the more tan wood planks, I intensified the normals in Unreal Engine using a FlattenNormal node to make it pop out more from a distance.
The roof wool or fur was created using the Lucen Grass System. For the additional layer of fur, I took a plane, added a few loops to it, bent it and set up my UVs to match my alpha, then duplicated it around in a sphere-like shape, and then transferred the normals from a sphere to it. A friend showed me how to do this in Blender as Maya was a bit funky.
Alternatively, I recommend camera-facing billboards and similar YouTube tutorials that might help. Anthony Fekih has some great blog posts and YouTube videos on it.
Texturing Rock Plaster
The rock plaster was made using Dannie Carlone’s stone wall tutorial. I made a plane, sculpted a few rocks and put them together, sculpted some of the plane using the ClayTubes brush to get some interesting noise, and then mirrored the rocks on the side so it tiled correctly.
The rocks on the windmill tower were made by cutting out little bits and pieces of that original tiling texture I made and adjusting the UVs to make it fit on one rock, and then pushing it upwards to give it a bit of fake depth.
I then brought that into Unreal Engine with a mask for the plaster noise so that only the rocks would appear, and then added decals to help make it really feel lived in. The bottom half of the windmill tower was made with a tiling texture to save time, while the top half had more individually placed rocks. All of the decals I have used can be found on textures.com.
The metal welds were also made in ZBrush by laying out a simple plane and sculpting a Cylinder with the TrimSmoothBorder brush with a square alpha with some decals thrown in, nothing too crazy. Simple tileables for the cloth on the windmill blades were made by taking and UV’ing a plane, bringing it into Substance Painter, and making a simple tileable texture on it with grunges.
Texturing Grass and Flowers
The grass was once again made with the Lucen Grass System. RunTime Virtual Textures (RVTs) helped a lot with blending the different colors of the grass together to make it feel truly lush and vibrant. For each different color I created different layers within the landscape material, but the RVTs could be a little odd to set up, especially with the Lucen Grass System. To help with this, I have taken a screenshot of how I set it up. If you are wondering where the MakeFloat3 node goes, I used the add node and put the GrassWindAlt node in B, and the MakeFloat3 node in A.
I also recommend checking out Chris Murphy's tutorial on enabling RVT's for blending objects with your landscape material.
The flower petals were sculpted in ZBrush, textured in Substance Painter to get a bit of definition, and then assembled in Photoshop to get a nice flower shape. I then took a plane and projected the flower albedo map that I made to it with a simple cube for the stem and imported it into Unreal Engine. I added in Subsurface Scattering with some emissive detail and a SimpleGrassWind node so that it really popped out when I brought it into the scene.
For the material instances of the flowers, I adjusted them like so (emissive bit is 1.0 for the white flower):
Overall, I got the right dense look of the flowers from just messing with a lot of the foliage settings when I painted, having it really dense in particular spots definitely made for it to feel more believable, not feeling like I was just trying to literally spread the flowers around in every spot everywhere. Adding connected dirt paths and adding a third hill for some faked depth helped a lot with making it feel more lived in.
Texturing Background Assets
The hay bales were created by laying out a plane in ZBrush and messing around with the ZFiber option to try and get a simulation that looked similar to hay. I made sure to adjust it so that you could see where the hay ends at the top. I then smashed together a bunch of alpha cards in Maya based on where the hay ended and where the middle of the hay was, and of course added an extra edge loop to bend some of it. For the OcclusionRoughnessMetallic Map, I made sure the Compression Settings were masks and the MipGen Settings were set to NoMipMaps so that it looked good from a distance.
The cloths were originally modeled in Maya for the base and sculpted in ZBrush with the Standard Brush tool. I then brought it into Substance Painter to give it some highlights so that it did not feel so untextured.
The ropes were made by putting a bunch of cylinders together to make it have a rope-like shape — the texture was created by laying out a plane and drawing out a straight line with the Rope Brush by BadKing. The cables are just simple cableactors with a solid color that was the same as the cylinders I assembled as they do not have UVs similar to my rope mesh. The windows were also made just by using a simple solid color and roughness map from a certain angle so that it really popped out.
Last but not least, the clouds were made with Tyler Smith’s Cloud Material. It is a super helpful material system that allows you to use different masks that drive the form and shape of your clouds — the tutorial itself explains it far better than I can though. Using the anime-inspired cloud brushes by Kristof Dedene, I simply mixed and matched a lot of the clouds together and made two different alpha cards — one that was the base color for the clouds with low opacity and the other that had a white highlight in them to really get the fluffy shape down. The highlight clouds were then just slightly moved in front of my base cloud.
Everything in the scene is dynamically lit with minor tweaks to the default Unreal Lighting. It feels colder than the concept but I think that the color scheme definitely popped out more for this environment. More specifically, I bumped up the light source intensity to 2, and used additional lights on the roof fur to make sure that the transition from the fur on the light to the fur in the shadows was not so harsh.
Additionally, for post-processing, I slightly adjusted the saturation so that the colors popped out more. For the sky sphere, I turned the sun brightness to max and turned down the speed and opacity so that there was a slight gradient.
Besides that, I used cine camera actors for the scene and adjusted the screen percentage to 200% and used a slight sharpening effect using this tutorial.
Conclusion and Advice
To say the least, this 5-month project was incredibly ambitious for me! A lot of the main challenges were mostly related to learning new workflows, from trim sheets to mesh decals, there was an incredible amount I have learned on this project and I am so excited to take this knowledge with me on the next one. I struggled far less in terms of coming up with a story because I not only had concept art to base my environment off of, but also establishing the core idea I wanted to go for and the emotions that I wanted my audience to feel when they saw my piece. For this, I really want to thank my mentors and peers who gave me countless rounds of feedback for this piece because without them, I do not know where I would be. It is still crazy seeing the jump in quality from my last piece to this piece.
If there is any valuable advice I could give to any environment artist, it is to understand that everyone starts somewhere. Being an environment artist requires a ton of time, effort, and dedication. Sometimes it can be a tedious and long process, and sometimes it is not the best idea to try and prove everything with a single environment. Something to keep in mind while making an environment is making sure to plan ahead. Plan your milestones, put extra time into organizing a project before jumping right into it, ask for feedback, gather as much reference as you can, really know the emotion you want to convey to your audience. What is the visual mood? Who are the characters that occupy your space? Whatever choices you make to your scene — assets or composition — make sure it all aligns with that final vision. It is good to have personal milestones, but those numbers you see on Twitter and ArtStation will never define value or skill, so please try not to define your worth by that.
Being an artist is possible. If you are passionate about something, keep grinding, because one day that dream will come true.
If you have come this far, thank you for reading! I hope this breakdown was helpful and please feel free to contact me if you have any questions or feedback. And lastly, a big thank you to 80 Level for reaching out to me and letting me share my workflow!