Quick trick to add complexity in your concepts

concept prototyping texture maps Mar 11, 2020

In this quick tutorial, I'm going to walk you through a very simple process to generate tileable sci-fi textures to add visual interest and complexity to a very simple scene. 

We'll be looking at the NanoTile plugin from ZBrush as well as an IMM brush to produce the tileable maps and then I'll show you how to set them up for the shot inside Marmoset Toolbag 3 (you could use any other renderer for this part)

Software:

Here is the final concept inside Marmoset toolbag 3 before colour adjustments:

And here is the final shot after tweaking colours and levels:

The trick for this technique is mostly on the generation of the maps which is what I'm going to show you next. Once you have the maps you have a digital playground to find them an appealing camera angle, mood, and lighting. 

  1. To start with, all you need to do is:
  2. Open up ZBrush
  3. Go to the ZPlugins menu and expand the NanoTile Textures plugin
  4. Click on the 'Create New TileTool' button (leave the rest of the settings as default)

Once the plugin has created and framed the tool, you can use any NanoMesh brush to insert objects and this setup will automatically tile what you insert.

I selected the IMM ModelKit brush that comes with ZBrush, and turn that into a NanoMesh brush. This process is super simple:

  1. Select the IMM (Insert Multi Mesh) brush that you want.
  2. Go to the brush palette and expand the 'Create' subpalette
  3. Click on the 'Create NanoMesh Brush' (if this option is greyed out, you probably haven't selected an IMM brush). 

That's it. I went ahead and inserted a few different meshes in my NanoTile tool and got something like this:

I like to do this process with the 'Normal Matcap' to see the result in real-time as I insert the meshes. Here is a quick timelapse of what I did to come up with this arrangement of objects using this plugin:

(to choose this normal material, click on the material thumbnail and it should be in the under the 'Standard Material' section: 'NormalRGBMaterial')

Once you finish adding the objects, all you need to do is go to the Document palette and hit the 'Export' button (make sure you are at the 'actual size' of the document).

I saved the document as PNG image and that is one map (the normal map) ready to be used in the render engine. 

The next thing will be to extract an Alpha from the current mesh. This alpha will work as a displacement (height) in the render. To create this second map, you need to go to the Alpha Palette, expand the 'Transfer' subpalette and click on the 'GrabDoc' button:

Now we should have two tileable square images: Normal and Height (from alpha). 

Within ZBrush, you can use the Surface noise to import the Heightmap and test it on an object. Make sure you click the 'UV' switch at the top to project the texture based on UVs:

We're almost done with the setup... All we have left is some kind of object or platform that we can use to apply these maps and find the camera angle for the concept. I spent a couple of minutes creating a very basic tunnel shape with the ZModeler and some Deformers (to bend the structure):

Very simple but we don't need anything more than that. The last thing to complete the setup is to give this piece some UVs (you can use the UV Master in ZBrush) and export it as an FBX or OBJ.


Setup in Marmoset Toolbag 3

In Marmoset, you can drag and drop the FBX of OBJ file into the viewport to load it. The assign a material to it and plug the textures into the material:

  • Normal map goes into the Surface slot
  • Heightmap goes into the Displacement slot (you need to enable 'height' from the drop-down). Also, play with the 'Scale' slider to tweak the intensitY.
  • Add PN Triangles to add some tesselation (add resolution to the mesh).
  • Play with the 'Texture Tiling' slider to refine the placement and scale of the details.

After setting up the material and assigning it to the object, it might not look great. However, the idea is to get just a base and to break up the light and values to create something interesting for the shot using the details from the maps. 

here is how my mesh looks before setting up the camera for the shot (not very impressive haha):

(I also added a plane at the top as a 'roof' to block the light)

The next step is to play around with the camera and find a position that works for the shot you are trying to create. Since I was after some kind of sci-fi corridor or hangar, I made my point of view quite close to the ground and place the camera in a way that you don't see the other side of the tunnel to make it more 'mysterious'.

In terms of the lighting, I created a directional light coming from the back and rotated it so that only a portion of the right curved wall was in the light. Then I added a couple of Omni red lights for 'dramatic effect':

That's it really... All that is left is to play with the camera and render settings to add a bit more of AO, some Depth of field and perhaps a bit of Fog to make the shot more atmospheric. Here is the same shot as above with all the camera and render effects enabled:

(by the way, I made the material with the maps a bit shiny to catch some cool reflections)

Once you are happy with your shot in Marmoset, you can render an image (Capture > Image) and send it to Photoshop for additional compositing and color tweaking.

I cropped the image and re-frame the shot for a more cinematic look. I added some color correction layers and change the white balance a bit to refine the look I was after. 

Keep in mind that this is a very quick concept where there are not roughness or albedo maps. You can spend more time on your base mesh create additional maps to create variation in roughness and colors and that should give you an even more complex effect. 

Also, this demonstrates the use of a single pattern created with the NanoTile plugin, but you can have a dozen different patterns applied to a bunch of different objects to further refine your concept. 

I hope you have found this guide on quick concepts from tileable textures useful!

Here are a couple more shots I was considering before deciding on the final one for this tutorial (just moving the camera and changing the light):