Course overview Course overview
Creating plant design and vegetation
Vegetation & Plants for Games WHAT YOU’LL LEARN
The more you know, the better.
Taking your skills to the next level
Jeremy Huxley has been working at Naughty dog for over 6 years on the Uncharted franchise, and 13 years in the industry total. He has worked full time and contract in multiple cities and countries around the world. Some of Jeremy's experiences include projects for Naughty Dog Inc., Runic Studios, Flagship Studios, Planet Moon Studios. Previous work includes: Uncharted 4, The Lost Legacy, Uncharted 4, Uncharted 3, Torchlight 1, Pre Production for Torchlight 2.
Vegetation & Plants for Games Student gallery
spring TERM Registration
Feb 10, 2020 - Apr 18, 2020
I really enjoyed this class and gained a lot of new skillsets from it. He has a natural talent in not only his craft, but in delivering it in a digestible manner in class. I highly recommend this class!
Jeremy was awesome!
Jeremy was one of the best instructors I've had for game design. He was always helpful, always kind, and was a wealth of information for both newcomers and experienced artists.
Jeremy is an awesome instructor! I'm so happy I took this class and I'm happy with what I've learned.
He's a very encouraging and caring dude. I felt like he really enjoyed teaching the class which goes a long way.
Jeremy was an excellent teacher. He went in depth with the course material and explained any questions we might have.
Companies that hire our students
environment design Benefits
What makes this learning experience unique?
Receive personal individual feedback on all submitted assignments from the industries best artist.
1+ Year Access
Enjoy over 365 days of full course access. This includes all lectures, feedback, and Live Q&A recordings.
Certificate of Completion
Earn a Certificate of Completion when you complete and turn in 80% of course assignments.
Learn anywhere, anytime, and at your own pace with our online courses.
Speak to an advisor
Need guidance or course recommendations? Let us help!
Show us your skills
Not sure if you have the skills, or are you proving you do? Show us.
Growing a Jungle Environment in UE4
Interview with Alexander Cowan
Alexander Cowan did a very cool breakdown, talking about some of the amazing vegetation he created for his ‘Jungle’ environment.
My name is Alexander Cowan and I’m from a small Caribbean island called St.Lucia and I have a master’s degree in Interactive Entertainment from the Florida Interactive Entertainment Academy at UCF. For the past few years, I have been back in St.Lucia where I have worked odd freelance gigs and kept up with the latest workflows. While on my tropical island home I started experimenting with capturing textures of all the lush tropical flora I had around me, developed a custom lighting rig and even did some work for the guys at game textures.
The guys at GameTextures used several material scans I did for them in a little UE4 showcase scene, it wasn’t anything super complicated but looked cool and was the catalyst for me to start working on a foliage-focused environment. While planning my scene I came across Jeremy Huxley’s CGMA Vegetation for Games class, the environments in the Uncharted series was always a huge inspiration and I thought it would be awesome to take a class taught by one of the people who worked on that series. I was indecisive at first and the class even appeared full at some point, but when a spot became available a few days before the beginning of class I jumped on it. My goal was to create a lush tropical jungle scene and actually finish it which I’ve had problems doing in the past.
Jeremy had us collect lots of reference to the type of environment we wanted to create and bring it into a style guide. At first it felt like a waste of time to sort through all of that reference, eventually I realized that by doing it this way I was frontloading the decision-making process so I wouldn’t be dedicating time to a poor design and also meant I wouldn’t get stuck spinning my wheels mid-way through the project and possibly not finishing.
I wanted tall canopy trees with buttressed roots, those are a staple for every tropical jungle. When I thought about smaller trees I was drawn to shapes of fan palms and how they interacted with light and I could also use these textures for smaller palms have those larger shapes to play off of for my ground layer plants. Along with the sea of green that was ferns and other small plants I wanted to make some sort of flowers, so I could add pops of color to the scene. I settled on using anthuriums which I have seen growing in the wild and they have a wider than expected variation of color and can grow in interesting clusters.
Ironically for someone who had been scanning foliage, all of these plants were handmade, sculpted and polypainted in ZBrush and baked and tweaked in Substance Designer. There were some plants I would block out the shapes for in Maya, otherwise, I would just start sculpting from a sphere in ZBrush. After most of the sculpting was done I moved onto polypainting. I tended to make a relatively clean and symmetrical version and then I would make a few instances that were warped differently and had a varying amount of damage and decay and then place those on stems/branches and warp further to get a natural result. I baked these down to a plane in Substance Designer where I could tweak colors and create different masks that allowed me to add details construct roughness maps. Bringing the foliage into substance allowed me to export textures quickly and re-use certain nodes over again, instead of manually having to do it in photoshop over and over. This handmade approach may take longer and not be physically accurate as a scanned texture, but you can make anything from things that you don’t have the scanned assets for to plants on an alien planet for which scans obviously don’t exist.
ZBrush was a major part of the workflow and having not used it for a while and never having sculpted plants, it was challenging getting up to speed interface-wise. I was lucky that 4R8 recently came out because using the gizmo to arrange sub tools is easier to than using the transpose tool. It isn’t just transforming objects like a normal 3D program, but the ability to quickly duplicate and deform objects using the gizmo. It comes in amazingly handy when you are placing hundreds of leaves on a branch or a stem.
Creating the Canopy Texture
I probably learned the most from creating my canopy texture. The branches were made by pulling points out of a sphere in ZBrush and then dynameshing. It was tricky to get accustomed to but was extremely fast and provided nice organic detail. Then for the leaves, I made a few different leaf sculpts starting with a “perfect” version I would duplicate warp differently and add varying levels of discoloration and decay. Then I made clusters of them on a stem-like in my reference photos and then places those on my branches. When I stepped back and looked at what I had done, it was horrible. The clusters of leaves looked like the same little sticker all over the place. I then started making the clusters look more natural by warping them and removing random leaves. I then realized I wasn’t overlapping the leaves on the branches, so I fixed that, and the texture looked much better.
I also kept cognizant of the amount of negative space in my texture. Too little and the tree would look too sparse, too much and the cluster would just mix together in a blob and I wouldn’t be able to generate that nice full layered look, it would also block too much light from hitting the jungle floor which was important for my scene.
Most scenes have rocks, but since the course was focusing on foliage we needed to make a pretty versatile rock. I sculpted my rock in ZBrush I made sure it had interesting large and medium shapes and looked good from multiple different angles. I avoided putting in any micro-detail since when this rock was brought into the engine it would rely on a tiling detail texture for the close-up fidelity. In the engine, the rock consists of a unique normal map for the large and medium details, and it has a detail albedo/normal/roughness texture which tiles. I also made detail texture tile more as the object was scaled so the detail would be consistent even between differently scaled rocks.
Everyone in the class had to make some sort of focal point or story detail for our scene. I had had my ruins blocked in for quite awhile before I even attempted doing anything with it. I made a shader which blended between a plaster material and a damaged/stone and mortar sort of material. During the class, the foliage was the focus so I left the ruins basic with a nice blend material. After the class, I spent way too much time fiddling with different methods for making the ruins. I sculpted and baked a bunch of stones to alter the silhouette and modeled and UVd the broken edges in a way to minimize seams. When it came to placing the model in the scene, most of the meticulous work I had done ended up covered by ferns and served as a lesson to spend time working on the right things.
For the jungle floor, I created a ground plane and exported this from Unreal into ZBrush where I sculpted it to flow more naturally among the larger objects that had already been placed. I then remeshed this into a lower polygon count and re-imported this back into Unreal. This is how Jeremy covered it in the course material because building and applying a shader network, was easier to do on a static mesh than terrain but object, but we were free to use whatever method we were most comfortable with.
I left applying the textures to my floor rather late in the process. In Substance Designer, I made 4 different types of materials for the ground. There was a muddy ground material, a rocky material, a loam/fallen leaf material and a grass/moss material. My grass material was really a moss material but the way it was made could pass for either.
The other materials all built off of each other, first I generated some rocky sort of shapes and then blended them into a mud base. With the mud, I used the same rock shape generator but at a much smaller scale to have pebbles sunk into the mud. For the loam texture, we imported a few of the alphas of leaves we had already created and scattered them along the surface in different layers so we could build up the organic material. I do think that these textures could be pushed further, but this was a case where they were good enough and I didn’t waste time agonizing about small details that probably won’t be noticed in the end like I ended up doing with the ruins.
For the initial blockout, I used the larger objects like the trees and rocks to get a feel for the scene. These weren’t even textured or fully fleshed out modeling-wise, but it was important to get the larger forms looking good.
As I completed my first plant type I tried to place them and see how they would look, but there is only so much you can do with 1 plant, but this led to a happy accident. I had been messing with the slope settings in the foliage placement tool and decided to try to make these plants grow on walls, it looked strange at first but when I set a low value for aligning max angle, I got these awesome looking plants growing up and around the trunk of a tree which I ended up making a focal point of the scene. Now this isn’t very optimized since my plant was radial in design there were always going to be a bunch of leaves intersecting the trunk of the tree and I needed to delete the stems of the original plant model, but you couldn’t beat the visual payoff for such a quick and dirty method.
Dead Things & Variation
When my library of plants was built up I started all over with placing foliage. Placing the larger plants like the palms first and progressing smaller attempting to create more visual interest. As I placed more plants, I realized the scene came to life when I placed flowers and plants with dead or dying parts avoiding the monotone sea of green. I had to consider this with reference to my fan palms. Much of the images I did have, showed plants in botanical gardens that are well manicured. My scene was supposed to be quite wild and simply adding dead palm fronds hanging off those trees gave them a more interesting shape, and color variation and added to the believability even though my scene and most of the assets in it are quite stylized. I used this effect making a quick and dirty dead version of my fern which I used to drape over the edge of the ruins and from ferns that were growing on the sides of trees.
I used a few different methods to get variation in my plants, mostly I painted dead bits directly into the texture but on something like my Kapok canopy texture that wasn’t practical with so many leaves. I did make different versions of leaves that from a distance ended up looking similar and blending together. I baked that mesh in substance designer with a mesh ID mask using the random option and I converted it to greyscale and used that as a mask to blend between a browner version of my albedo and could simply rebake if I didn’t like how the mask looked.
On larger assets, I got a lot of mileage out of blend textures. My ruins shader blended between a 2 material sets as I mentioned before, but I also blended in moss and lichen. I used this moss and lichen shader on all the larger assets like the rocks and tree trunks. This not only allowed me to vary the look but to ground the scene better, having moss painted into places that would be damper than others or as a base that ferns or other plants could sit on.
Since most of my foliage was hand-painted and not strictly PBR values, I had to tweak things on the fly but this was easy with substance designer being a hub for all my exporting. An important aspect of my scene was having that translucent leaf effect. I used the built-in 2 sided foliage shader to achieve this and made masks for certain textures so things like tree branches wouldn’t be shaded as translucent.
Technically the lighting setup of the scene is very simple, it is baked down using lightmass with a single directional sunlight and the number of light bounces increased a bit. More importantly, I am using volumetric fog which adds a lot to the feel of the scene since most of it isn’t lit directly. The streaks of light through the fog create a cool dappled lighting effect on the jungle floor and looks even better in motion after I added some simple vertex wind to the plants. Towards the end, I added a post process volume that upped the saturation and contrasts a bit for my final images.
The whole scene runs in real time in UE4 and while it was intended to be a high fidelity showcase and it runs well on my pretty decent machine, but there were some foliage specific optimizations that I kept in mind when building my assets.
A real killer of foliage heavy scenes is overdraw, which is the area where blank space on foliage cards overlap. I tackled this by spending a few more polygons following the silhouette closely to avoid as much empty space within reason.
My plants were for the most part quite low poly so I didn’t bother doing any LODs, but in production, I would end up doing them, especially for the short ground plants which would typically be obscured at a decent distance anyway.
I appreciate being able to share my scene with you guys and hopefully, I have more scenes to share with you in the future.
Vegetation Creation Techniques for Games
Interview with Samuil Munis
Samuil Munis shared some techniques on the production of awesome vegetation for games.
My name is Samuil Munis, I am an Environment Technical Artist at Ubisoft Sofia. I’ve graduated from New Bulgarian University with multi-media and design, about two and half years ago. Since then I had the amazing opportunity to be a part of the team working on Assassins Creed Origins.
This scene I worked on during a class I took with CGMA, Jeremy Huxley’s vegetation & plants for games. This was a part of a program to increase and diversify our skills from the studio. I chose this course as it provided interesting insight on a different workflow that I have previously used for vegetation. When combined with regular workdays, it is a very intensive course. I would say indicative of actual work in the studio. I was very pleased with the results, I learned a few new things and pushed myself to use new methods. It is a worthwhile endeavor for artists, both experienced and newcomers.
Reference and workflow
When starting any project gathering the right reference is key. I had no trouble with this aspect as I have done it many times before, but getting the right scene and composition clear in your head might prove troublesome at first. You might have an urge to throw as many ideas as possible and overdo it, but keeping things focused is worth throwing a few things in the trash (or keep them in mind for the next time).
I really liked the approach Jeremy showed in the course – get as many reference points as possible and then sort them by type and category. For my scene I decided to use a short trip to a nearby monastery as inspiration. We have beautiful vegetation here after all, and the location is interesting. I took a lot of pictures, none of them good enough to get textures or anything, but for reference they did great! You don’t need to be a photographer to get good reference. Next to imagine a bit clearer what I am going for, I made a quick composite, overpaint.
Things obviously changed as I had to make the vegetation showed in the course, work for my scene, but the general idea remained.
From this point it should be easy to imagine the steps you will make and assets you will need for your scene.
Leaves and branches
This was a new process for me as I haven’t worked on plants in this way.
Working in Zbrush from scratch was also something new. I am not great at sculpting so usually I use 3ds Max to form basic shapes and then run them through ZBrush for detailing of the highpoly. This time I decided to challenge myself and work as the instructor did. Starting from a sphere, using dynamesh and move topological/smooth over and over until you get the shape you need (of a leaf in this example). It was a slow and tedious process for me at first, but I learned a lot about ZBrush and sculpting in the process. Along with some practice I also learned to manage layers in the document, work with the dreaded transpose tool (although it has changed for the better in the newest version), and taking captures of normal/height/albedo right off the viewport.
Polypaint also proved challenging, but after a bit of practice and the right use of masking tools from the masking pallet, I started to get the hang of it, probably someone with a good hand can do it much easier, but still using different brushes and masking by topology, will yield nice results. Also absolutely use “spotlight” to pin a few pictures to pick colors from, it is a huge time saver.
Rocks were a similar challenge as I have done them before only using Max and some small amount of detailing in Zbrush. Starting from scratch they were pretty hard to wrap your brain around. Especially after long sessions of sculpting late at night, you can get convinced that this thing is just a blob and doesn’t look at all like a rock. A few breaks here and there will help a ton. In the end I went through too many iterations and I wasn’t happy with the rocks, but I had to push forward or never finish. Sometimes this happens, you shouldn’t get dragged down by just one asset, better to finish the entire thing than to have that one great rock. Later after most things were finished I returned to polish and add more detail either through texture or some geometry.
The tree was kind of an easy part for me as I have tried (and failed) a lot in this before. This time with some feedback it was much easier. The creation of the branch in Zbrush was interesting and unexpected approach. Having all the leaves (needles) and the branch in a sculpting software before rendering the texture sheet, allowed for some nice final adjustments with the move topological tool that gave it a lot of life.
There were a ton of different types of plants that I made for this scene, given the short time constraint . There were short broadleaf plants, that needed a few distinct sculpted leaves , other short grass type plants, two types of ferns, the tree card and an ivy plant. This in about total of two weeks in between other things for the scene. A good point to start is to get the specific type of leaf sculpted and painted really well, then start to make copies and use move topological + crumple to completely devastate them in different ways. Paint them each a different tint and add the brown, gray, white “dead” parts. This was especially true for the ferns and needle leaf as they required a bunch of unique looking parts, most were just the one well sculpted leaf smashed and repainted a lot.
With the materials I had a lot of fun, since I had some experience with Substance beforehand. For the scene I created a few mosses, two types of mud , some grass, stones, three variations for the rock and the bark. Of course all the textures received some touch-ups in Substance.
The bark at first I tried to make a foundation in ZBrush by sculpting a piece and tiling it and getting the heightmap into substance. This didn’t work for me, but non the less I learned how to composite a tileable texture using the “tilde” in the draw mode of ZBrush, that will come in handy at some point. What I used finally was a completely substance based bark. Using a tutorial by Peter Sekula.
Starting from blending many different noises to achieve a desired effect and basically “sculpting” a piece of height map. This then tiled and manipulated gave a great starting height map for the bark. Applying layers of coloration one over the other and adding more grungy details along the way.
Mosses and mud substances were also completely procedural. The most important thing in a substance like this is to build a good height map as a base. When previewing your progress, remember to turn on height in the viewport and use tessellation not parallax, also choose the right cubemap for the environment, matching the look of the scene you are building. This will ground your expectations for the substance. Good rule to follow is also to try and build it modular. Focus on one aspect, don’t stuff too many elements into a substance, make a good mud, a good moss, good pile of twigs, good pebbles. Then you can mix and match them and have a nice library to build diverse materials from.
When building the shaders in unreal I also felt quite at home. Not constrained by performance and with previous knowledge, I did a few interesting things. I build a shader for the terrain that blends my materials but also scales them according to the distance from the camera. This eliminated tiling in the distance. I also made a few height based calculations to make materials that are in contact with water appear wet (simpy by boost roughness, tinting the albedo abit and throw some metallic in there). This last one I also incorporated into all the shaders, so plants rocks and props get wet when near the water. In the terrain I also build in some extra tessellation and just for kicks I also constrained it to the camera distance so you don’t have waster triangles far away. Other materials like the rocks and trees also got some tessellation. The rocks also change tiling based on camera distance.
Compositing the scene
You should always block out your scene as early as possible. It gives you an idea of the type,size and feel of the assets and props you will need.
I already got the reference and as soon as I had a few rocks and a tree I started editing some terrain and placing some stuff around. Things changed as assets were getting ready, but it remained along the same lines till the end.
Since the scale of the scene was on the big side, I used a lot of procedural type placement. The big boulders and cliffs I placed where I needed them , and I placed trees along the path to get the focal point of the scene. A lot of the trees outside I painted using the foliage tool. Same goes for some of the on ground smaller rocks and most of the mid size plants. The small plants I placed using the clutter system of the terrain auto generating my small plants on grassy texture. This gave me nice and full feeling. After most of everything else was done I also painted the ivy plants around the rocks using the foliage tool, the ones of the building I placed manually.
For non-organic props I didn’t dispense too much effort as it was a foot note not the main focus of the scene. Still having the structures there gives this overall complete feeling to it all. For the monastery I made a few quick major shapes in max and then quickly detailed them in zbrush. Each one is using a tiling texture for detail and a unique normal and cavity/ao for some detail. In engine I also covered it with projection decals. Same goes for the railings along the path and the wooden bridge. This is absolutely not an approach I would recommend for anything more than fake props.
Speaking of fake, since my scene was pretty open I needed to make something up for the distance. I didn’t want to close myself in with trees all around. So I quickly made some fake terrain in World Machine, textured it in substance using the height maps and normals as masks for my existing textures (rocks, moss, mud), placed a few fake trees on top and voila, fake in the distance.
I was tweaking the lighting during the entire process, but after I got mostly everything else, I sat down to really find the best condition for my current layout.
I used baked lighting, although I did want to use realtime plus VXGI, but because I needed to compile a new unreal version for it to work I decided there is no time as it is. For the sky I used a cubemap, again a compromise from my initial urge to try TrueSky, but again the time I would have needed to make it look as I wanted it, would have made it unfeasible. This is just to show you that sometimes to keep a tight focus on your current task you have to make some concessions.
After stopping at the right time of day, started the post process tweaking. This took longer than I expected and maybe not really finished even now. I was using the tried and true method of tweaking a LUT map in photoshop, but also some in engine post effects as well. Along this I was tweaking the AO, AA and other technical things to my liking.
Finally I was missing some mood so I used some particles taking advantage of the new volumetric fog of UE4, and placed some mist low to the ground.
Building a fully featured scene in about 5-6 weeks from scratch is a challenge for anyone. This I feel is the best way to learn new things, push yourself and get a perspective on aspects of game art production.
The main strength of the vegetation and plants course is, it condenses a lot of important aspects for all environment artists into one. This is not just a how to make a plant course, this will give you an idea how to build a scene from zero, in a professional environment for any kind of art direction.
Most important things to take away aside from techniques in the software, are time management and focusing on the bigger picture and final goal.
Creating Natural Landscapes for Games
Interview with Fernando Quinn
Fernando Quinn talked about his work with the preparation and use of vegetation in environment production.
Hello! My name is Fernando Quinn and I am an Environment Artist currently living in Brazil. After three frustrating years in school trying to get a degree in Electrical Engineering I decided to drop everything and try to figure out what I really wanted to do with my life. That’s when I started to take a closer look into the 3D and traditional art and realized that that’s what I wanted to do going forward. That was in 2012. Since then I have been learning 3D by myself, studying traditional art, doing some small jobs in the advertising industry and I also got a degree in Graphic Design. Recently I have decided to focus on real-time art for games and I am at the moment looking for opportunities to work for a studio to keep improving on what I love to do.
Planning the Environment
This piece was done for Jeremy Huxley’s Vegetation & Plants for Games class at CGMA. While gathering some reference and inspiration for it I decided from the beginning that I would be going for a warmer color in my composition. With that in mind, I was able to art direct every aspect of the scene to warmer tones instead of straight up color picking from the references. The lighting with the sun coming down with just a slight angle from the top also helped setting the mood by establishing the time of the day being captured by this piece.
Some of my inspirations collected at the beginning of the project, also with my initial color key
I have always wanted to create an open environment with lots of trees, bushes and plants, but making this without knowing the best approach to the process can be a little intimidating even when you have an idea of what you want to achieve. It’s funny, because when I started this piece my initial plan was a lot different from the results I got in the end. My scene evolved during the process, ideas changed even though the base concept — a forest with lots of vegetation — remained the same.
When I started this, I wanted to create a clearing in a forest with an old mill as my main focal point. I started blocking the scene to get an idea of the initial placement of assets and while doing that I got a happy accident with a very large rock that was helping a lot with my composition.
Initial blocking in Unreal Engine, with some rocks and trunks. You can see the mill that I intended to create
The mill block remained in the environment until almost the end of the creation process, when I decided that due to time constraints I wouldn’t be able to make it in time and also because the composition was working really well even without the mill in it. For me it was really hard to let it go, but I had to and this is all part of the process. It was also very challenging to make this piece since at the same time I was learning all the ins and outs of the Unreal Engine 4, as this was my first piece that I brought inside the engine.
After the initial composition being established, it was time to create the assets. Every asset in this scene was created by modeling the high poly either inside Maya or ZBrush, then baking down to a low poly and texturing it using Substance Designer. All assets are using tileable materials with the exception of the leaves and branches which I will explain the process more in-depth later.
Rock creation process
The rocks were one of the first assets I created for the scene since I needed them to determine a good initial composition. When sculpting rocks it is important to think about scale since these assets will be used with different sizes throughout the environment. Keep microsurface detail out of the sculpt, you will have those in a detail map later. You can use varied types of alphas and brushes to help you with your sculpt such as Crackle, ClipCurve, hPolish and others, but my main tools for sculpting rocks are using the TrimSmoothBorder brush and a little bit of Crumple brush with a square alpha. Besides that you should always keep in mind the Primary, Secondary and Tertiary shapes rule, be careful to not over polish your sculpt and also remember to keep flat surfaces around your model.
Rock sculpts in ZBrush
With the sculpts finished, I exported these models as a high poly and also a decimated version to use as the low poly. I imported the low polys in Maya, gave them a UV and after that was a matter of baking the normal maps from the high polys using Substance Designer.
For the rock texture I used Substance Designer to create a simple tileable material with three different variations so I could vertex blend them later inside Unreal Engine: one dry/clearer rock surface, one regular mid-toned material and one darker/wet with some light moss patches on it.
Rock tileables, created in Substance Designer
All that remains after that is setting up a proper master shader inside the engine. Using the ObjectRadius node and multiplying it to your Texture Coordinate you can set up the tileable material in a way that it scales at the same rate that you scale your rock. I used the rock material normal map as a Detail Normal and blended it with the baked normal map. Then I Vertex Blended the rock materials I’ve created with some moss material also created in Substance Designer and that was it for the rock creation process.
Wet and dry moss materials
Rock master material
The first thing I did was bringing some basic shapes of rocks and trunks into Unreal Engine and scattering some of this stuff around in a way that I could work with for my composition. This was very rough, everything would be changed later. Then, I exported this basic blockout to ZBrush and there I started sculpting on a plane to “ground” these blocked assets, always thinking ahead of what I wanted for my scene. For example, I knew that I wanted a small river crossing the composition, so I carved the river shape in the plane and determined its position in the scene during this stage.
Landscape in ZBrush
This ZBrush sculpt is that is seen in the foreground and midground of this piece. For the background I used the landscape tool inside Unreal Engine just to create some shapes that I could work with and later scatter some trees and rocks around. It doesn’t show up a lot for this one, so it was more about just creating something to place the assets on top.
Landscape in Unreal Engine 4
The texturing process for the landscape started with the creation of the materials in Substance Designer that I wanted to Vertex Paint inside the engine. For this I used four materials: one of my previously shown mosses, one muddy ground, one rocky ground and one ground full of leaves.
Mud material used in the landscape
For the leafy ground I exported the height maps from the leaves I modeled for this environment and in Substance Designer finished the material by blending the height maps and giving it a base color and a roughness. The base for this was just some noisy map blended with a perlin noise to give a bit of a bumpiness to the surface.
Ground with leaves and ground with rocks, used to Vertex Paint the landscape
I will separate this in three different types of assets, even though their creation process is very similar: Plants, Trees and Grass/Flowers.
The first thing I needed to do was to decide which plants I would be creating. To do that, I gathered some reference on the vegetation of a specific region in the world that I wanted to portray and loosely base my scene in. This is relevant so that you don’t mix a lot of different types of plants that would never be together in reality, otherwise things might start looking a bit off.
Some of the leaves, after being sculpted, polypainted and layed out on a square in ZBrush
With my reference at hand, it was time to start sculpting individual leaves for some of these plants in ZBrush. My process was basically sculpting the leaves, painting the base color with polypaint, exporting the base color and height maps and then tweaking the texture a little bit in Substance Designer and also creating the roughness before exporting the final maps. While polypainting the leaves, one great tip that I got from Jeremy was using the Standard Brush with a square alpha and also with RGB turned on in order to paint some damage while already giving some color to these areas. After you’re finished sculpting and painting your leaves, you should lay them out on top of a square plane so you can frame the scene and export a perfectly square map from ZBrush. Then you can bring it to Substance Designer to finish the textures. Note that it is also important to export an opacity map to use later in engine.
An example on how the final maps looks like, after exporting from Substance Designer
After the maps are created, it was time to bring them inside Maya (Modo, 3DS Max, etc.) and apply the textures on a simple plane. This way you can cut out the individual cards and create different types of plants from your leaves. For some of them it was needed to model a simple stem to hold the leaves in place. If you need a stem you can create a tileable texture the same way you created the leaves in ZBrush and place it in the corner of your square plane before exporting the maps. You shouldn’t have a separate texture for the stem in order to prevent more drawcalls for each plant you place inside the engine. Since you are gonna scatter a lot of those around it needs to be optimized otherwise it can get heavy very quickly.
Plants assembled inside Maya
There was nothing fancy about the master shader created inside the engine. It was just a Two Sided Foliage shader with a subsurface color again pushing for a warmer tone.
Master shader for the plants
After everything was set up, it was just a matter of scattering the plants around, either using Unreal Engine’s foliage system or hand placing everything if I wanted more precision.
The creation process for the trees was very similar to the plants. For this scene I created only two types of trees: a conifer and a smaller broadleaf and scattered them around. In the case of a dense scenario like the one I was creating it is really difficult to notice repetition if you carefully rotate the trees before placing them next to one another. The first thing was, again, modeling the leaves for the tree, then organizing them on a branch before exporting the textures using the same process used for the plants. I also exported an empty version of the branch on the same texture, so I could have some variation to work with when populating the trees with cards.
Branches organized in ZBrush
The modeling of the trunk and larger branches was just some regular extruding inside Maya using splines to guide the shapes that I wanted to achieve for the trees. After that it was just a matter of cutting the cards from the branch texture that was created before and populating the trees in a way that looked natural — remember to always check your reference.
Trees and branches inside Maya
I wasn’t particularly proud of the tileable bark material I created for the trunks. I definitely needed to work more on it, but I couldn’t find enough time to do it before the deadline of the class, so it ended up staying in the realm of “just good enough”. Sometimes you got to pick and choose what do you think is best to do with your time before it expires.
Bark material made in Substance Designer
I started these by making the base shapes inside Maya. I had already established that I wanted red flowers and some clovers in my piece, so using curves and some extrusions I was able to make them and also make the leaf blades that I was going to need. Like the previous vegetation, I exported these models to ZBrush, polypainted some color and organized them on top of a plane in a way that I could have some smaller and larger clumps of grass that I could use. I made a mistake making them too thin the first time I created the blades (see image below). After I noticed that I remodeled the grass and made them thicker.
First base models, ended up being too thin
After a quick pass in Substance Designer just to get some roughness variation and export the final maps, it was time to cut the cards inside Maya and organize them in varied clump sizes to finish the grass creation process.
Grass and Flowers
What were sort of the biggest advice you’ve got from Jeremy during this course?
Jeremy was an amazing mentor throughout the creation of this environment. He gave me some great advice that helped me achieve the results I wanted. One of the most importants advices that I got from him was to work on my transitions. He kept telling that from the beginning and now I can clearly see how important this is for environment creation for games. Transition from larger to smaller objects, transitions between different shapes and materials, transition between ground and assets, transition between shades and colors on your textures. It is so important to work on this since abrupt transitioning and straight lines completely breaks the immersion and looks very “game-y”. Make sure you also pay attention to how objects tend to cluster in nature, this is relevant when creating ground textures or when placing rocks and grass around your scene.
This class was great to learn the entire process used by industry professionals of one of the greatest studios in the world on how they create their vegetation for their games. There are a lot of great softwares and plugins that help with the creation of trees and plants (such as SpeedTree) but I feel like it is very important to also know how to make this stuff from the ground up. Most of the time you will not have those specific tools available to you and then you will have to do everything by yourself.
Other great aspect of taking this CGMA class is the time constraint you are forced to adhere to. As I’ve shown at the beginning of this article, my initial idea was very different from my results. Due to time constraints I was obligated to alter my focal point, problem solve and figure out ways to make the scene look good even after making changes in the middle of the project. I always want everything to be perfect and this is actually a problem when you’re working under tight schedules. Because of that, it is very important to remember that making your environment look good as a whole is a lot more important than doing that perfect texture or that awesome asset that the player will look at for only two seconds.
Overall, my experience with CGMA has been great and it is helping me a lot to achieve my goals. I had a great time writing this article and I hope it can be helpful to someone. I would love to contribute again in the future!
Creating Mossy Swamplands in UE4
Interview with Meggie Rock
Meggie Rock talked about her latest scenes filled with beautiful vegetation she created with the help of Jeremy Huxley’s vegetation course.
My name is Meggie Rock. I am an Environment Artist from Austin, Texas where I have been working in the game industry since 2013. Most recently, I was at Gunfire Games where we worked on a variety of exciting projects ranging from a soon-to-be released VR game, From Other Suns, to Darksiders III. I’m in the process of moving right now and will be starting at a new studio in December.
This scene was the product of Jeremy Huxley’s vegetation course with CGMA. This was my first time taking an online course. I’m a huge proponent of self-teaching and I was a little dubious if the course was going to be worth it. However, foliage for games is something that I find both fascinating and intimidating, as I’m sure many others would agree. I’ve been wanting to do a purely organic scene for ages, but would get overwhelmed when starting. Or I would get so laser-focused on creating the perfect moss or bark in Substance without actually following through with creating a scene. In the end, I couldn’t pass up on the opportunity to learn foliage tricks from a Naughty Dog artist. The course was a great experience and I’m glad I took the leap!
Organic scenes can lack the structure that man-made and modular environments have. They can be an overwhelming mess, especially at the outset. For anyone doing their first organic scene, I would urge them to keep the scope small. Either do a small close-up diorama or a scene in which natural elements are secondary so that they have a foundation to build on and a clear composition and end goal.
Luckily, the beauty of taking a CGMA course is that everything is broken down into weekly goals, which is a great way to approach any project you’re doing. (Excel is your friend.) Nevertheless, reference gathering and making a style sheet was still one of the hardest parts for me. If I’m not working directly from concept or in a production setting, I tend to work in an ad-hoc method, creating what I need as I go. Composition can also be a challenge since you may not have a focal point to center your scene around. On the bright side, organic scenes are very flexible and fun if you have the patients and creativity. I’m not entirely happy with the composition of this scene, but I did try to be mindful of how the curves of the trees and ground led the eye.
When it comes to resource gathering, websites like Alltrails.com can be a powerful tool. The image quality is hit or miss (you won’t be photosourcing textures from here), but it is a great place to start to develop an understanding of the region you are working with and what grows there. There are locations from all over the world. Of course nothing beats being able to walk out of your door and take pictures yourself, which was my primary approach.
Something I try to remember is that the environment as a whole is more important than any one asset. And in production, making something “good enough” and cohesive is often a more valuable skill than making everything hero quality. Due to the time constraints, I really relied on that and other tricks to finish the environment. Material blends are a useful way to get more mileage out of a few materials. “Unoffensive,” boring textures can be really flexible. I knew that I wanted a world space moss covering the tops of my rocks, so I didn’t worry about over-doing the rock texture.
Lighting and effects can immensely change the mood of a scene or inform visibility, so it’s great to start working on those early. I love Unreal because it is so easy to use the resources they provide. My go-to’s are the dust particle system and godrays (found in the “Particles” project). Now that UE4 supports volumetric lighting, the godrays aren’t a necessity, but they can help highlight layers of the scene if used subtly. For this project I also used Unreal’s fogcard particle (found in the “Blueprints” project). UE4 makes adding these powerful tools to your project so simple and the payoff is immense. Environment art is already so broad, don’t feel that you have to reinvent the wheel.
As for asset creation, I was surprised by how straight forward and easy to grasp Jeremy’s methods were. Foliage isn’t necessarily complicated, it’s just often a long process of sculpting small pieces, painting them, placing and compiling branch cards, and using your cards to create larger plants.
While tedious, sculpting and polypainting leaves in ZBrush gives you a lot of control over the look of your plants as well as how optimized the atlas is. Duplicating a sculpted leaf with a base polypaint lets you easily make variants of different conditions of decay and health. Crumple is great for dried leaves. The rake tool, or a brush with a similar alpha can produce ridges along the length. Deformation tools like twist and soft bend are great to get subtly differences in the normals. When it comes to polypainting a limitation I found was getting color variation without re-painting each leaf. A quick solution I found when compiling my leaf textures in Substance Designer was to overlay a blurred color map (any noise + gradient map + HQ blur) over the imported flat color. You can also overlay a perlin noise over the normals to get more wobbliness if you need it.
I’ve made Spanish moss with SpeedTree before, and while you may have more control, I’ve found it to be a bigger headache than anything. For this project I used Zbrush’s fibermesh for the first time. It gave me great results really quickly. Nanomesh and Fibermesh are both amazingly powerful tools for things like moss and grass and really quite easy to use.
One thing that I do love about SpeedTree is the leaf map maker. It’s very similar to making a tree in the program, but you lock the viewport, turn off any shadow information, and export the resulting image. SpeedTree automatically creates base color with alpha, normal, and specular maps. It’s a wonderful time saver. For example, I was able to quickly add a few leaves to my original leafless branch card with minimal hassle and no rework of my existing branch cards that I had already placed on my tree in 3ds Max. You can also use these branch cards to make small shrubs.
To create things like the tree trunk and branches, I used splines combined with a tapered and twisted cylinder and the PathDeform modifier. To get the gnarly oak tree look I added a noise modifier directly to the spline before using PathDeform.
When working in UE4, I prefer to hand place the trees instead of making them a foliage type. Since they remain as a static mesh, you can still use the foliage painting tool to add things like mushrooms, creepers, and hanging moss directly onto the tree.
Overall, nothing in this scene is that complicated on its own. It’s just a lot of little pieces working together. I hope to keep adding to my foliage library in the future now that I have a better understanding.
Hidden Shrine: Game Location Production
Interview with Emily Henderson
Check out Emily Henderson talking about her early experiments with environment design during an awesome class.
My name is Emily Henderson and I am an Environment Artist based in Los Angeles. I received my Bachelors in Fine Arts with a minor in mathematics from Whittier College. At the time I felt incomplete, therefore I attended Rio Hondo Community College where I enrolled in their 3D Animation program. I quickly and enthusiastically made the transition from traditional to digital 3D art. Understanding the possibility of obtaining a job in the gaming industry sparked a fire in me that is everlasting.
After completion of the Animation program, I began taking classes at CG Master Academy. Taking courses at CGMA has proven to be one of my best decisions. So far I’ve completed Foliage and Vegetation with Jeremy Huxley and Texturing and Shading for Games with Kurt Kupser. Both classes have pushed my artwork to the next level and put me in connection with some really amazing artists. Soon I will participate in their new class The Art of Lighting for Games with Omar Gatica. I would definitely recommend looking into CGMA for any artist who wants to take their work to the next level, or anyone who just wants to learn something new!
I currently work as an accountant. However, through learning and meaningful experiences at Rio Hondo CC as well as CG Master Academy I hope to gain employment in the gaming industry in the near future.
I developed a scene entitled Hidden Shrine while taking Jeremy Huxley’s Foliage and Vegetation classat CGMA. Concepts and ideas are the first step in creating any scene. My idea for Hidden Shrine stemmed from a long time obsession with many Japanese shrines, as well as various anime. I have always been fascinated with the blurred borders regarding man made and the natural environments. I explored the concept of nature winning in a battle against man, and the peace that comes from the revival of the natural environment.
My main tasks included juxtaposing natural beauty with Japan’s manmade environments and cities.
Gathering references photos is one of the most important aspects of creating a solid idea. I put various images together in one .psd file so that I could collectively view them and make sure they fit together. Once I have enough reference photos, I break the idea down piece by piece and form a Style Guide. This is so that the scene become simpler and easier to manage. At this point, I think about what kind of plants and assets I want in the scene, what architectural structures to use, as well as other aspects such as textures, atmosphere, lighting, and color palette.
Blocking out a scene is very experimental for myself. Sometimes I start by sketching around in photoshop, however for this particular scene I really didn’t know what layout would work. Therefore, I began with rocks and tree bases that I knew I could use several times throughout the scene. It is an unnecessary a waste of time to make countless of unique rocks. One trick I use to be time efficient is making a single rock that would look different from multiple angles and placements. I also knew I would radically scale these rocks to different sizes so I did not sculpt any micro detail into the rock. Instead, I kept this as simple as possible, while still showing an interesting silhouette. This is because details can be added later with fairly simple shaders.
Unreal’s Landscape tool is very powerful. This tool was used to quickly block out the terrain and get an idea of what I wanted. Several iterations were made and then scrapped before coming up with something that would work. It feels abstract to layout an area that will be filled with vegetation without actually having the vegetation yet. I found it important to not get too attached to anything since it may not work in the end.
Once I had a layout that I liked I’m always sure to share my idea and get opinions from others. One of the most helpful things for me in making this scene simply came from me asking for help and critique from my mentors and peers.
Foliage and Vegetation
For me personally, foliage and vegetation is best made in Zbrush. I generally used a 2048×2048 document size. This isn’t standard when you open Zbrush but it can be changed at any time. Using a square document makes it easier to grab textures from it when finished.
To begin modeling I break down the plant into its smallest parts. For my cherry blossom tree that meant breaking it down from branches, to twigs, to stems, and then finally to buds and petals. For something simpler, like vines, it only needs to be broken down into segments, leaves, and stems. This method was used for all my foliage. I started by making a single leaf from a sphere. I dynamesh it to something low like 128 or 256. It’s much easier to keep the dynamesh low until I am sure about the general silhouette. Once satisfied with the leaf sculpt, I use polypaint to texture it. Several of my peers used other programs like photoshop or substance painter, I found there was no one right answer. Substance Painter is a very strong program and I use it to texture other, more unique, assets.
From the single leaf, I duplicated and altered it to end up with three or four variations, generally ranging from alive to dead. The variations then are placed around a stem to create sections of the plant. I then arrange sections of plants in the borders of my document, keeping a square setup. I think of it like a UV editor in Maya. Putting a plane behind it will help with this and also allow you to control the color of the background.
The Diffuse, Normal, and Height maps can all be taken directly from Zbrush using GrabDoc. To get these maps, go to the render settings and make sure shadows are turned off. Then set the rendering to flat and immediately you have your diffuse texture! To export the material, go to the Texture tab, then GrabDoc at the bottom. Hit export and save!
You can repeat this process using the normal material to get the Normal map. Similarly you can export a height map by right clicking on alpha and GrabDoc from there. A little bit of editing can be done in either Substance Designer or Photoshop to these exports to make the Alpha, Roughness, and Ambient Occlusion map. For the sake of efficiency in the game engine I like to channel pack my textures. I put the Alpha map in the alpha channel of the diffuse map. In a separate texture I pack my Ambient Occlusion map in the Red channel, Roughness in the Green channel, and Metallic in the Blue channel.
A single plane is created and assigned a new material named accordingly. I then cut out each leaf and bundle and separate into single objects. I like to keep the Preserve UV setting on, it helps when cutting out the segments. Then, vert and edge manipulation is needed to form them into their proper shapes. Maya doesn’t handle alphas very well so I simultaneously work in marmoset to make sure things look the way they should and leaves aren’t floating in mid air.
The majority of the scene will be covered in natural elements, but I needed a few architectural pieces and small assets to bring everything together and tell a story. Everything begins or ends in Maya. The temple itself is built from many modular pieces and a few unique ones. The Torii proved to be a challenge since it was so large. The two Komainu were the most fun assets to model. Prior to this scene I was mainly a hardsurface modeler, so to play around with character-like assets was quite fun. They began as blocks in maya and were then sculpted in Zbrush. Everything was baked and textured in Substance Painter.
Substance Painter has been the absolute best program for both baking and texturing unique assets. It even has options that allow for a streamline workflow right into Unreal.
I used Substance Designer to make all of my procedural textures. I have to thank Jeremy Huxley’s CGMA class for helping me understand Designer, because it was quite daunting to learn on my own. I made a range of fairly simple materials. The Loam material was made from height maps, from my Zbrush sculpts, blended together.
The bark texture was by far the hardest material I’ve made. Node based texturing didn’t come easy to me and it was a challenge to make something so organic through such a mathematical process. Just like any other challenge I broke it down into parts and tackled it piece by piece. There is also a great breakdown tutorial from Peter Sekula that helped fix some of the problems I was having with this material.
Unreal also uses nodes in its shaders. Master materials can be made using maps exported from Substance Designer. A common mistake of mine is to make textures too saturated for real life. Setting up a good master shader in Unreal is useful for changing things like saturation, roughness, and other parameters on the fly in real time. It also allows you to make instances of the same material very quickly and easily.
There are five lights in total in this scene. The most important of these lights was the directional light. Directionality is very important in games and I note that most often it is light that points a player in the direction they need to go. I used that same method in this scene. The most important light was the Directional light that I used this to light up the areas in the background, while leaking through the trees and lighting the path. The best lighting suggestion I was given was to move the light in a way that produced volumetric light rays or as many like to call them “God Rays”. They create diagonals over the scene and make the it feel more dynamic. These rays can only be seen from specific angle situations, which proved to be a challenge, but I made sure they could be seen from the most common and important ones.
Using Unreal’s Detail Lighting render relieved some of the noise and confusion created by color. I wanted the Temple to be the main focal point, but the directional light source comes from behind it. So, I placed a spot light towards the temple and set it to a low intensity to illuminate the facade. Sometimes it’s best to cheat the “real life” scenario and go with what actually looks good.
Challenges and Lessons
My biggest challenge was my tendency to obsess over polycount and texel density. I like to make sure things are technically correct and would make sense in the real world. This doesn’t always work or translate well in a game engine so it was a challenge for me to let go of some of those things and focus on making it look beautiful rather than be technical. Especially for a personal project, things like polycount and texel density just don’t matter as much as the overall image. Letting go of my obsession has really pushed my artwork forward to the next level.
Time was also a challenge. There are many things in this scene I would love to have spent more time on, but I also felt it was important to not get stuck on any one object. Artwork can always be pushed further and is never ultimately finished, but at some point is important to call it done and move on to new work.
Recreating Uncharted's Environments with UE4 and Substance
Interview with Yury Vorobiev
Yury Vorobiev did a breakdown of his amazing fan art environment based on Treasury Courtyard from Uncharted 4.
Hi, my name is Yury Vorobiev and I currently live in Saint-Petersburg, Russia. I received my master’s degree in mathematics and applied informatics, after that dive into 3d art. Before graduation, I had a job as a 3d designer, where I model hi poly ship equipment and create training videos for them. For a start, it was an interesting job, but I felt that I was closer to gamedev. So after this job, I went to an art bootcamp, where we created game-ready character within 6 weeks. There I learned the basics of sculpting, proper hi poly and low poly creating, baking and texturing. And now almost a year I work as a 3d artist.
About the project
I have long wanted to try myself in the environment art and also I felt I needed a stronger portfolio piece to replace older works, so I started looking for some cool concepts and ideas on the internet. I wanted to create a not too big scene, but with a lot of vegetation and also man-made stuff. So what can be better for this idea than not Uncharted, and I dwelled on the idea of recreating treasury courtyard in UE4.
The main goals were to learn more about modularity and environment creation, substance designer for creating tileable materials. And also learn how to make great vegetation, because it is very important in modern games.
I started by gathering a lot of references to have a clear view of all the details and proportions. At this stage, my friend Alexandr (many thanks to him) helped a lot, by lending me his ps so I can make all the necessary screenshots. For vegetation, I found many references of a tropical forest.
For the planning stage, I created Trello boards and calculated the approximate time for each stage. Architecture planning took about 1 month; 1.5-2 months for vegetation; about 1 month for statues; 1.5-2 months for props and texture them; 1 month for Substance Designer; and 1 month for all Unreal stuff.
When the planning phase was over I began blockштп out main architectural elements inside 3ds Max. I started with side columns and built the remaining proportions. I’ve imported everything in Unreal to feel proportions in the game in relation to the character.
Workflow with the assets
My blockout was quite detailed, so I only had to decide what geometry will be baked and what will be left for the tile textures. I made high poly and then baked them. And for the tiled assets, I just added support edges where needed. In light green color I marked all architecture that uses tiling textures.
I wanted to achieve the feeling of a long-abandoned placed. And also to show that there was a fight. And for this, I destroy some of my architectural elements.
For this stage, CGMA class Vegetation and Plants for Games by Jeremy Huxley was super helpful and amazing. I started with sculpting simple grass leaf inside Zbrush. Than polypaint it and made several more. After that, I tweak every leaf a little and bring more variation to the color. And finally with grabdoc get albedo, normal and opacity textures resolution 2k. I also generate AO inside Substance Designer and roughness map from albedo with little tweaks. And finally, inside 3ds Max I joined leaves to form different grass shapes.
Next step was to create some flowers. The technique was pretty much the same.
After that, I started making trees and tree roots. First is a tree trunk. I made them inside 3ds Max using splines crossing each other. And when trunks are finished I started to create canopy same as grass. When making meshes in 3d max I tried to minimize unused texture space on geometry for optimization purpose.
Also, I made several ferns, lianas, ivy, bushes, and more flowers.
For vegetation, I create simple master material in which I can control subsurface color and color variation. Be careful with Speedtree Color Variation, because too high values will cause bizarre variation.
All grass, flowers, and canopy in the scene where placed with unreal foliage painting tool. I use a small hack to paint easier: I made invisible help planes, they only have a collision. And I paint ivy and grass on them.
For the props, I set a deadline for myself about 2- 2.5 months. So I will not be stuck too long on one asset. My modeling approach is based on a low poly workflow. First, i make low poly asset in 3ds Max, then from by adding support loops, I get hi poly mesh. And after that unwrap with UVLayout. For texturing and baking assets in this environment, I used Substance Painter.
For some assets I use parts from my previous works, with them I made Avery sign and capitol.
Other assets built from scratch. I started with unbroken meshes.
When these props were ready I just broke them. Noise modificator was super helpful for this.
For statues, I had a slightly different pipeline. I sculpt them inside Zbrush without diving into the details, i need only what affects the silhouette. Then i use Zremesher, unwrap resulting mesh in 3ds Max.
After that import mesh inside unreal and adjust plaster material with moss blend. That was a lot faster and economical for resources than sculpting everything super detail, bake and manually paint all assets.
I made a fairly simple master material in which I can tweak brightness, saturation, contrast and change color.
All tileable textures I made in Substance Designer. Creating them was a great challenge for me. For the scene, I created cobblestone, marble. plaster, moss, bark, and few different types of ground.
Every texture I start with normalmap. For the bark, I created 3 small barks and arranged them with tile sampler.
For the plaster, I blend many different noises to achieve desired effects.
When I satisfied with normalmap, I move to albedo and roughness. Trying to keep my albedo not too contrasty and not very dark for the proper lighting reason. Later I can also tweak my textures inside unreal with the master material.
I didn't use trims a lot, only for a few elements. Instead of them I set up 2 blending materials inside unreal for ground and plaster. So I can add some variation to my architectural elements and ground
Lighting has always been a difficult topic for me, so I wanted to improve my skills in it. Luckily I discovered super helpful tutorials on youtube called Unreal 4 Lighting Academy. It helps me a lot in understanding more about light, different lighting techniques and post processes. First of all, I turn off auto exposure for better viewing light.
I decided to use baked lighting. Started with directional light and set up the right angle for it. Also, I added SkyLight, LightmassImportanceVolume, ExponentialHeightFog and default unreal sky.
There is a useful function Lightmap density. With it help you can figure out lightmap resolution for each asset. Blue colors – low resolution, green – higher and red is extremely high. With its help I set up all my lightmaps. For all assets, in the shade and in the distance I don’t need too high resolution, so I set them lower, and others I keep in green color. Since I do not need too much light data on every leaf I also keep them pretty low on lightmaps.
I wanted my shadows to be not too dark and also softer in the far. And for that, I use pretty high indirect lighting intensity in directional light and also turn on Area Shadows for Stationary Light. Here is the full setup for it.
Next I setup SkyLight. Nothing too complicated here, just added hdri from epic courtyard, add some color to the light and change lower hemisphere color.
Because I was working on version 4.17 multiple light bounces where calculate not so correct (in 4.18 epic’s fix it) and objects in the shadows where too dark, but this does not happen in real life. So to fix it I downloaded multi-bounced sky lighting by Luoshuang ( https://forums.unrealengine.com/development-discussion/rendering/112827-lightmass-multi-bounced-sky-lighting?140006-Lightmass-multi-bounced-sky-lighting= ) Comparison on RealisticRendering demo. Left – old one, right – with downloaded fix 10 bounces
When I had approximate light settings I setup auto exposure in post process volume. Proper light setup is very repetitive, and so I returned many times to the directional and skylight to tweak some settings. And when I go for work, I left my light to build up. I ended up with this lightmass settings.
After all light setup was finished I proceeded to post process volume and started with color grading. First I try to make LUT’s, but I realized that for me it is not very convenient and I use built-in color grading wheels.
When I was done with color grading I add some more effects.
And as a cherry on the cake, I placed sphere reflection capture where it needed. Not so optimal, but works for me.
When I started making this scene I knew, that I don’t need good real-time performance, so I don’t care a lot about LOD’s and optimization. For example, my pc not super good and I have 12 fps in the scene at 1920×1080 resolution, which is quite good for not optimized scene. And there are almost 6 million triangles. To increase fps I would definitely create 2-3 LOD’s for my assets, especially for the grass and statues, they will benefit most from this. Because of the static lighting light don’t affect performance too much. However lower and optimize some lightmap resolution can help. And too much unnecessary reflection captures will cause fps loss. Also, disable some effects in post process like Depth of Field, Screen Space Reflections will have a positive impact. Setup draw distance for some meshes also would be a good idea.
I hope you enjoyed this breakdown. Thanks for reading and good luck!
Creating an Ominous Scene in UE4
Interview with Ilya Ivanov
Ilya Ivanov did a great breakdown of his Possessed Tree UE4 project.
Hi! My name is Ilya Ivanov, I work as a Level Artist at Sperasoft Studio in St. Petersburg, Russia. Before that, I worked at Trace Studio on such projects as Call of Duty: Infinite Warfare, Arktika 1, World of Tanks and others. In addition to the main job, I do freelance and had an opportunity to work on such projects as Armored Warfare, Skyforge, and Mutant Year Zero: Road to Eden.
I got a master’s degree in electrotechnology in The First Electrotechnical University LETI and during my studies, I was engaged in self-learning 3D graphics, and developing my skills in music and drawing.
Since school, I’ve been interested in the games series WarCraft, Command and Conquer, Heroes of Might and Magic, Disciples, Dungeon Siege. But the undisputed leaders for me have always been such games as Diablo, World of Warcraft and Ragnarok online. In my opinion, fantastic worlds of these games shaped my taste and enthusiasm and inspired me to create environments for games.
Start of the Project
The project Possessed Tree appeared out of a desire to improve skills in working with vegetation since 99% of my entire work was mainly hard surface and it lacked something alive.
Fortunately, I caught a sight of the CGMA course Vegetation&Plants for Games by Jeremy Huxley and I immediately became one of his first students. Feedbacks, skills, advice on composition, sculpting and texturing plants, working with the shape of both plants and stone structures and trees that I received during the course, were very useful and highly affected my project.
My work began with a single concept painted by Marek Madej for the game Witcher 3: The Wild Hunt. I realized that I wanted to create such a scene! I like the Witcher’s fantasy setting, but the game is also very realistic, so this concept was almost perfect for my purposes. There was a lot of vegetation in it, and it also depicts a dark atmosphere that is not so easy to express.
Next, I collected the references for the main elements, which I thought could be in my scene. I decided first to determine the type of the terrain and what plants and trees can grow on it, what materials can be used, stones, various ruins and so on. The main task at this stage for me was not to invent something new but to use what nature has already made for us. For many of my references, I used the Quixel Megascans library, where I found a huge number of objects that were broken into biomes, which helped a lot in my work. I used the library of materials and objects more than once. Many thanks to the team for the great work!
Having analyzed my main reference, I decided that the focal point in my scene would be the tree. I chose a very interesting species of oak – the oldest in the world, which is about 1500 years old!
When I proceeded to the concept piece of the scene, I was trying to stay close to the concept, but as usual, it did not look so good in 3D. I changed the landscape, rearranged the trees, changed the composition of stones. In the beginning, the scene looked like this:
I got a lot of advice from Jeremy about how to work with the composition, how to make an interesting shape of the stone structures and that the scene needed to be built based on the atmosphere and feeling.
Around the 3rd week of the course, I already had a completed block-out level. Using Maya and ZBrush, I created simple trees, branches with leaves and stones to fill the scene. They all were changed later, and only the stones remained untouched until the very end.
As my work progressed, one thought didn’t let me go. I felt that I had definitely forgotten something important.
I completely forgot about any sort of storytelling and didn’t work with my reference correctly. The concept worked very well with the general atmosphere in the scene, but it did not have an interesting story behind it which is the most important part of any environment.
I paused my work and decided to continue looking for an idea and story references. At that time, an interesting artist Ross McConnell caught my eye. He creates maps for tabletop RPGs and in his artwork collection, I found the starting point of my whole story of the scene. In addition to that, I found a couple of screenshots from Hellblade: Senua’s Sacrifice and decided to add some elements from this amazing game to my surroundings.
The idea was the following: the tree grows in the place of the malignant energy concentration and to stop the spreading it was decided to tie the tree down with bewitched chains. The chains send energy to monoliths enchanted to restrain the evil energy. Because of the amount of accumulated negative energy, the monoliths have almost collapsed and could no longer contain the evilness as before and the negative energy slowly began to appear on the surface and form drops of blood.
The foundation was set and the story was described. It was the time to put everything into practice and work on the assets.
I tried to avoid working in the vacuum as much as possible, which means that each asset should have fit the scene and be the part of one whole. I did constant editing of the materials and textures, adjusting light and color in the scene, and so on. This took quite a lot of time, but in the long run, it worthed it. Do not dwell on how it is turning out, but try to make it as good as possible and look at the whole picture, – that was my thought.
Vegetation & Simple Objects
For simple objects, I created a simple M_BaseProps shader that does not contain anything over the top. It allowed me to control the specular level from the red channel Base Color, change the intensity of the color, specify metal or non-metal, change the surface roughness immediately.
For plants, the standard two-sided foliage also gave more control. For SSS, I used the base color texture but reduced the intensity.
Stones are one of the main components of the environment and the main task was not to overload them with extra details and leave enough simple forms that would work in almost any situation. I chose a more angular silhouette to convey an atmosphere of tension and anger.
The same material was made in the Substance Designer and further processed in the Substance Painter.
Also, I made several sets of small stones with a more rounded shape for the additional detailing of the main array of stones.
At first, I made trees and branches in Maya and ZBrush, but it took a very long time and the result was not very realistic. In the end, I decided that if I want to achieve a believable, beautiful and realistic effect, I need to use SpeedTree. And it wasn’t a mistake! I created 4 variations of the trees in one evening and immediately exported them to my scene. There is a very convenient feature in SpeedTree: when importing to Unreal, it grabs and imports materials as well as lightmaps. What a great program!
I used the roots to detail the slopes. I made them with ZSpheres in ZBrush and also used an amazing plugin for creating the trees ZTree by Ignacio Cabrera Peña. Texturing was made in the Substance Painter.
For the leaves, I used a stunning library created by Wojciech Piwowarczyk. The same leaves but blended with the soil material were used for the terrain.
Branches, Bushes & Grass
These assets were taken from the amazing Quixel Megascans library! It was exactly what I wanted to see in my scene: dead twigs, dead branches, dry plants, and the coolest fern. It helped me to save a lot of time, and I’m immensely grateful for.
Making grass was a bit challenging. I took 4 kinds of plant grass, combined them into an atlas with the help of Substance Designer, cut out the geometry by the silhouette and combined it in small clusters the way it works in real life.
To create an atlas I used the Atlaser by Bruno Afonseca nodes.
The idea of adding simple objects like crows skulls and beads was taken from Hellblade: Senua’s Sacrifice.
Shaders for Mossy Objects
The moss was originally made from a photo from textures.com and corrected for the needs of the scene.
The shader was used on the objects where the moss should’ve appeared. I laid it down from above, made a transitional layer, and mixed it with a mask to remove the smooth edges. There is also tessellation only in the moss area and a small push for volume. But the most important thing in the moss is Fuzzy Shading which allowed to give such a fluffy, volumetric effect.
In addition, I added detail normal map because the size of the mesh can vary, and it is required to preserve the clarity and readability of the textures.
As the idea of the scene was formed, I knew that these monoliths should stand out. They are disfigured, cut up by stretched chains, the surface became ashy as the blood from the earth starts to seep through. It turned out very gloomy and cool!
The sculpture is made in ZBrush. The material is the same as that of ordinary stones, plus additional work in the Substance Painter with different generators and masks.
For the chains, I made a simple geometry and processed it in ZBrush. As the Tree and Monoliths were already arranged in the scene, I let the chains go through previously prepared splines and transferred them to the engine with the help of MASH in Maya.
It was possible to do everything with blueprints at once in Unreal but as usual, the smartest solution comes when everything is already done.
The Possessed Tree is the protagonist of the whole scene. The reference itself dictated how it should look: strange, terrifying, interesting.
The basics were done using ZSphere in ZBrush. It helped to keep some kind of angularity of the tree structure. Then I made retopology in Topogun and added more branches in Maya using the spPaint plugin.
The mapping was very simple since I unwrapped it in the UVLayout program and I had only 3 kinds of unique additional branches. UVLayout has the ability to find a similar geometry and unwrap it equally despite the small changes in the size, for example. This saved me a tremendous amount of time!
I made the bottom part of the tree as if someone tore the bark off and it became seen how the blood flowed through the tree.
Thanks to David Chumilla Liccioli for the texture of the oak. Excellent quality scans! I just made small adjustments to the albedo to achieve the color that I needed.
The shader was made based on the super detailed explanation from the guys from Sane. I am very grateful for the work. I believe, a lot of information is mandatory for learning.
My shader came out a bit expensive, but since I wanted to do it nicely and learn as much as possible, I decided to leave it as it was and did not remove tessellation and the ability to draw puddles. I limited tessellation with camera view, which helped to improve the performance.
I made puddles as a translucent material with a depth effect and a slight dithering effect along the edges to remove sharp boundaries.
With the help of the Substance Designer, I created materials for the terrains. There were 5 materials: Puddles, Soil, Soil+Roots, Soil+Rocks, Soil+Leaves. Soil became the main material and further materials were added to it through the heightmaps.
I positioned the shapes on the canvas through a series of tile sampler nodes, mixing different masks and noises, and overlaying / splitting / adding them on top. Various small objects such as leaves, twigs, pebbles were added to them.
The main thing, in this case, is to get an excellent reference and not to be afraid of making mistakes in the process. The more experiments you do, the better result you get. I advise you to look at tutorials from Josh Lynch and materials from Chris Hodgson. They are incredible masters, and I learned a lot by studying their work.
Working with the light took me a lot of time. It was very difficult to achieve realistic lighting with such clouds as I had in my scene. I had to constantly change almost every parameter, the angles of light sources and the intensity of the skylight. But the pain was worth it!
The lighting in the scene is static, with baked shadows to get the best result. All the work with lightmaps, except for the lightmap for the tree, was taken over by Unreal itself and it did really well!
There is a very informative video about the light settings. I advise everyone to take a look at it:
In the scene, HDRi map is used as a source of Ambient Light, Direction Light, and Sky Light. There are no additional light sources. In order to get the most out of the photo of the sky, in the material for the skysphere I used the DeriveHDRfromLDR node.
Volumetric fog hugely influenced both the lighting and the overall atmosphere, bringing volume and depth to the scene. Everything immediately began to feel more alive.
Post-Processing & VFX
The post-processing was the simplest part. I made a small color correction in Affinity Photo, some work with contrast and level, several tweaks in LUT and it was finally loaded into Unreal. I’m a fan of the idea that you need to get the maximum out of the picture without post-processing, and then use it only to polish it a bit.
There are few effects in the scene and they are barely noticeable. They were added to simply emphasize what is already in the scene. I added dust floating in the air and birds flying in the sky. That’s it, nothing serious.
In the beginning, I could not imagine what the result of the project would look like. It gave me the strong boost both in the technical and artistic ways. The CGMA course contributed a lot to the groundwork for my project. I think that it was important not only to work directly with the teacher but also to exchange knowledge with the students from the course. Working in a team is an important part of the learning process!
I want to thank all my friends, colleagues, everyone who left feedback, comments and shared experience with me. Thanks for your support!
A Forest Path
Interview with Rhiannon Catton
My name is Rhiannon Catton and I’m currently a Senior Environment Artist at Capcom Vancouver. I graduated from the 3D Art and Animation program at BCIT in 2007 and was hired at Radical Entertainment as a Junior Environment Artist right away. After that, I was at Blue Castle Games/Capcom Vancouver working on Dead Rising 2,3 and 4.
Over the last year, I’ve been specializing in surfacing/material creation with Substance Designer and ZBrush. Prior to that, I was more of an environment art generalist working on everything from level layout, modeling, texturing, collision and bug fixing. Most of my professional work has been with proprietary engines and toolsets, focused on more urban environments primarily. I’ve always wanted to get a better grasp on foliage creation and organic environments. Having a deeper understanding of UE4 has also been a focus of mine recently.
Forest Path: Preparation & Goals
The ‘Forest Path’ is a scene I worked on as part of CGMA‘s 6-week Vegetation and Plants for Games with Jeremy Huxley course. I spent a couple of weeks prior to the course beginning to take reference photos in various locations in Vancouver.
My key reference shots came from Stanley Park. I was looking for composition ideas as well as specific materials, shapes, and lighting reference. Some limitations were on my mind as I did this: I only had 6 weeks to complete this scene (evenings and weekends while working full-time) so I knew I had to keep the scene small. Game-wise I was inspired by Horizon Zero Dawn and the Uncharted series for the lush overgrowth, foliage color, and lighting. My reference gathering trip to Stanley Park was taking place in January when it is not so lush, so I had to supplement with web reference from Stanley Park in summer. I lucked out one day and took these shots that became my key inspiration for composition and lighting:
I knew I wouldn’t stick to this ref 100% as there would be weekly assignments that I would follow as well as feedback from Jeremy and the other students. I also knew there would be no time to table flip the scene either so I committed to this idea as much as possible.
My main goals for this scene/course was to work on a natural environment, learn a solid technique for foliage, trees, and rocks and gain more experience in UE4.
Approach to the Scene
My approach to this environment was to be 100% open to what Jeremy taught us and to follow the course outline. I was looking to go outside of my comfort zone with this course and try new ways of working.
My regular way of approaching this scene was:
- Gather as much reference as you can. Take your own photos and spend time in the environment if possible. There is something amazing in seeing the light hit surfaces in real life that’s very hard to get from just web reference.
- Refine this reference. Instructor or Art Director eyes on at this stage really help!
- Block out the scene in the engine. I use proxy meshes created in Maya for large elements such as rocks, trees, and ground. Getting basic composition and lighting in early gives me a sense of what I need to build and what will need the most polish. Also getting more feedback at this stage makes it easier to make changes.
This was my first block out for the course using early iterations of plants, trees, and rocks:
Sometimes in a production of the environment, a lot of what comes next is based on time. Do I have time to sculpt this element? Do I have time to build my material sets in Substance Designer? I was excited to see how Jeremy would approach it in the given 6-week time frame.
All of the foliage in this scene is sculpted and polypainted in ZBrush with the exception of the tree trunk which I did in Maya. During many of the weekly classes, Jeremy would demo his technique in ZBrush which was incredibly helpful. I started from a sphere and dynameshed in the large forms. For medium to smaller forms, I used a variety of brushes and deformation. The new transform tool in ZBrush R8 made it so much easier for me to lay out all the leaves and branches.
I used polypaint to rough in the base color. When possible I used scan reference such as textures.com 3d scan thumbnails to color pick. This gave me a nice base for any detailed texture work I would do later on. Using this base and the normal map from ZBrush I created the AO, height and roughness maps in Substance Designer. As the plants came into the scene I saw I needed to tweak the hue/saturation on some – that was done in Designer and a bit in UE4.
Here are some ZBrush sculpts from earlier on in the course:
And some texture sheets:
I went a little heavy with the polycount on the alpha cards for the ferns and branches to get some nice bending. These were used close to the camera.
It was nice not to worry too much about that for this scene!
I used the Two-Sided Foliage shading model in UE4 for all leaf/fern materials. I ended up creating subsurface color maps in Designer to make sure only the leafy parts of the textures were affected.
I wanted to use one rock for the whole scene which meant I had to think about scaling and rotation. I had to make the rock with an interesting silhouette from many angles. I also had to use a detail map so I wouldn’t lose texel density as I scaled it. To begin I sculpted some large shapes in ZBrush. It took a few tries to find a shape that would work for me. I started to chisel in some med detail, keeping in mind I wanted some crevices for moss to settle in. I didn’t sculpt in any smaller detail as my tiling detail map should take care of that.
Sculpt in ZBrush:
I then created a low res version with the quad draw in Maya, UVed and took this to Substance Painter for baking. I decided to add some rough color values in Painter as well: a slight green tint in some of the crevices for moss and some color variation over the whole rock. This was done with color fill layers and smart masks. I didn’t spend too much time on that as I wasn’t sure how much this would read under the detail map.
Next was my detail map which I built in Substance Designer:
I did a lot of experimenting with how this tiling detail worked over the base rock. I am very new to UE4 Material Editor so this was a bit of a challenge. I tried adding some moss with WorldAlignedBlend (moss would appear top down no matter how I rotated the rock in the scene as well as the tiling detail map. I got the rock to a certain point and thought I had better move on to the many other things I had to do for the week’s assignment. I put this on the ‘to-work-on’ list for the end of the class.
As the scene progressed I ended up covering these rocks pretty heavily with ferns and weeds so I left the rock as it was. This is one of those things I know I will come back to after having more experience with UE4 Material Editor!
I did all of my tiled materials in Substance Designer. I can’t describe how much I love this program! I started using it about a year ago and it was a bit intimidating at first. I quickly realized the power it gave me to iterate and build exactly what I want to build and studied many tutorials, basically anything I could find. But it wasn’t until I did the Materials Mentorship with Josh Lynch that I really clicked with Designer.
I’m still learning every day: from co-workers, online tutorials and by opening the graphs that people put up on Gumroad etc.
Here are some of the materials in the scene:
I have some basic guidelines I follow when working with Substance:
- height map first. I aim to get a solid read of the material here. I start with large forms and work my way to smaller detail as I move through the graph.
- roughness map next. This map is so important for surface read. I use the height map to get a basic material separation. There are many fine details that are not in the height or normal map that I will add. Surface scratches, scuffs etc. can make all the difference so I spend a lot of effort here. At this point, I will probably take the material into the engine and review it. If it’s reading as the right material then I will go on to the base color.
- when I first started using Substance Designer I rushed right into the gradient map/picker. I learned valuable lessons from many artists on how to build the base color slowly. I now start with uniform color and then slowly bring in controlled gradients based on specific shapes. Also whenever possible get color samples from scan data.
I had no prior experience lighting in UE4 beyond throwing a directional light in the scene when I started this course so I knew I had a lot to learn. Jeremy showed us a lighting set up from scratch. We used a basic sky sphere, directional light, skylight, and exponential height fog to start. He showed us some of the parameters in each as well as Post Process Volume set up and LUT table creation. This was incredibly helpful to me coming into this with no experience. I was able to get a working set up quite quickly but I spent days trying out different things and watching tutorials. I know it’s just the tip of the iceberg but that basic information got me really interested in continuing my education with lighting. Here is my scene progression from start to current state:
One of the challenges for me was time management and leaving certain assets to work on ‘later’. We had weekly assignments to complete that would keep us on track to finish our scenes. I gave myself the personal goal of posting on Artstation a week after the course wrapped up. That week gave me time to address any feedback Jeremy gave me as well as some input from some co-workers. It also stopped me from redoing and redoing again until I just never posted. There are definitely some improvements I would still like to make but having that hard deadline made me pick my battles.
Another challenge was being a bit of a beginner when it comes to the material editor and lighting in UE4. Jeremy did a great job of teaching the basics and demonstrating the possibilities of the engine. I feel like I have a strong foundation now and I look forward to diving into these areas.
Feedback: CGMA Experience
Jeremy did an awesome job teaching this class. It looked like all the students had varying levels of experience and abilities. He was able to be encouraging to all of us while also providing useful feedback and new techniques. Seeing other students work and progression was very inspiring to me.
Personally, I learned a lot about UE4 as I mentioned above. I also found Jeremy’s ZBrush demos to be very helpful, I tried all the techniques he showed us and it has really improved my organic sculpting in a few short weeks.
This was my first course I signed up for on CGMA. I had a great experience and I am looking forward to the next class that I start at the end of April – Texturing and Shading for Games. Time to explore the UE4 Material Editor!
Thank you for inviting me to do this interview. I always find helpful and inspirational articles on 80 Level so it’s amazing to be a part of it.
Creating a Stylized Chinese Landscape
Interview with Carmen Schneidereit
My name is Carmen Schneidereit. I am a 3D environment artist from Cologne, Germany. I recently finished my studies in game arts at the Cologne Game Lab. For my bachelor thesis, I joined a team to create an animated short film in Unreal Engine 4. My main responsibilities in the project were to create the 3D environments and lighting. Lighting has become an important aspect of everything I create as it heavily defines the mood and character of an artwork. Besides my studies, I also worked as a freelance artist and soon I want to move to a full-time studio position.
Catch It! Project (Cinematic in UE4)
Since watching Unreal Engine’s A Boy and His Kite tech demo I was fascinated by what can be achieved with real-time rendering in the field of cinematics.
During my university classes, and as a freelance artist, I only worked on game projects and didn’t gain prior experience working with cinematics. But I wanted to get a better understanding of this field. That’s why, for our bachelor theses, my fellow students Neysha Castritius, Raquel Rossetti and I formed a team to construct a real-time rendered short film called “Catch It!”. This short film will be released in 2019. Neysha and Raquel worked on the characters and animations for the film.
Chinese Mountain Landscape
The Chinese mountain landscape portrayed is one of the settings that I created for the project.
In the context of the narration, this environment is only depicted in the imagination of a girl and is part of a fantasy sequence in the film. A fantasy sequence portrays a state of dreaming or imagining. It is characteristic that a clear separation exists between the dream world and reality.
In this case, the goal was to make China look fantastical and colorful while for the corresponding real-world scene I used a darker and desaturated color palette.
I tried to create a specific look for the environment that I would describe as painterly realism. It matches well with the aesthetic of the stylized characters without being considered cartoony.
Even though the landscape is an imaginary place, its design is rooted in reality. The main inspiration for the scene is the Zhangjiajie National Forest Park, a landscape with a very unique mountain structure. One of my teammates traveled through China and brought back amazing photos from the Zhangjiajie National Park. It immediately became clear to me that I wanted to base the design of the Chinese daydream landscape on this astonishing park. The hit movie Avatar also found inspiration from Zhangjiajie National Park for its world of Pandora.
Before I started building the scene, my main goal was to learn more about this landscape: the materials of the mountains and stones, the plants and trees growing there and also to identify how other artists captured the essence of this place. I also looked at how traditional Chinese painters approached the scene. I identified three main elements that characterize the landscape: the long mountains, the pine trees on top and the fog between the mountains.
CGMA Vegetation and Plants
It was my goal to learn new techniques for producing vegetation. To help achieve my goal, I joined Jeremy Huxley‘s Vegetation and Plants CGMA class. I wasn’t the typical student: I had my own schedule, deadlines and was working on a fairly large scene compared to the beautiful small landscape corners that are usually created during the class. Still, I was able to apply the techniques and general knowledge that I learned in Jeremy’s class to improve the scene. Jeremy was a great professor and offered the freedom and flexibility that I needed to work on the environments vegetation during the class.
Blockout & Composition
I was responsible for coming up with the design of the scene, as we didn’t have a dedicated concept artist in our team. In my case, a lot of the design process happened in the engine comparable to prototyping with Lego pieces. I first drew a small idea thumbnail, then laid down a very basic layout where I added the elements important for our storytelling to the scene: the mountains, the temple, and the river. As soon as camera angles and character positions/movements were determined during the development, I adjusted the composition of the scene and tried to stage the characters readable in the environment.
The portrayed shot of our Chinese landscape aims to give an overview of the setting and introduce the viewer to the place. My goal was to design the composition in a way so that it leads the viewer’s eye to the Chinese temple. The temple is an element of importance: in the film, a postcard featuring this temple triggered the daydream of the main protagonist.
Fish and girl by Neysha Castritius, Animations by Raquel Rosseti. Raquel also contributed to the Chinese lanterns.
I had to constantly keep the movement of the film characters in mind. In the displayed shot, the goldfish is entering the scene from the left, so there needs to be enough space for the character in the center.
The vegetation was created with the help of ZBrush, Substance Designer, Maya, and Photoshop. For sculpting and baking texture maps of the plants I used the techniques learned in Jeremy Huxley’s CGMA class.
Leaves of plants and trees were sculpted and polypainted in ZBrush. While polypainting I tried to achieve variance in my plants: I painted areas that are dry and damaged and others that are fresh and juicy. In ZBrush I baked a normal, height and an albedo map.
From there I took my plant’s maps into Substance Designer, where I made adjustments and created maps for ambient occlusion, roughness, and opacity. Translucency and subsurface color maps were later painted in Photoshop. The meshes for my vegetation maps were modeled in Maya.
Translucency & Subsurface Scattering
Subsurface scattering is an important effect for realistic rendering of vegetation and many other materials. The leaves of plants have semi-translucent surfaces. When light is passing through a translucent surface, it is scattered inside the surface and may come out in all kinds of different directions.
Unreal Engine 4 offers features to simulate translucency and subsurface scattering. In addition to the standard maps (normal, roughness, albedo etc.), two additional maps are needed: a translucency map and a subsurface color map. The translucency map defines how much light can pass through the surface. The subsurface color simulates a shift in color that happens when the light is passing through a translucent surface. It’s also possible to use a three-component vector to define the color in the engine.
For the translucency map, it’s important that the elements that should not be affected by subsurface scattering, like the tree branches, are masked out.
This is an example of a basic shader set-up:
One of my personal goals for this project was to make my first steps in Substance Designer. I created a handful of base materials for this scene. The materials themselves are simple and are combined to more complex materials in the engine, for example by blending between the base materials via vertex painting and height blending to break the coarse linear blended look.
For the mountains, I combined a unique normal map, that I baked from my large mountain structures ZBrush sculpt, with an additional detail normal map.
What is the best way to study the lighting for a dream sequence? Are dreams well lit or dark? Do they have a color tint? Do my neighbor’s dreams look the same way my dreams do? We are unable to capture our dreams and usually don’t remember them clearly enough to study their look in detail. That’s why, for the lighting of this setting, I analyzed lighting in film and games that inhabit an imagination/fantasy sequence. I looked at different movies and games to detect patterns and get some inspiration for my lighting design.
The following examples are reference images from Blade Runner 2049 (USA 2017, D: Denis Villeneuve) and The Wind Rises (Japan 2013, D: Hayao Miyazaki).
I noticed that fantasy sequences that express a desire often use a strong bright sun as the main light source. The sun is supporting the feelings of joy and happiness that the protagonist feels in the daydream.
In the overview shot of China, I did something similar. I only used a directional light and a skylight to illuminate the scene. I wanted to have a lot of indirect light bounce and achieved that by adjusting my lightmass settings in the following way:
During an interview that I read the chief lighting technician Franz Hjuber said, that technically spoken, the mood is created through irregular lighting. Differences between dark and bright areas establish the mood. With that in mind, I separated the shot into two sides to create visual interest: one half is brightly illuminated, the other lies in the shadows. To make the temple stand out as a focus point, I searched for a sun angle where rays of sunlight would hit and highlight the temple. For other shots the lighting was changed, light sources rotated and keyframed in the Unreal Engine sequencer.
Usually, when working on the lighting for an environment, I use an HDRi sky and adjust its exposure to my needs. This time though I bought the Ultra Dynamic Sky from the UE4 marketplace. It offers many parameters to customize a sky for your scene. It allows you to simulate real-time day and night cycles and introduces several more dynamic lighting features that we found a good use for in our project.
I hope the insights into my creative process were helpful to you! Feel free to get in touch with me if you have any questions.
Forest in UE4
Interview with Eduard Grechenko
Eduard Grechenko kindly shared a greatly detailed breakdown of his environment made in UE4 within the CGMA course Vegetation & Plants for Games lead by Jeremy Huxley: rocks, vegetation, materials in Substance Designer, lighting, and more.
Hello everyone! My name is Eduard Grechenko, I’m an Environment Artist from Kursk, Russia. I don’t have a formal art education, most of my experience comes from working on Allods Online and Skyforge at Allods Team studio where I learned from incredibly talented and skilled professionals.
When I signed up for the CGMA course Vegetation & Plants for Games, I decided to focus on learning how to make everything from scratch, without using scanned assets directly. I used them as references and color sources a lot, though.
The course turned out to be a game changer for me. It would take me so much longer to achieve these results (if at all) without taking it. I definitely improved my sculpting and texturing skills, learned a lot of new techniques and got many useful tips from Jeremy with weekly feedback on my work and during QnA sessions.
As the main reference, I decided to use this photo I’ve found on the internet.
I use Pureref to work with reference sheets. It automatically groups images for you, works fast, doesn’t produce heavy files and has a lot of nice features to make your life easier.
The base of the scene is made of a single rock model duplicated many times, a very simple terrain and a water plane.
The blockout was done in Unreal Engine. It was a bit challenging to build everything with a single model and I ended up making a larger group of rocks to cover background areas more quickly. It helped to have large and small rocks clustered together a little. I made a couple of small round rocks at the very end to make the transition between ground and water more interesting.
The sculpting of the rocks has been a big challenge for me for a while. After studying the subject for some time, I learned that the key components here are silhouette, shapes, and composition.
High poly model of the main rock
Previously, if a rock I was sculpting didn’t look believable, I would start chipping and trimming the entire surface hoping this would help it look like a rock. Sometimes I would merely get mediocre results, but more often than not I would get lost in details and make the situation worse.
Learn from my mistakes and remember: surface details are never a problem.
Build your primary, secondary and tertiary shapes. Put simply, make sure you have large, easy to read shapes as well as smaller ones. If your rock is composed of the shapes of the same size, it’s going to look boring and unnatural (like one of my previous attempts on the picture below).
Flow is also important. Make the shapes of your rock support each other, have some directionality. Make them follow invisible guidelines if you will. If the shapes of your rock are all rotated at random angles, you would have a hard time making it work.
Even with all that in mind, building the main shapes could be very challenging. To learn how to do this, I bought a few rocks from Megascans, made screenshots from different angles and tried to replicate them, get similar shapes ignoring surface details. I immediately noticed my workflow changing.
A model I made after practicing with scanned rocks (not in the project)
Using surface alphas helps a lot. You can totally work without them of course, but they can really speed up your process. They look very natural and instantly add a certain level of complexity to surfaces.
I would only say don’t rely on them too heavily and keep the main shapes and composition in mind.
A few helpful links for crafting rocks:
- Stylized Rock Brushes by Jonas Ronnegard
- Rocks from Megascans come with surface alphas
- And a great video lesson by Erik Jakobsen.
I used a pretty standard set of brushes here: Clay Tubes, Trim Smooth Border, Trim Adaptive, Trim Dynamic, Orb Cracks, Planar Cut (with DragRect stroke type), Move and the alpha brushes I mentioned above.
This model was not supposed to become a game ready asset. Just like the rock model, it’s a decimated high poly mesh unwrapped in Maya. I wanted it to look as pretty as possible because it supposed to be positioned right in front of the camera in the scene.
I started this with a simple sketch, built a rough mesh in Maya from the cylinder, separated the bricks so they could be converted to subtools, sent 1/4 of the circle to ZBrush and gave it a rocky look by trimming the edges, adding damage and applying surface alphas.
All the vegetation in the project was sculpted and painted in ZBrush. I added an extra level of detail for a couple of plants in Substance Designerlater (see the breakdown in Substance Designer section below).
I used a few brushes you already know and love – Move, Standard, Dam Standard, Trim Dynamic, Orb Cracks, Pinch and a couple of others.
For me, sculpting it all was the most fun. I’ve had a few challenges of course, as these Ivy leaves, for example.
I just couldn’t get them right at first, they looked unnatural somehow. Then I took a pen and a piece of paper and drew a couple of leaves. I immediately realized what the problem was – I forgot to think about them in terms of simple shapes – bent lines, S-shaped lines, and points. Once I figured that out, I was able to get the silhouette right in no time.
For the polypaint stage, I imported albedo maps from Megascans in ZBrush and assigned them to a plane which I then used to pick colors from. As you can see on the picture above, Ivy looks pretty flat after the polypaint stage because the same leaves were scattered everywhere along the vines. We are going to look at the ways to fix that in a bit.
I started the canopy with sculpting and painting a single leaf and making a few variations from it. I then made a couple of small branches with 7 leaves each.
After that, I made bigger branches and populated them with the smaller ones. I made 6 different branches that later became cards in Maya.
I used the same approach with the low poly meshes. First I made the cards, then branches, populated them with the cards and finally populated the trunk with the branches.
It was I bit challenging to make branches in Maya from scratch, so I made a couple of sketches of them and a trunk in Photoshop (just branching patterns, really simple), imported them in Maya and worked on them with comfort.
Finally, populating a trunk was no different from the previous steps. I ended up having 7 different branches. I started placing the largest of them at first to get an idea of the silhouette and continued with the others.
The final poly count of the tree is 11150 triangles
At this stage, I tried to mask the repetitiveness of the albedo map, make each individual leaf look a bit different from the others, get crisper details, color variation and contrast.
Here I’m trying to get brightness variation by applying color to a Perlin noise:
Adding contrast to the vines. I’m using Color to Mask from Albedo map to isolate the vines. I could’ve made a color mask in ZBrush of course, but this way works as well.
You shouldn’t bake AO information to your albedo maps, but this is not what I’m doing here. I’m applying a color that I can clearly see on the reference. I’m going to reduce the AO effect a little with the next step.
I’m emphasizing the veins here because they came out very thin. I’m making a mask from Curvature Smooth and subtracting the vines from it so that only the leaves get affected. It also helps to reduce AO effects from the previous step.
And finally, I’m adding some reddish color to get more variation. I’m pretty sure I didn’t need so many nodes for the color because the overall effect is very subtle. The most important node in the mask chain is Curvature Smooth. Other nodes are multiplied on top, subtracting different elements. Vines and edges of the leaves are subtracted with the help of Histogram Select, and AO is removed by the corresponding node. Everything in the middle is left on the mask.
The FX-Map here randomly shifts the input image vertically and rotates it by 0 or 180 degrees every turn.
Applying more warping and building a base with a tile generator. Then increasing Pattern Size X or Y of Moisture Noise gives it a nice wood fiber effect.
- Albedo map
Having a good reference image is vital here. I used one of the bark albedo maps from Megascans.
The algorithm here is simple – analyze your reference, decide which of the characteristics you are going to implement (edges, slopes, cavities, random spots, moss etc.), think of the ways you can build masks for them and “paint” them in separate layers.
Don’t try to get all of your colors in a single Gradient Map, always do it layer by layer with new gradient maps and noises.
Here I’m trying to get thicker slopes. After blending Get Slope with inverted AO, I multiplied the height map on top and this gave a certain depth to the mask, shifting the focus from AO to the slopes. I multiplied Clouds 2 on top to get some variation, otherwise, it would look uniform and unnatural.
Coloring the highest points:
Another Valleys’ pass. This time I’m addressing the lowest points because they are very prominent in the reference image. After that I tried to make lichen look like it belongs to the surface, that’s why it’s masked so heavily by clouds and slopes.
I made 3 more tiling materials for the project – rock, grass and rocky ground.
I learned a lot from great Substance Designer artists who share their work on Gumroad, Artstation and Substance Share. I highly recommend anybody who wants to get better at Substance Designer to take a look at their work – it will save you an enormous amount of time.
The materials are pretty simple here. The most “complicated” one is the rock material with the slope function, which makes the moss always grow on top.
Two materials (rock and grass) are tiled 5 times, masked by the slope, and blended with a normal map baked from the high poly model.
Rock and grass materials are tiled 9 times and blended by a mask I made in Designer (on the graph below). And of course tiling normal maps are blended with the baked one.
Circle mask graph
I’m using Grunge Map 4 and a tile sampler to get large random areas of moss covering the model. Then I blend it with cavity/AO mask.
The resulting mask
Tree canopy material
The materials for the rest of the plants look pretty much like this one – nothing too complicated. I use a fake emission trick here to light the canopy a little because it goes black when viewed from behind after baking the lighting.
I use a standard lighting setup in the scene: a single directional light, sky light, reflection probe, Post Process Volume, Exponential Height Fog, and Atmospheric Fog.
Directional Light settings
Sky Light settings
I increased Indirect Lighting Intensity on the lights because the scene turned out to be very dark and this helped to illuminate it better. The general darkness of the scene was easily the biggest challenge. Every new tree added to the scene made it even darker because the canopies occlude it so much. The worst part is you don’t know that it got darker before you bake the lighting.
I ended up making the scene a bit wider to allow more light in and it helped a lot, the scene became less sensitive to changes.
The overall brightness is controlled by Exposure
Color Grading settings
I learned a lot about lighting in UE4 from the tutorials by Tilmann Milde:
The whole project took me 10 weeks from start to finish. The most challenging and time-consuming tasks turned out to be making textures in Substance Designer (because I had to learn a lot to hit the quality bar), sculpting rocks and lighting the scene.
The biggest value of the course for me was an opportunity to see Jeremy’s actual process of making vegetation, the way he works with shapes and colors, the decisions he makes and so on.
Big thanks to 80 Level and CGMA for a great opportunity to share this breakdown!
Eduard Grechenko, Environment Artist
Interview conducted by Kirill Tokarev
Interview with Lauren McKenzie
Lauren McKenzie shared the details behind her environment art and vegetation practices that she had during CGMA course Vegetation and Plants for Games led by Jeremy Huxley.
I’m Lauren McKenzie, a 3D environment artist at Zenimax Online Studios working on The Elder Scrolls Online. I actually went to college at Miami University in Ohio. My original plan was to be an English major, but I took a 3D course on a whim and fell in love with the process. My mom was not thrilled when I changed my major out of nowhere, but just a few years (and internships) later and I ended up here!
CGMA Course: Goals
I was super curious to see the workflow that Jeremy Huxley and his team used at Naughty Dog for their environment art. A lot of it was the same, but much of it was different as well. I went in with the goal of learning new ways to approach problems, specifically in ZBrush and Designer, and I definitely feel like that was achieved. I’ve adapted much of his workflow into my own, and I think that sort of informational collaboration has definitely made me a better artist.
The blockout stage was rough, honestly. One of my biggest flaws is that I hate the planning stage. I always want to jump right in and start adding the fun, pretty details. You can tell even from my very first blockout that I was starting to get ahead of myself! I knew from the start that I wanted to have some sort of ruins in my scene, I love the contrast of organic vs man-made materials. The first thing I did was try to make a modular set to use for building the greenhouse. I had to force myself to slow down and really plan out the scene. I made both a reference guide and a style guide to try to keep myself on track. I tried to work on leading the viewer’s eye through the scene. Pops of color, the pointed rocks that move the eye, swoops of branches and ivy that direct you to my focal point. The scene itself is actually pretty small, so I needed to work to fake detail in the background to make it feel larger. I tested everything in Unreal from the beginning, which was great for visualizing but also a bit of a struggle because I’m not terribly familiar with Unreal’s interface.
Sculpting Vegetation in ZBrush
Before this class, I had never actually sculpted plants in ZBrush. I remember thinking “this is dumb, it would be so much faster to take a picture of a plant and cut it out to make cards”. I thought I was wasting my time at first. But once I started to get into it, it was impossible to deny how effective it was. While the texture may not be 100% accurate to a plant in real life, having the freedom to make quick changes and have excellent normal maps made the method very strong. Sculpting the plants took a while, but the method added so much more depth to the cards than any height map I could’ve painted by hand. Almost every single plant in the scene was hand placed, I was really worried about not overloading any areas with too much or not enough of one color. It took a while, but I tend to be kind of meticulous about it.
The texturing process varied a lot depending on what asset I was making. The greenhouse pieces were textured in Photoshop including the sort of mossy/dirty white paint and the glass. They were tiling textures to add more versatility, though it didn’t end up being super necessary for this scene. The rocks and bark were made in Substance Designer, all of the vegetation was actually textured almost entirely with Polypaint. In my usual work, I tend to stick to Substance Painter, but I wanted to challenge myself to try other options and see what sorts of effects I could get.
Lighting was one of the topics I actually struggled the most with. The presentation is such a huge deal, and I was really unsure how to go about it in Unreal. I watched loads of tutorials on Youtube even after going through all of Jeremy’s lessons, and I’m still not super sure about it. The lighting changes pretty drastically throughout the renders. I wanted to give it a warm feel without it seeming too much like it was under an Instagram filter, and I also didn’t want to sacrifice too much detail because of the lighting. I spent a LONG time in the post-process tabs. The lighting is primarily done with directional light, playing a lot with the bloom and depth of field. I wanted to avoid using point lights or others as much as possible, just because it didn’t seem at all natural for the scene. I did have a few under some of the trees, though, casting a subtle blue light to even out some of the corners that were too dark.
One of the best things that I discovered about Unreal was that I was able to make an object invisible and still allow it to cast shadows. Once I figured that out, I placed invisible canopy cards in the sky to cast more shadows on the scene and give it the sense of having more foliage just out of view of the camera.
The Vegetation and Plants for Games class was extremely useful and informative to me. I felt like I was able to expand upon my skill set and push past my limits in a space where I was free to experiment. The biggest challenge for me was definitely the time limit – there is a LOT to do in only 6 weeks, but it felt hugely rewarding for me to do. I kept finding myself fixating on tiny details and had to find the strength to tear myself away and focus on the larger beats first or risk running out of time. I think it was a huge lesson in prioritizing my assets. I’m definitely planning on taking more CGMA classes in the future – there’s still so much to learn!
Lauren McKenzie, 3D Environment Artist at Zenimax Online Studios
Interview conducted by Daria Loginova
Pacific Northwest Forest: The Craft of Realism
Interview with Kat Gray
My name is Kat Gray, and I’m an Environment Artist at IllFonic. I graduated from the University of Southern California in the Interactive Media & Games program in May and have been taking CGMA courses in my free time since. I started in 3D early in University, after having loved art and tech since I was a kid. I was super lucky to have worked on a couple of great student projects in school where I could flex my muscles as a game artist, and I fell in love with creating environments and worlds that would capture people’s imaginations.
Reference & Inspiration
My Pacific Northwest Forest is a scene that I created for Jeremy Huxley’s Vegetation and Plants for Games course through CGMA. I’m originally from the Seattle area, so after several years in Los Angeles for school, I wanted to recreate a lush, green, and mossy piece of home that I could carry around in my back pocket. I definitely took inspiration from memories of one of my favorite childhood locations, Farrel McWhirter Park, and the forest and creek that encompassed the majority of the trails—but I didn’t try to specifically recreate anything 1:1, knowing that I probably wouldn’t have the time to get it as perfect as I wanted.
I did want to be accurate to the plants I remembered from growing up, so I did a lot of reference gathering and research around common trees and groundcover like Western Red Cedar, Sword Ferns, and Salal. My mom was a fantastic resource in this, as she’s an avid gardener and lover of native plants, and I think this project really helped her understand what ‘weird’ thing I was doing over here with computers. It also meant I got lots of nice additional photos of plants from our backyard to work from, and not just shots I could find on the web, so bonus!
The class starts out with basic blockouts of your trees and rocks — and I immediately had an issue. For the most part, noticeable rocks and boulders aren’t really a thing in the environment I was trying to recreate. When you can see them they’re almost framing rivers and are blanketed almost completely in moss. In other areas, they’re sort of visually replaced as focal points by stumps, snags, and fallen trees. So I knew that in order to make this work I needed to incorporate a stream, which ended up being a fun — and focal — addition for my scene.
Even in some of my early thought processes about the layout, I wanted to create an environment that worked in any direction. Many of my previous projects had been very focused on recreating an illustration from a single point of view or had design constraints preventing free exploration, and I wanted to see if I could make a space that was interesting — not everywhere — but in all the right places. I had recently visited Redwood National Park, and I wanted to play as much as possible with trees growing on rocks, and plants growing on trees, as it helps a lot to make an environment really feel like an ecosystem and not a static location. So even in this early draft, I wanted to set up the foundations of some fallen logs from some old storms, and how they could shelter parts of the stream which would then allow new growth.
I worked off reference for my boulder asset, but even then, I had to balance readability and simplicity, with the fact that many of the rocks you see in the Pacific Northwest are very soft and rounded, especially with moss. It’s definitely a challenge for these types of stones to feel overly bloated compared to more conventional sharp and pointy glacier-carved rocks. But I think I did a fairly decent job, given it was my second or third rock sculpt ever. Looking back though, I think this, out of everything I created for the scene I most want to redo.
I kept it pretty simple for my base rock texture since I knew a lot of it would be covered either by foliage or by moss, and the rock itself is far from the star of the show in the scene. When working on materials in Designer, I like to start with large shapes and work my way to more detailed noise for the height. Only after the final height I go and add the Albedo/Roughness/etc. For the rock, I first concentrated on getting on getting a large flake effect that I noticed in my reference for the boulder, which I achieved by blending a few variations of slope-blurred cell nodes, with Clouds 2 and BnW Spots 1 for detail noise. I created subtle cracks with another Cells node that I ran edge detect on and warped and multiplied on top of the base height.
Here’s the creation of the Base Color. I start by sampling the reference photo with the Gradient Map node and a few variations of the height I created earlier and then blending them. Probably my favorite part of creating rock textures is adding lichen, which I do really simply here by using various grunges as masks, sometimes with directional blurs, focusing on the larger cream splotches as well as places where the lichen is more pinkish. On more recent projects I’ve worked on I’ve put more into making unique lichen, without relying on the included Designer grunges but for this project, it worked well enough.
My moss is almost embarrassingly simple, but I’m actually really happy with how it turned out. I started with a blended (Add, 0.65) BnW Spots 2 & Crystal 1, and then blended (Max, 0.75) a slope-blurred Clouds 2 with that to get a fluffy, clumpy grouping that looked like my reference photos. I used BnW Spots 1 to get more individual details blended (Max, 0.8) back in over the main forms. After that, I mostly ran a few levels nodes, and color picked my reference image for the Base Color. I will say AO is a big factor in this looking good, so that’s something I had to keep in mind when creating the overall scene and material set up for terrain and other objects this would get applied to, such as rocks and trees.
To make the moss have a Fresnel effect in Unreal, I utilized the Fuzzy Shading node that I set up in a material function along with making sure the moss was World Aligned since it would be a part of a couple of other materials I used — notably on my trees & rocks. Mind Games Interactive has a great setup video in UE4 for both of those topics here and shows how to set up dynamic moss on just about any object.
Jeremy’s class was my first experience creating trees and foliage, so it there was definitely a learning curve both in terms of process, optimization, and in getting things to look the way I wanted. I went through three iterations of my Cedar canopy texture before I found something that worked for me. With version 1 I didn’t pay enough attention to my reference so it didn’t look like a cedar at all, and the needles mipped away to nothing in my scene anyways. I paid more attention to detail when I sculpted version 2 and focused on the shape of cedar needles, and how the branches all seemed to form a ‘J’ shape, instead of just dropping straight down. It looked great — but I went too micro, and when I assembled my branches and then the whole tree, I found the polycount was almost 200k. Alright, yikes. Back to the drawing board again.
Luckily with version 3, I didn’t have to start completely from scratch, and I could combine the lower level subtools I had created for v2 into larger branch groupings on my cards which I was happy with in the end. The trees themselves I create from a handful of branches that I assemble, paying close attention to silhouette, imperfections, and shape breakout — no trees are perfect! I ended up having to fudge the padding a bit in UE4 to get the needle clusters to not disappear quite so much, and had to fiddle with the LOD settings too (creating proper LODs probably would have been the smarter move, but it wasn’t a focus of the class, there was already a lot to do in 6 weeks, and I had redone the tree twice already, so I was running a bit behind schedule).
When I was polishing the scene I ended up reworking Cedar V1 into a passable Fir canopy texture, so I could add some visual breakup to all the similar looking trees, which had gotten noticeably repetitive.
For my cedar bark, I ended up taking inspiration from a really nice Cypress Bark tutorial by Peter Sekula since it was similarly thin and stringy to what I needed for my cedars. His walkthrough is pretty thorough, so I definitely recommend checking it out. I mostly used it for creating the base height shapes, and I went a bit rogue after that as I wanted to follow my reference as closely as I could.
Something I wanted with my bark was a controllable height depth so I could vary between old, silvered outer bark, and the new red bark underneath. These I created as two textures I could height blend them via vertex paint in UE4 for more asset variation.
Plants & Foliage
My favorite part of the class was creating the foliage for my scene, and in addition to the trees, I created textures for Salal, Western Sword Fern, Maidenhair Fern, False Lily of the Valley, Miner’s Lettuce, Sorrel, and some generic weeds, moss, and grasses.
I sculpted my plants in ZBrush, almost always starting from a sphere, that I would dynamesh. From there I would use the deformation menu to quickly elongate my shape for a stem/branch or the move brushes to sculpt out the general shapes of whatever I was working on. The deformation menu is also great for helping block out quick tapering or curls in leaves before the main sculpting process with Bend/SBend, Skew/SSkew, & Curl. After that, my favorite brushes for general plant sculpting are Trim Dynamic, Dam Standard, Orb’s Extreme Polish, Pinch, and Crumple.
Once the base sculpt is finished I like to do a quick polypaint to get colors generally where I want them, followed by adding a whole bunch of variations using the Masking menu & Mask by Cavity/Smoothness/PeaksAndValleys. I don’t really have a proper method to this, I mostly just experiment with the settings and paint with low-Intensity RGB until I get the variation and colors I’m looking for. I generally eyeball the colors and adjust them later if I’m too far off the mark in tone. If I make dead variations I go with Color Spray, MRGB, and the Crumple brush to break up the sculpt both in normals and color.
From here I lay out my subtools using a plane to keep the view locked a certain way when I export. I use the Grabdoc feature to get snapshots of my Albedo, Normal, and Height that I can take into Substance Designer to author PBR maps.
I have a pretty simple setup that I use to add a bit of additional grunge/damage to the plants that otherwise would be tedious to hand paint every time. I also create Roughness, Opacity, and AO based on information from the imported bitmaps from ZBrush. Depending on the plant I sometimes add a bit extra detail here, but this is the general setup. It’s easy to swap out the input textures, so making variations is super fast.
After the textures are finished, I go into Maya and place them on planes. With preserve UVs on, I use the Multi-cut Tool & Edge loops to create UV shells that match the plant’s layout. Much bending and tweaking with soft selection later, I have some nicely curved leaves and a few variations of each plant. I also create vertex colors with a simple black > green gradient along the lines of each leaf that will serve as the wind information I’ll be adding in UE4.
In Unreal, I have a Foliage Master Material that’s set up for the usual textures, as well as having options for Base Color Tint, Subsurface Tint, Color Variation, Opacity, Normal Intensity, and Wind Speed/Intensity. I create instances of this material for each plant and just plug in the appropriate textures. A node I’ve found super useful is SpeedTreeColorVariation, which tints instances of the mesh it’s on for a more realistic color distribution for foliage. I try not to have the value for this set any higher than 0.1, as you’ll end up with some crazy colors instead of shades of green.
There’s a lot going on in this scene, even just on the ground, so I created textures for dirt, mud, river rocks, a larger broken up stone for where there was more pedestrian traffic along the trail, and loam with leaves & debris. I also ended up using the moss texture for some parts of the terrain to further the ‘everything is lush, green, & mossy’ look and tie in the rocks a bit better in some areas.
One of my favorite textures to work on was this riverside stones texture, with clumpings of rocks, and moss. Over the last few projects I’ve usually needed something like this, so I have a base with nice rock and scattering set up, that I can plop on top of whatever base material my scene needs—in this case, mud. That setup graph is pretty messy, and I really need to rework it, so I won’t show it here, but if you’re interested in some nice clumping techniques for smaller rocks that I utilized, check out Daniel Thiger’s fantastic tutorial series on Substance Designer (particularly Part 1: Pattern Creation & Natural Scattering). I like to use this material blending technique to create materials that flow nicely between each other in engine, and utilize other graphs that I’ve made without having to create too many additional bespoke textures, and it makes swapping versions out easy.
I used a similar technique for the loam material, just using the foliage textures/heightmaps I’d created earlier, and blended them all into each other and on top of the dirt material I had. This one got a bit messy, and I could probably have a cleaner normal map, but I think it turned out alright, especially as it mostly lives under trees and plants.
In Unreal, I set up a height-based blend material for the terrain using the Layer Blend node. This way I was able to combine the six ground materials I had set up so that they filled in the cracks between each other’s heights first when painting. Other than that, there’s not anything else really special with that material’s setup.
Populating the Scene
Generally, by the time I start populating, I have a rough blockout of where important assets like paths, streams, rocks, and trees are placed, but it’s important to me that I have points of interest that draw the viewer around the scene. No one wants a 3D space that’s only interesting from one angle. I try to vary the feeling of each area so it’s memorable compared to the other areas, and clump some assets so mentally you think, “oh, that’s the area filled with clovers” or “this is where the logs pile up”. If all your plants are evenly distributed everywhere, nothing stands out. You can also be informed by the real-world, such as that Maidenhair Ferns are usually found by water, or that rocks would pileup around the outer edges of stream curves because of the current. This sort of thing helps your scene feel more natural.
Pretty much everything in my scene is placed using UE4’s foliage tool. It’s a great way to scatter everything from small rocks and branches to trees & plants, There are all sorts of settings that allow you to control density, tilt, depth, size, and what angle surfaces you can spawn on, which gives you a lot of control over your placement.
Lighting & Finishing Touches
I’m going to be the first to admit that I’m not an expert at lighting. I mostly just fiddle with settings until I get something I like. For this scene, I wanted to work with the idea of being on an early morning hike, with the mist still in the air, and light just filtering over the mountains. Exponential Height Fog is great for that sort of mood. I also added played around with some LUTs before I settled on a bluish tone that makes me think sorta vintage, and ties back into being a memory of home.
I had a fantastic time taking Jeremy’s course, and I think I had my biggest growth spurt as a 3D artist during that time. I know I definitely didn’t want it to end when the 6 weeks were up. I feel so lucky to have gotten to study under some awesome industry mentors through CGMA and see the process that they use at their studios, as well as getting to interact with other students via forums and during Q&As.
Thank you to CGMA & 80.lv for letting me talk a bit about my process. It was seeing other writeups here of people’s experience taking CGMA courses that made me want to take them myself, so I’m super excited to have had the chance to be able to give a bit back to this community.
Recreating Uncharted 2's Borneo Environment
Interview with Daniel Cangini
Hello everyone! My name is Daniel Cangini and I am an environment artist who currently works as a graphic designer in Rome, Italy. In 2012, I obtained a Bachelor’s Degree in the University of Rome “La Sapienza” in the Graphic and Multimedia Project focused on “3D Digital Art & Design” and have been taking CGMA courses in my free time ever since. I fell in love with creating environments and worlds that would capture people’s imaginations.
About the Project
Uncharted 2 is a masterpiece of game art and I loved many things in the great Borneo scene: beautiful colors, powerful vegetation, and awesome terrain. I thought this was a great opportunity to recreate one of the levels that I loved for Jeremy Huxley’s Vegetation and Plants for Games course at CGMA.
My main goals for this scene/course were to work on a natural environment, learn a solid technique for foliage, trees, and rocks, sculpting and texturing plants, blend materials with Substance Designer, gain more experience in UE4. The main thing I wanted to do was to recreate the scene in Unreal Engine as precisely as possible. I took care to keep the quality of the details and bring them closer to the graphics of Uncharted.
I started looking for some cool concepts and ideas on the internet. I think one of the most important resources for any Environment Artist is the Art Direction for Uncharted 2: Among Thieves. It covers the visual development process of the environments and walks you through the way we apply design principles to translate a 2D concept art to a complete 3D interactive environment.
Reference & Inspiration
My work began with a concept for the game Uncharted 2. This concept was perfect for the course. There was a lot of vegetation and ground terrain in it, and it also recreated the mystic level atmosphere (Day & Afternoon) that is not so easy to express.
I started by gathering a lot of references to have a clear view of all the details and proportions. For vegetation, I found many tropical forest references.
After spending some time gathering the reference, I started looking through the images and making decisions on the style guide and my basic color palette.
Next, I decided first to determine the type of terrain and which plants and trees can grow on it.
When I started the blockout, it was important for me to make a decision about the composition of my level. For this environment, I wanted something with one main beauty shot and focal points in all the right places.
I began to block out the main elements inside 3ds Max and concentrated on the proportions and scale of the assets. This was the best way to test the composition and scale of the assets in a 3D space and make quick changes before creating the final pieces.
The sculpting of the rocks has been a big challenge for me. The biggest key here was to keep it simple. I started focusing on the silhouette, shapes, and composition and I made rocks that worked well from multiple angles in different situations. I focused on the larger details that allow the rocks to be scaled in many different ways.
The details will be added later with a tileable material and combined with the normal bakes in our shader.
These are the main rocks used in my scene:
It was a challenge for me to use Substance Designer. I first concentrated on large shapes and then worked down to micro details by blending a few variations of slope-blurred cell nodes for the height. Only after I obtained the final height I added the Albedo / Roughness / A.O / Normal.
Moss and Rock material combined in Substance Designer:
Here’s the final result which I built in Substance Designer:
During the next step, I created the shader in Unreal learned during Texturing and Shading for Games with Kurt Kupser where I found out how to create the master materials in UE4 like prop material, layered material, refraction material, wind material, hologram material, terrain and architectural material, mesh decal material, and foliage material.
I started to blend multiple different layers to paint a combination of different textures and materials on a static mesh.
To do this, I took my main rock material and blended maps with the moss material with a Material Function.
Then I instanced the Material Function in the main Master Material.
The moss part of the shader was blended in through vertex paint with the Height. I also created a transition mask that allowed me to have a slightly different value of the color for the edges of the moss.
It was my first experience creating trees and foliage using ZBrush. In 3ds Max, I created simple trees, branches with leaves, and the base stones to fill the scene.
After that, I started making trees and roots. I made the trunks inside 3ds Max and when they were finished I started to create the canopy. When making meshes in 3ds Max, I try to minimize unused texture space on geometry for optimization purpose.
Next step was to create the Bark tile texture in ZBrush. I use the Grabdoc feature to get snapshots of my Albedo, Normal, and Height that I can take into Substance Designer to have PBR maps result.
Other Substance Materials
Here are some of the materials in the scene:
Here are the basic guidelines that I follow when working with Substance:
- Height map: I start with large forms and work to smaller details
- Roughness map: This map is really important. I use the heightmap to get a basic material separation. There are many fine details that are not in the height or normal map that I will add.
I learned a lot from Substance Designer artists who share their work. I recommend those who want to get better at Substance Designer to check them:
Plants & Foliage
I started the canopy with sculpting and painting single leaves inside ZBrush. After that, I tweaked every leaf and brought more variation to the color. The brushes used for plant sculpting are Trim Dynamic, Dam Standard, Orb’s Extreme Polish, Pinch, and Crumple. And with Grabdoc I get albedo, normal and opacity textures resolution 2k.
The next step in Designer was pretty quick. The biggest thing was to generate the roughness and A.O maps there. For the roughness, I used the Grayscale conversion node to isolate colors from the Albedo map with little Levels tweaks.
After the textures were finished, I went into 3ds Max and placed them on planes with preserved UVs on.
In Unreal, I used two-sided foliage as the shading model.
I have a Foliage Master Material that’s set up for the usual textures as well as has options for Base Color Tint, Subsurface Tint, Color Variation, Opacity, Normal Intensity, and Wind Speed/Intensity.
Finally, I create instances of this material for each plant and just plug in the appropriate textures.
Terrain Materials – (Material Layer)
As I’ve mentioned above, the terrain shader material was learned during CGMA’s Texturing and Shading for Games course. I started creating the terrain master material to use the vertex paint, modulate that blending and add some features such as parallax and wetness. My shader came out a bit expensive, but since I wanted to do it nicely and learn as much as possible, I limited tessellation with the camera view which helped to improve the performance.
With the use of the Vertex painting, I decided in which areas were the mud, grass leaves, and puddles would appear.
I used vertex paint in combination with additional mix maps and masks to add puddles. I made puddles as a translucent material with effect parameters to set the sharpness, ripple speed, tiling, etc.
- Layer 1: Ground Grass
- Layer 2: Chips & Grass
- Layer 3: Loab
- Layer 4: Mud
- Mask: Puddles
Here is a tutorial series to create a Landscape Material that features advanced heightmap blends, tessellation, and procedural puddles:
And here are my other materials in UE4:
Populating the Scene
Generally, by the time I start populating the scene, I have a rough blockout from 3ds Max where the important assets like block, rocks, and trees are placed.
At this stage, I also begin thinking about the lighting and adjusting the composition.
Lighting & Finishing Touches
For lighting, I used Ultra Dynamic Sky Plugin by Everett Gunther which is a flexible dynamic sky system with natural cloud motion, customizable sun, moon, and stars.
The Level has a basic sky sphere, directional light, skylight, and exponential height fog. The lighting in the scene is Moveable, with baked shadows.
The best thing about Ultra Dynamic Sky is that you have a physical dynamic sky system in UE4 with a dynamic, flexible, customizable, and user-friendly weather system.
You can customize it using such setting as:
- Latitude/longitude-based sun study function (easy-to-use 24h clock)
- Weather effect (rain/storm/snow)
- HDRIs support
Here you can see the Day and Afternoon settings used for my level:
This is a very useful tutorial that helps to set Ultra Dynamic Sky in UE4:
Feedback & Challenges
One of the biggest challenges for me was to learn ZBrush and Substance Designer to finalize my material. Jeremy did a great job teaching the basics and demonstrating the possibilities of these fantastic programs, and Kurt taught the most important rules in creating the materials in UE4.
Overall, my experience with classes at CGMA has been amazing. I found Jeremy’s course to be very helpful. I tried all the techniques he showed us and I feel that I really improved my organic sculpting skills in a few short weeks.
I also had a great experience during the Texturing and Shading for Games course with Kurt Kupser, who gave me important feedback, comments and helped to learn how to create amazing materials in UE4.
Crafting a Mossy Oakwood Forest in UE4
Interview with Maya Mahalingam
My name is Maya Mahalingam, I am an Environment artist from India where I started my career working for the mobile game industry back in 2014. Later, I came to the US to do a Master’s degree at ETC-Carnegie Mellon. Since my graduation in 2017, I’ve been working at Magic Leap as a 3D Generalist. Over the years, I’ve really enjoyed working on worlds with photorealistic textures and procedural materials. Being an advocate of self-learning has helped me move forward in my career to transition into an Environment Artist. I’ve always found organic scenes very compelling which led me to Jeremy Huxley’s Vegetation & Plants for games course. I’d like to give a special shoutout to CGMA and Jeremy Huxley for lending a huge helping hand in this.
The environment that I’ve created is inspired by Wistman Woods located in Dartmoor, England.
For resource gathering, I started off with Adair Payne’s paintings, AllTrails, CG textures, and Megascans. The preferred approach for me has usually been clicking real-life photographs and using them for scene and texture references. But since I was lacking time for this environment, I began by collecting some references online and then moving into sketching some ideas. I came across Wistman Woods which had beautiful tree structures and different kinds of vegetation that really caught my attention. So, I went on to create a style guide of all the references put together to break down the assets that I would have to create and the scene’s color palette.
Rough sketches usually help in understanding how the different elements in your scene can come together to make a good composition.
I would recommend making an asset list before jumping into production to keep track of the timeline. I also found this to be a powerful method to organize myself in the limited time that I had after work. It definitely helped me a lot to keep myself on track for each week’s goal/deliverable.
Since the trees covered 60% of my scene, I had to put extra effort to get it right. The idea was to maintain the spookiness from the trees of Wistman Woods but keeping it considerably pleasant as well.
I used 3 modular tree trunk pieces that were created using Zspheres to build multiple variations of trees. In UE4, I hand-placed the tree variations and used the foliage placement tool for other plants in the scene.
Plants & Rocks
Since most of the rocks were covered by moss in this scene, I focused on sculpting the basic shape of the rocks using the Clay buildup and Trim dynamic brushes in ZBrush.
The process that Jeremy taught us for creating foliage was pretty straightforward. It involves sculpting and painting the leaves, creating leaf cards, and assembling them to build a plant. Although the process seems fairly simple, sculpting each leaf in ZBrush could be a tedious process. I start by sculpting the base shape of the leaf and use the Spotlight to project the reference image on the sculpted leaf. Based on those details, I sculpted the veins using the Rake brush and other micro details like dry areas, etc. using the Crumple brush in ZBrush. I poly-painted the leaf and then duplicated it to create the leaf bunches. It’s also very important to have multiple color and form variations (by using the deformers) for the leaves to create a believable look while assembling the plant. And for the Spanish moss, I tweaked some properties of Fibermesh in ZBrush to get good results of hanging moss structures.
Another quick way to make the leaves more accurate is to create custom lightmap UVs for the leaf cards and making sure there are no overlaps that create dark leaf cards in UE4. It’s also vital to use Subsurface values for the leaf materials for light to be able to pass through. Here’s a foliage tutorial from Peyton Varney who talks a bit more about subsurface material.
I used the primary approach of creating tileable procedural materials in Substance Designer to create moss, terrain, and bark textures. This tool can be handy once you get the hang of it. And in UE4, we also create some blend materials that work together for a single object, like bark with moss and lichens for example.
Lighting & Composition
In UE4, I used a directional light with light shafts to create the god rays and some indirect lighting to ease off the harsh shadows. I used a combination of an exponential height fog with depth of field and slight bloom to create the illusion of depth.
The initial reference sketch played an important role during the composition of the elements/plants using the foliage placement tool in UE4. This becomes a powerful tool when you have the base elements of your scene hand placed already. So, I based my scene’s composition on the initial sketch that I made and then went on to use the Golden ratio to bring about focus and balance to the scene.
Overall, the scene is pretty simple—it’s just a lot of small pieces working together. I hope to create more organic scenes in the future.