Trying to steal Vray's thunder.
I'm gonna wait for Steam version
Vincent Chung, who worked on SIE Bend Studios‘ Days Gone talked about his marvelous Greek Temple built with Unreal Engine 4. The artist gives a thorough breakdown of working with floor, ceiling, amazing Corinthian-style columns, dealing with materials and setting up the lighting.
My name is Vincent Chung, and I teach 3D modeling and animation for the School of Visual Communications at Oklahoma State University Institute of Technology. I’ve spent my first 2 years of my college life studying bioengineering and structural engineering at University of California. I decided to follow my passion as a creative professional and transferred to Art Institute of California, San Diego and studied Game Art and Design instead.
I was hired on by an indie studio Machine Union LLC right after graduation. I created 3D art content for a number of internal projects, unfortunately most of which were put on hiatus. We managed to complete a puzzle game called Bittos, and was published in early 2010. The studio then transitioned into the mobile apps market and received a couple projects from PocketGems, and I created concept art and 2D assets for Tap Paradise Cove, Campus Life, Epic Empire and 3D animated sprites for Animal Voyage for the iOS.
Four years later, I moved to Oregon to work for SIE Bend Studios as a 3D environment artist. I was tasked with world building, layout and set dressing for their AAA title Days Gone for the PS4, which was not-too-recently announced at E3 2016. Bend Studios was where I learned about PBR (Physically Based Rendering) and working in Unreal Engine 4. I really enjoyed my time there and it was definitely an eye-opening experience working on such a large-scale project.
Since my focus is in the game industry, the main motivation behind my Greek Temple environment is to demonstrate my understanding of PBR and that I can create and manage art content in a game engine. The majority of my personal 3D work is rendered either in ZBrush or Maya Mental Ray, and so I felt the need to create an environment in Unreal Engine 4 to balance out my portfolio.
For this project, my goal is to create an environment from modular assets and learn how to model classical architecture. By having all the elements modular I gain the freedom of making quick changes to the floorplan in-engine, like playing with Legos. By adopting the PBR workflow, I wanted to create materials that look more believable than those in my previous work. I also wanted to test how accurate PBR texture sets translate from Substance to UE4. It’s a good thing that I studied structural engineering because that knowledge really came in handy.
Production started with lots and lots of reference images of ancient and modern Roman/Greek architecture. I studied pictures of the Pantheon, Vatican, St. Paul’s Cathedral, etc. Some of my inspiration actually came from Caesar’s Palace in Las Vegas! In the concepting stage, I deconstructed the most commonly-used elements such as pillars, columns, arches, and domes, and did quick pencil sketches of them to get a better understanding of the architecture. I also used sketching as a brainstorming tool and was able to quickly come up with design and layout solutions. The modeling phase remained straightforward so long as I stay committed to my references and sketches. Once in a while, production slows down when I wanted to make on-the-spot design changes.
I do my blockout phase in Maya, using mostly primitive shapes as placeholders (notice on the image below that my environment started out much taller with two tiers of columns. I later decided to omit the second tier since I thought it looked too repetitive and made the details on the ceiling hard to see). I made sure that the floor, wall and ceiling panels snapped together, leaving no gaps between each panel. To do this I made sure the panels’ border edges were aligned to the grid. I turn on Snap to Grid and set the grid to meters in the preferences menu. I also turned on discreet rotate to 90 degrees since most of the architecture will be built at right angles. Where the pivot point is located for these particular assets is also very important. For the floor panels I set it to the center of the asset, and for wall panels I set it to one of the bottom vertices of the border edge. This setup guarantees that I won’t get any z-fighting by accidentally overlapping one panel over another.
Once I’ve created an enclosure with the placeholder assets, I then begin modeling the basemesh of each asset, generate UV’s, and then export them out as OBJs to sculpt the details in ZBrush. After creating the high-poly version of each asset, I use Decimation Master to reduce the poly count so I can export it out as an OBJ, but I made sure it had enough polygons to retain all the details. I then use xNormal to generate the normal map and ambient occlusion map. Finally, the low-poly asset is taken into Substance Painter to generate the necessary texture maps for use in UE4.
I wanted the floor to look pristine and opulent, like the ones in the great cathedrals in Europe. It took several iterations before I was satisfied with the first floor panel (the one on the center of the hallway), with the main issue being the pattern design. As I searched for references and was inspired by an awesome floor design from a 3D environment also rendered in UE4. It turns out those images belong to environment artist Meggie Rock, who was coincidentally interviewed by 80.lv half a year ago! I ran with the square-in-diamond pattern as a base and started adding a different design in the center of that panel. I also stayed within the same green-beige-gold color palette while introducing a black marble material.
Because each floor panel is so large, a 2k texture planar projected onto the asset would wind up looking blurry in-game and a 4k texture would not be cost effective at all, especially as a game asset. I came up with a solution where the patterns of the floor are modeled out with geometry, and using a single 2k texture set with several different stone materials tiling vertically. The geometry creates very crisp separations between materials. There are 4 different floor panels total, each sharing only one 2k texture.
The secret behind producing the floor’s realistic reflection is the color and roughness variations between the gold, jade and marble materials, causing the reflected image to look different as it intersects each material. All of these materials have a relatively low roughness value, which gives off more of a mirror-like effect.
The individual elements that make up the elaborate-looking ceiling wasn’t terribly difficult to model. I was going by the design principle of repetition – to reuse similar elements throughout my design. I based all my other architectural elements on the design choices I made on the column, which was the very first asset I created for this environment. I repeated the theme of white marble, jade panels and gold gilding.
The crossbeams that sit on top of the columns contain various repeated gilded patterns that were sculpted in Zbrush, all of which were created using custom-made alpha brushes. These custom alphas were made from Greek design patterns I found on the internet, and also from ornamentation modeled in 3D and then converted into an alpha using the mRGB grabber in Zbrush. The texture set that resulted from this element and was shared by many of the other assets in the scene.
The method I used to create the arched ceiling in Maya involved using a cylinder primitive as a guide. The shape of the arch is made up of a series of ceiling coffers, but I only need to model just one of them. I then aligned the ceiling coffer with a cylinder primitive, and set the pivot point to the cylinder’s endcap. This lets me revolve copies of the geometry along the curvature of the cylinder when I perform a duplicate special.
The production for the 30-foot Corinthian-style columns was a challenge. Because it was the very first asset I made for this scene, it pretty much set the tone for how everything else looks like. I actually chose the simpler design out of the bunch from the references , while also integrating some of my own design ideas.
I had to determine which details needed to be modeled out and which can have just normal map information for the final low-poly game asset. The intricate ornamentation on the top of the structure definitely had to be modeled, because it’s part of the silhouette’s shape. The long vertical grooves that run along the shaft of the column can be from the normal map because it’s indented and does not contribute to the silhouette.
For the sculpting phase, I broke down the column into unique components so I can identify which parts were repeating (leaflets, volute, boss, etc). I sculpted only one of each component in ZBrush to keep the subtool count low, and then duplicated the repeated components and rotated them into place.
I also wanted to fit everything into a single 2k texture, so the fewer UV’s the better. Because the column is round and contains so many leaflets revolved around the top of the structure, I had to reduce the polycount carefully without it looking too low-res. I managed to whittle the polycount down to 4594 tris, while making sure the normal and AO maps bake properly in xNormal.
My quest for a deeper understanding in optics, and how things work in the physical world directly impacts the visual quality of the materials I create in 3D. But first, I have to know how the materials look like in real-life. There were times when I would stare at floors and walls minutes on end (sometimes in public), trying to study how the light interacts with the surface at different angles, and if the surface is clean/dirty how that would affect its reflectivity. The key is knowing how to translate that knowledge into 3D, and PBR theory definitely bridged that gap for me. Substance lets me put the theory into practice and made texturing very easy for me.
What I find to be the real magic is the texturing software. You can easily make anything look photorealistic real-time in Substance, and that is amazing to me! I am all for exploring alternatives like Quixel Suite, but I chose Substance because it feels more user-friendly. I toyed around with Quixel Suite and there were many buttons that were either hidden or tiny. I have an old version of Photoshop so some features didn’t function properly; the learning curve just seemed steeper than that of Substance. Specifically I used Substance Painter over Designer simply because it feels more artist-friendly and a lot more visual. I can directly paint on the 3D mesh and get fast results by making adjustments from Smart Materials.
I wanted my environment to take place in the evening with indoor lighting. I also want to emphasize the path from the door to the center of the temple, where the space becomes much more open in the rotunda.
The Unreal Engine 4 default lighting rig produces great render quality, but it is really meant for outdoor environments, or environments with natural light flooding in. I found that the default lighting washed out a lot of the floors’ reflections, and so I deleted them and added point lights back into the scene. I also turned on the ‘Force No Precomuted Lighting’ setting and then rebuilt the lighting so that my point lights become dynamic. Rebuilding lighting removes any baked lighting from Lightmass. I may later on convert back to static lighting to get some bounce lighting and diffuse interreflection – which will require a lot of tweaking so there is definitely an opportunity to make improvements to my lighting.