This is beautiful, great work. Would love to walk around in this city
Wow, I am 22 years and self thought still trying to be a good artist, I am using blender in a country where no one cares. Thanks a lot for this inspiring article. I am not as good as this, you are very good.
Awesome. Really great tips for beginners like me to start working correctly.
JD Gardner did a full breakdown of his bright San Francisco scene, which features some great light, color and beautiful chunky stylized assets.
Hi, my name is JD Gardner! I’m a 3D artist and technical director currently living in California and working at Pixar Animation Studios. I, like many people, are totally smitten by stylised art-directed games like Overwatch, Fortnite, and Gigantic. This is my attempt to try and capture some of that feeling inside of UE4 with a PBR workflow.
I moved to the San Francisco Bay Area after living in New Orleans and New York City. Every major city has their own style and flavor, and San Francisco is no exception. It’s a very old city, with lots of different architectural styles (Victorian, Edwardian, Mission Revival) depending on what district or neighborhood you’re in. I used Google Street View and my phone’s camera to gather reference: this scene is somewhere near the Powell Street BART stop, with lots of big stone and concrete buildings.
My modeling process was pretty straightforward – I did try to make things a little chunkier than usual, and since this is a portfolio piece, I didn’t shy away from adding enough geometry to make things look nice (within reason). All of the buildings are modular, so I could mix and match piece to make them look less repetitive. Since I knew that seamless textures would be used on a lot of these, I was very careful about perfectly lining up my UVs. I also made sure to bevel the edges on my building corner pieces to make them look a little less flat and perfect. For the cablecar, I built it all at once, but then assigned several shaders in Maya and unwrapped UVs so that I could paint it in “chunks” within Substance Painter to get the level of resolution I wanted. Since it’s mostly symmetrical, lots of individual objects inside the cablecar share UV space as well. This strategy was also used on the BG cars. The street, sidewalk, and rails on the ground are modular as well-I made a straight piece, a curve-up piece, and a curve-down piece, each with a specific size so they were easy to snap together in engine.
I set up a few different master materials: uniques, repeatables, foliage, glass, and a special one for the BG cars. This graph is of my master “unique” material, so it’s easy to just instance it out and swap in the albedo, normal, and RMA maps as needed in the instance. I also tend to bake in some controls that come in handy on the fly: a saturation slider, a hue adjust, an emissive multiplier, a normal map multiplier, that kind of stuff. You can always add more switches to your master material as needed.
I spent a lot of time on the repeatable building materials like concrete and brick. Using the HSV controls that were baked into the master material, I could quickly repurpose and vary these materials as needed per-building. It helped to sculpt these out on a seamless plane in Zbrush, then bake them in Substance Painter onto a flat plane. I picked up some great Zbrush brushes from the legendary Michael “Orb” Vicente. One technique that helps this art style is to use a curvature mask on a pure white layer set to “overlay” to get highlights on your bevels, and a cavity mask on a pure black layer set to “overlay” to get darkening in the crevices. You can play around with the opacity mix to get something that looks good. It’s also helpful to use the World Position parameter on a mask to get a nice top-to-bottom dark gradient, which helps ground your objects. A big part of this style is letting the albedo be readable and graphic, and not going overboard with detail: sometimes less is more. I’ll often look at just the albedo channel in Substance Painter, or the unlit view in UE4 to see how my props worked together with these techniques. For the BG cars, I textured one car in Substance Painter at a 50% grey, and then used the tinting built into my master car material to create some instanced color variations.
This YouTube talk by Nathan Fowkes totally changed how I think about light and color. His work usually uses the scheme of warm bounce light with cool atmospheric light, which is almost a hack for making beautiful images. There’s nothing especially technical about this lighting-just your standard cool skydome, warm directional light for the sun, and a couple of warm kick lights on the cablecars for a highlight. I think the “secret sauce” to outdoor lighting is to get buttery smooth bounces. Here are my Lightmass settings-your mileage may vary. It’s also important to put down enough reflection captures in localized areas with metal, and a Lightmass Importance Volume where your camera will be looking. In San Francisco, we have a ton of fog-so much that it even has a Twitter. Appropriately, I went heavy on the Exponential Height Fog. Mine is fairly dense, and Inscatters to a bright, saturated blue, which I think works in a stylised scene like this. I also changed the Start Distance so it wasn’t overpowering the hero props, which were always close to camera.
Ah…here’s the spicy part! I cranked up the global Saturation and Contrast a bit, and graded the shadows to be slightly purple and the midtones to be slightly orange (remember that Nathan Fowkes talk I mentioned earlier?). In the Post-Process, I also turn on just a bit of bloom, some per-shot Depth of Field, and set the Auto Exposure to Min .03 and Max 2.0. That’s it! No magic required.
Improvements could be made, but done is better than perfect. I am still learning a lot about the engine, so I wanted to say thanks to everyone out there on Polycount, the Epic forums, Ten Thousand Hours, and right here on 80Level for being so helpful and eager to share your techniques. I’d also like to thank Clinton Crumpler for teaching his awesome Modular Environments class and kickstarting my UE4 learning. I’m really happy to be able to give back a little, and I hope this has helped someone out there! Drop me a line if you have any questions, and good luck!