Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
Follow a practical guide to building 3D cityscapes for games. IAuthor Adam Crespi constructs a city block in 3ds Max utilizing low-polygon modeling and advanced texturing techniques. The course shows how to model common city elements such as buildings, intersections, curbs, and roofs and explains how to expand a city quickly and easily by reusing existing geometry in a modular way. The course also sheds light on simulating real-world detail with baking, lighting, and ambient occlusion techniques and offers a series of best practices for exporting to the Unity gaming engine.
Once we have the geometry of a roof done, it's time to think about the texture. The important thing on a roof, as I've said in previous lessons, is that it's going to occupy a lot of the view. That visually, as we examine this little house we'll call it, roughly two-thirds of what we are seeing is house and a third of what we're seeing of this is the roof. If we stand down even more on street level, we still see an enormous amount of roof surface. So we want to think carefully about the textures that are going on there. As an example of this, I've made up a texture sheet of a corrugated metal roof.
The big deal with a roof is we can map it plane by plane and it becomes very easy. Here's the texture sheet. Right now this is 1024 square, although we can always reduce it in size if needed. It's got a Color group organized by a layer as usual with corrugation, rust, splotches, and up at the top, siding turned across. This will be the ridge. The big deal in the roof is that we have special conditions at the ridge or the top of the roof and usually the same kind of sheathing all the way down. We'll handle things like the fascia and the soffit probably as part of the building texture of a sheet because they have more like materials.
In this case, this is for the roof only. So I can reuse it in a number places if I need. As an example, I may be dealing in a number of dwellings that have corrugated metal roofs that can share a texture. In the Bump group on this, I've got the raw corrugations, I've taken out the rust, and I've added in the screw heads, which are really very, very tiny little dots with a little bit of white in the middle. They will be close enough. I can convert this to a normal map if needed. What I'll do is I'll save out this image, at least the color so we can tell how it maps on.
Over here in 3ds Max, I've saved out those textures from Photoshop, running the Bump group through nDo to produce a normal map as well. Now I'll add this on as a material so I can see it mapped on the roof. I'll press M for the Material Editor and make a new material. In this case, I will put in the Diffuse slot my color, choosing under standard maps a bitmap, and picking metal roofC. I'll go up to the Parent and show this in the view.
I'll call this metal roof rusty and select the roof and assign it. At the moment, we can't really see much. There aren't mapping coordinates on it. So we need to map it. I can come back later and add the normal map to this. I'm going to map this in the top view and I'll right-click and choose Hide Unselected just so I don't grab anything accidentally. The way to map this roof is by polygon.
I'll select a polygon, let's say this one first, and under the Modifier List add a UVW map on. The big deal is to make the map size exactly to fit this distance, from ridge down to eave, which I know is 96. I can measure it if needed, remember, using a poly plane, quickly snapping it in place. The length and width of my poly plane are 96x96. That's going to give me my map size. Back here to the roof with my polygon selected, I can apply my UVW map.
In that mapping, I'll set the Length and Width to 96.0x96.0 and then rotate it around in the right direction. For mapping this roof as I spin around here I want make sure that the ridge is up at the top. So I'll spin this mapping around by right-clicking and choosing Gizmo and rotating on the Z axis. That's pretty good although it's not quite aligned. We can see it's sort of sticking through. In the UVW map, we want to scroll down and try a different way of aligning.
In the Alignment, I'll use the Normal Align, clicking on it and then selecting that polygon. This lets me align that Gizmo very cleanly on that roof, making sure it's snapped in the right place. We can see I may need to scale this up slightly as that distance is slightly longer than my 96. You have some options in here. You can do it this way, scaling up that gizmo to match, or map it flat down. This is really up to you how you would like it to be.
I'm going to take the more exact approach and scale this up a bit. I'll try a Length of 110.0 and a Width of 110.0 as well. And that seems to fit pretty nicely. I'll remember that for future use. As we can see in my texture here, as I spin around to see it better, the rust is tiling. It repeats cleanly with some streaking in here. In a metal roof like this, it's okay to see streaking as it is part of the way these rust.
If I needed to clean this up, my PSD is layered in Photoshop for just such an occurrence, making it very easy to come back and repaint the rust so it works nicely. Now I'm going to continue to map the rest of these. In the interest of time, I'll come back to the completed version with all the polygons of the roof mapped in the same way. I've used the mapping on this roof in every different direction, simply selecting polygons by their direction in the roof and applying a UVW map. As you can see here in the Modifier stack, I've used a Poly Select modifier to jump between different polygons.
Now if I need I can collapse this whole stack back to an Editable Poly and the object will still have mapping coordinates. I'll convert it to an Editable Poly by right-clicking and choosing Convert to an Editable Poly, deleting the history or optimizing the object. I want to make sure that my mapping looks right before I do this. I can always come back and repaint the texture if needed, but I think it looks pretty good. I have a rusty metal roof on my building. The last step then is I'm going to add in the normal map and see if this behaves correctly in terms of the way it lights.
I've put in a directional light in the scene to help me with that. I'll unhide everything. I'll press M for Material Editor and scroll down to the Maps rollout. In the Bump slot, I'll add in a Normal Bump. In the Normal Bump under the Normal, I'll click on the None slot and choose Bitmap. And finally, I'll pick the metal roofN for Normal. This should work fairly nicely. If this doesn't show as well as it needs to, I can always add another light in.
I think for now what I will do is make sure that my shading or my lighting and shadows illuminate with the default lights instead of the scene lights. And I should get a better look on it. I'll also make sure that under Materials, I am using Realistic Materials with Maps. And I start to see my ridges, my corrugation pop out very nicely. In the Material, I can always increase the Normal strength or increase the Bump strength from the default of 30. As a final note, I design my bumps to run at a strength of 1.
Many game engines only run a bump at full strength. There is not a question of how much. It's just is there one or not. So I design it to run so at a strength of 100 here in Max, it looks pretty good. It looks like a rusty corrugated metal roof on a building. For your roofs then, think about the amount of room you're dealing with. You're dealing with a roof that quite possibly is a third of the amount of building you are going to see. And we might be seeing it from fairly close and able to pick out detail.
We also want to think about carefully how a roof wears and accumulates things like dust and dirt. Different kinds of roofs are going to have different materials applied, which we can paint in Photoshop easily using an organized layered workflow.
There are currently no FAQs about Creating Urban Game Environments in 3ds Max.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.