Democratizing 3D environment workflows

Adnan Chaumette
Quixel AB
Published in
7 min readJun 6, 2019

How scan data can help you create breathtaking digital worlds

Counter-Strike’s iconic Dust II map, created by Wiktor Öhman

The gaming industry is about to experience its 22nd E3 edition, and it’s safe to say that the medium has drastically evolved over the last two decades.

From Final Fantasy 7 to Counter-Strike and the first Grand Theft Auto, the industry has gotten to a point where it’s easier than ever for a single artist to create highly detailed and realistic worlds very quickly.

The advent of technologies like proceduralism, photogrammetry and AI have helped artists create increasingly realistic environments, but the overall steps are usually the same for every object in a scene:

  • Create its 3D model.
  • Optimize it.
  • Unwrap it.
  • Bake it.
  • Texture it.
  • Integrate it in your game.

Automating some of these tasks would make asset creation faster and more intuitive, but you’d still have to deal with similar issues when looking at the bigger picture — creating the environment itself.

Finding solutions to these problems is at the core of Quixel’s mission, which strives to transform the entire process into a constant creative flow in which artists are not burdened by their choice of software or plugin.

In this article we’ll go through every step in that process to give you a good idea of how and why these solutions can be game-changing for artists.

Check out the breakdown video accompanying this article:

Blocking out the level

When working on a remaster/homage, finding the right references is always the first step. In this case the reference was extracted directly from Counter-Strike, by taking a set of pictures of the level from all possible angles, then creating a low resolution scan model from that data.

Reference collection
Low resolution 3D scan created with a scanning software

The next step is to build a blockout with primitive geometry (cylinders, cubes, etc…), then overlay them on the scanned map to get a 1:1 match with the original environment.

The blockout geometry made in Autodesk Maya

For the final step in this chapter, all we have to do is import these primitives into Unreal Engine and start working on the environment itself.

The blockout geometry in Unreal Engine

Creating the building structures

As discussed earlier, object creation for digital environments consists of multiple steps, but for the building structures in this scene all we had to do was model and unwrap a specific structure; everything else was automated.

Before we dive into that let’s have a look at what a typical building/house looked like:

House created and unwrapped in Autodesk Maya
House imported in Unreal Engine

From there you can repeat the same process for the remaining buildings. As you can see, they all use really basic geometry, so the entire map could be covered in an hour or two; which is drastically faster than the usual process.

Leveraging Megascans

Instead of baking, texturing and importing the buildings into Unreal Engine, this process goes straight from basic geometry to the final texturing stage.

This is done thanks to the Megascans library, which has the ideal construction plaster for the structure:

Preview of surfaces in Quixel Bridge

The last step of the usual process would be to manually export all the textures of this asset into UE4, then create the material, its material instance and finally apply it to the structure. This step is completely automated with Quixel Bridge, which is used not only as an asset browser, downloader and manager, but also exporter.

The export process goes like this: with that plaster material selected, you hit ‘Export’ and the asset with all its textures and material instance will be imported into Unreal, and the next step is just a simple drag and drop on your building.

This doesn’t look like your latest Battlefield game yet, and that’s because we need to add more detail to the structure itself before working more on the texture.

One detail that would work just great on this structure is a set of wood boards, and just like with the construction plaster we don’t have to create anything from scratch. By just typing “wood boards 3D” in the Bridge search bar we have exactly what we need. Hit export and let the fun part begin.

Do the same thing with a few other assets and within minutes you’ll start seeing the potential behind every structure you work on. This allows you to change things on the fly without ever spending hours creating something only to have to replace it later on.

Creating custom assets

The structure is starting to look promising, so let’s add more details on the walls to make them look realistic. In this section we’ll be exploring the creation of custom assets, which is always an option when you don’t find the exact asset you’re looking for in the Megascans library.

The first step in that effort is to use trimsheets, a workflow that allows you to overlay details around any given object, all without breaking the performance budget.

This starts with basic geometry that is overlaid on top of the wall:

Then you create your material in Quixel Mixer. This step takes just a few minutes to set up, and in this case three layers were enough to create this material.

The textures are automatically imported with the help of Bridge as well, which means you get the end result right after a drag and drop on your geometry:

This basic “geometry > Mixer material” process was also used to create a crate. The process is different from the trimsheets workflow, but offers a lot of flexibility with speed and no compromise.

Spicing things up with decals

At this point we’re really just having fun and overlaying detail on the structure while keeping an eye on performance. The next step here is to add some damage/leaks to the walls, and decals are perfect for that.

The idea behind a decal-based workflow is that you only use a basic texture (like we did with the construction plaster) on your base structures, then stamp all the needed details on top of your structure in order to make it unique.

As always, the process is extremely simple: find the decals in the Megascans library, hit export with Bridge, and start stamping them in Unreal Engine.

And that’s it for the structure. As you can see the entire process has been a fun challenge from the start, with no minute wasted out of the zone.

We can go back and swap every asset imported to a higher or lower texture resolution, or higher or lower level of detail on the geometry. Bridge takes care of that process as well.

The road and beyond

With the main structure detailed, we can finally focus on the road.

For the road we first need a set of concrete curbs, which are already available in the library. The road itself is created with simple geometry and a set of asphalt materials that are blended together through vertex painting.

Vertex painting

To give it a little bit more life, we then scatter a set of plants and debris with the help of the Foliage tool, and that should be it.

From there it’s just a matter of tweaking, polishing and applying the same logic to the other buildings. You can select a set of assets like the decals and trimsheets, then duplicate them on other buildings, rotate slightly to create some variation, etc.

The end result is a breathtaking scene that was fun to work on from start to finish.

Sharing the experience

We’ve learned a lot from this project, and while you can already get a good idea of the process with the breakdown video, we wanted to give you more than that with this blog post and an upcoming series of livestreams.

These livestreams will provide further details on all the techniques used in this environment, and will be a good opportunity for you to ask any questions you may have.

Tune in on Wednesday, 12th of June at 7PM CET on Youtube for the first in-depth livestream of this Counter-Strike project.

--

--