DDO is Quixel’s flagship PBR (Physically-based Rendering) texturing software. With DDO, you can quickly create textured models and tileable materials. It’s a tool that was designed to work extensively with Photoshop to leverage the strength of Photoshop’s image editing features with Quixel’s scan-based texturing techniques. The end-result of this marriage between DDO and Photoshop is lightning-fast texturing that’s as procedural or scan-based as you prefer to work. Great results can be created in a fraction of the time that other workflows would require. The huge library of Materials and Smart Materials offers a nearly unlimited amount of ways to combine textures and masks to produce a diverse range of high-quality artwork.
In this write-up, I’ll cover my workflow with DDO, the theory behind the tool, and the ways I leverage DDO to produce textures quickly and accurately. This is a follow-up to the NDO tutorial I released for New Year’s 2017. I’ll be demonstrating how to take NDO-detailed models directly into DDO, the process for setting up DDO’s expected input maps, DDO Painter, and a variety of tips and quality-of-life improvements to make working with DDO feel natural and easy to do. Let’s take a look at the end results of my NDO tutorial first.
My TrinityRail tank car after being detailed in NDO. Rendered in Marmoset Toolbag 3.
The foundations of working with NDO carry forward to this tutorial as well. If you haven’t read it yet, the link is in the art description. Be sure to have your references up and visible. You’ll need a tool like PureRef. to view an image canvas of your references so you can accurately texture your model. The image below is a small sample of the PureRef scene for this project. I would also recommend that you consider following my suggestions in the aforementioned NDO tutorial for your window and display layouts. It will make texturing significantly easier and allow you to work much faster.
PureRef is an amazing tool and comes highly recommended from the Quixel Staff
Let’s go over the DDO Base Creator interface.
The Mesh input tab allows you to select your exported model. DDO works with several formats, the most common being OBJ and FBX. The Optimize Mesh checkbox should be left intact for all models loaded into DDO unless your workflow requires a non-standard mesh optimization procedure. If you need to uncheck this option, you’ll know – so leave it checked unless your work requires it.
Any meshes within the exported model file will appear in the Mesh Group dropdown. Combine meshes by UV set before exporting to DDO. Everything that’s on the same set of UVs should be one object. DDO treats each object as a separate object with its own input maps and exports. You’ll reduce the impact to your system by ensuring that your meshes are combined by UV set before exporting, and you’ll eliminate the time needed to combine textures from different PSDs together into a single document per texture type.
Material ID: Loads up a color ID map for masking layers in DDO.
Normal: Loads a tangent-space normal map.
Flip Y: check this if the green channel is inverted in the bake.
AO: Loads your model’s AO map. For best results, combine NDO-painted normals converted to AO with the low-poly baked AO to get the low-poly’s occlusion pass mixed with the NDO-painted normals for masking.
Object Space Normal: This defaults to Bake In 3DO when a mesh is loaded. You can load your own OSNM if you prefer but it’s a lot easier to let 3DO bake it for you. OSNMs allow for directional masking similar to how Position Gradient maps do, except with much finer microsurface detail control.
Curvature: If you’ve loaded a tangent-space normal map, this will auto-fill to indicate that your curvature map will be derived from the normal map. If you’ve created your normals entirely in NDO (or a similar program), this will produce masking only around the painted normals. If you’re working with normals you’ve painted and haven’t done a high-to-low bake, ensure that Bake In 3DO is checked before proceeding so the normal map’s curvature is combined with the low-poly curvature.
Position Gradient: This defaults to Bake In 3DO when a mesh is loaded. This is essentially a directional mask that allows you to mask details by front, back, up, down, left, right, or any combination.
Height: This loads a displacement map into DDO. If your mesh isn’t dense enough, you won’t see a displacement effect in 3DO.
Prebaked Textures: This option is for utilizing existing maps. I’ll be using this to load up the truck (wheel) assemblies for this vehicle as I’ve already painted them before.
Resolution defines the map-res of the materials you’ll be creating. Generally it’s best to leave it at the same resolution that your input maps were created in.
Texel Density defines the repetition of textures in practical terms. It’s best to leave this at 2048 unless you need a specific density to match the scale of your object.
ID Preset: You can create ID Presets from DDO projects to assign materials and Smart Materials automatically based on color IDs. Using the same color IDs that the ID Preset uses will allow you to get the same look and feel across a variety of different models, saving vast amounts of development time.
Export Target: Pick the correct one for the engine or renderer you’re working with. The field below this shows the textures most commonly associated with that particular target.
16 Bits per Channel: Keep this unchecked unless you’re working with 16 bit input maps.
Save In: Specifies a location on your drive to create your DDO project. Note: You can create blank DDO projects for assigning basic Materials by simply entering a path here if you don’t need to create a texture for a specific model.
Now that we’ve covered the Base Creator, let’s move on to some specifics in my workflow. You might have your own workflow that you prefer – or you may be a new user and have no idea where to start. In either case, it’s never a bad idea to see how other people do things, so I’ll share my process for creating the texture-space AO using NDO. I’ll need a low-poly AO bake, too. xNormal is great for this if you’re working with a GPU that supports Optix rendering.
I have not found a tool yet that can bake 16k AO maps faster than this.
I’m working at 8k, so I’ve baked my AO map at 16k to downscale to 8k. Optix doesn’t support Anti-Aliasing, making this is the only way to filter the AO using xNormal. Set the output bake to PNG so the transparency is baked into the texture. Once you bake the AO, open the PNG in Photoshop, then select the opacity of the layer by CTRL+LMB on the layer thumbnail in the layer stack. Contract the selection by roughly three pixels, invert it, then press BACKSPACE to clear out the unselected portions of the texture. Resize the texture to half-res and select Filter → xNormal → Dilation. Pad the texture by 8 to 16 pixels, depending on the map resolution. I’m using 12 pixels at 8k because the majority of the texture is a similar material using similar paint.
Once the AO map is resized and padded, save it as a PSD – calling it AO_Master.PSD is a good name, since it’s going to contain the texture-space AO that will be generated from NDO. If you didn’t use NDO or another similar tool to develop your detail normals, you can skip ahead here – otherwise follow along and I’ll share my technique for bringing texture-space AO together with the low-poly AO!
The workflow is simple. Once the AO is baked, trimmed, and padded, take your NDO PSD and open NDO. From the NDO menu → Map Converter. The Map Converter defaults to convert normals to AO.
Combining texture-space AO with low-poly AO allows for additional control over masking in your DDO project.
Before you convert, turn off the visibility for the baked normals layer – it’s almost always at the bottom of your layer stack in Photoshop. Once you’ve done this, you’ll have a similar result to the center image above. Open the master AO PSD. Switch to the NDO occlusion PSD, right-click and duplicate the OCCLUSION folder into the master AO. Set the OCCLUSION folder to Multiply blending. You’ll get the result seen in the rightmost image above. Save the PSD, then save a copy of this PSD as a TGA (or other format) to load into DDO.
I’ve loaded my model into DDO, which is called Tanker.FBX, with the Mesh Group inside called Tanker. DDO sees this in the Mesh Group dropdown. If I had multiple groups, I would load input maps for each group.
You’ll notice immediately that I’m not using a Material ID for this project. This is because the vast majority of the vehicle is a similar material and won’t need detailed IDs. I also tend to prefer working without IDs, so I leave this blank most of the time. Any masks I need will be generated using Polyunwrapper 4 in 3DS Max.
The Curvature input is pulling curvature from the tangent normals. Bake in 3DO is left off here. As mentioned earlier, if you’re working with a model that wasn’t baked high-to-low, keep Bake in 3DO checked for Curvature to combine the low-poly curvature with the curvature of the tangent normals.At this point, I hit Create and 3DO launches. It will generate Position Gradient and Object Space Normals while DDO will use Photoshop to derive the curvature from my baked tangent normals.
Once the project is loaded, I switch back to Max. I’ve kicked out the wheels together with the main body and I’ll load the textures I made for them previously. Once I’ve exported the wheels and main body together, I open 3DO and immediately switch to the Import tab, then select the three dots next to the mesh group name and select the model I’ve exported. I can now switch mesh groups to the wheels and add the exported textures from earlier. I could have loaded the Pre-Baked slots in DDO’s Base Creator if I intended to modify the textures.
You can add mesh groups for previewing after a project is created.
Now that the vehicle is loaded and ready to start, let’s break down the interface so you can follow along easily.
I like to work with materials like they’re real surfaces. Building materials like this makes it easy to understand how to work in PBR with DDO, since I’m emulating reality instead of trying to work around it. I start with the base layer for a given material, then work up from there. I’ll also add paint, then add in damage like rust, dents, grunge, and other assorted details. I’ll also add decals in Photoshop using Smart Objects across texture maps.
This is the beginning of a lot of work yet to come
I’m starting off by creating the base for the vast majority of this vehicle. Tank cars are made of high-strength steel, so I’ll make the base layer from a basic Material. I like using Steel – Dirty for this. By default, I feel that this material is too strong for the look I want, so I’ve adjusted it in several ways. Here’s the values used above:
Albedo Texture Intensity: 10%
Roughness Texture Blend: Overlay, Intensity, 100%
Normal: Texture Intensity: 10%
Texture Scale: -1
This reduces the material’s microsurface detail and brings it in-line with the appearance of my references.
Once this step is complete, I then open DynaMask and set the steel material to be blank. The other material layers I’ll create will be set to Overlay and will pass through their normals to the underlying baked normals. I don’t want the steel material to appear across the entire vehicle just yet – only in places where there’s surface imperfections like scratches or dents. These vehicles have imperfections on them through daily use that this material helps capture – I’ll specify where to apply those details later on. The tiling will become a non-issue because of the selective way I’ll apply the steel textures to this model. My next step is to add a layer of paint – so I’ve opened up the Basic Material browser → Paint → Paint – Thick Machine Paint. This defaults to a yellowish-orange paint color with heavy normals. This needs to be adjusted to match my references:
Albedo: Color Hex #111111. Texture Intensity: 25, Texture Blend: Linear Light Roughness: Value: Hex #3e3e3e, Texture Intensity: 50, Texture Blend: Vivid Light Normal: Texture Intensity: 10, Texture Blend: Linear Light
Texture Scale: -1
Matching references can be tricky. Use your eyes and study closely!
Now that I’ve got a base material, I’ll group these two layers to make it easier to read my project as its complexity increases. This group will be called Base Paint. On the next page, you’ll see an image of the actual tank car in my PureRef scene that I’m sourcing for roughness values and overall look and feel. It’s a bit cleaner than what my end-result will look like.
Good reference is critical to getting a material to look correct.
My eyeballed values for roughness aren’t perfect, but they’re close enough! When I place this in Unreal 4, the Screen-Space Reflections and camera setup I use will make it look almost identical to the references. At this point, I want to start getting some grunge into this vehicle to make it start to pop out and look less factory-fresh. It’s clear from the reference image that these tankers are kept relatively clean, but dirt will always find a way to sneak in on a vehicle in the outdoors. It’s an unavoidable fact of life.
For a grunge base, I’ll use an existing Smart Material by opening the Smart Material browser → 09 Legacy → Heavy Directional Dirt. This needs significant modification to produce a result that will work well with this vehicle – welcome to the DynaMask portion of this tutorial!
Each texture layer combines to form a pre-defined look based on the parameters in the DynaMask for each layer. I’ll need to use each layer’s DynaMask tweak the look. To do this, I’m turning off each layer and then adjusting from the bottom up, turning layers back on as I continue up the layer stack. Holding ALT while doing this will bypass updating 3DO, making the process quick.
One of the first things I do with a new DDO installation is set DynaMask to use Advanced masking options.
By default, DynaMask is limited to a small set of adjustments to make mask editing easy for beginners and advanced users alike. A lot more options for customizing masks will be possible after opening the Advanced settings. If you’re comfortable with having more options available to work with, you’ll need to enable this option – so be sure you do that immediately after opening DynaMask.
There’s a nearly limitless way to combine textures using DynaMask’s advanced editing features. This portion of the tutorial will show how I take Smart Material layers and adjust them to suit the specific look and feel I need for this project. On the following page, I’ll point out the DynaMask menu features for quick reference.
On the left is the standard DynaMask editor. On the right, the Advanced editor. The Advanced editor allows for a wide range of different masking options based on your input maps and model details.
I’ll be adjusting the General Dirt layer by discarding the DynaMask values entirely, demonstrating how I build custom DynaMasks using fully procedural editing. To clear out the mask, I’ve picked Black in the preset browser. This preset completely clears out everything, and no texture details will show through. I’d like to add dirt accumulating from the underside of the vehicle, so I’ll begin by opening up Object Space Direction by clicking the arrow next to the blend mode.
Holding ALT while adjusting most details (including moving sliders) will bypass updating 3DO, just like holding ALT in the main DDO window bypasses 3DO while adjustments are being made.
With the additional controls for OSD opened, I now have access to every aspect of the Object Space mask. Inverting Top/Bottom causes the mask to appear on the bottom of the vehicle, and setting Filter to 75 causes it to spread out closer to the top of the tank car. A little bit of blur keeps the dirt mask from looking completely procedural, and some added contrast gives more depth to the mask for the additional textures and effects I’ll be layering onto it.
Note that I have reimported my model to see the underside more clearly.
The OSN will be used with the Gradient, AO, and Texture inputs to create a convincing dirt mask. The next step is to enable the Ambient Occlusion. By default, it will be set to blend as Multiply. Inverting the AO mask will mask out the majority of the OSN, focusing the details almost entirely on the underside of the vehicle where dirt naturally accumulates. However, since the OSN is still masking this DynaMask, areas that wouldn’t receive heavy dirt (such as the underside of the valve covers on the very top) are now dirty.
AO-based masking is a quick way to produce realistic procedural masks.
I’ll fix this by masking the OSN by the Gradient map, forcing the dirt to accumulate primarily toward the bottom of the vehicle.
Inverting the Top to Bottom slider (to force the mask down) and setting its blend mode to Screen allows it to mix with the OSN mask. Adjusting the Offset to the left forces the mask to focus completely toward the bottom half of the vehicle, and the Balance shifted left helps tighten it up.
I’ve gone back to the OSN mask and changed its blend to Overlay, and set the Top/Bottom mask to blend Overlay as well. This allows it to blend over the Gradient in a way that has the dirt accumulating almost entirely on the lower two-thirds of the vehicle.
Building quality DynaMasks is a step-by-step process, just like all good art.
I’ve now defined where the dirt will appear. The next step is to apply a dirt texture to it. Loading a texture is as simple as clicking the thumbnail. For this I’m using Masking Patterns → Dirt → Dirt 10.
The Texture blend is Overlay. The Albedo mask channel is blending at default opacity. Scale at -1 helps put the texel density into the correct proportion to the size of this vehicle. Brightness at -15 and Contrast at 90 blend into the OSR, Gradient, and AO masks below to produce this result:
Dirt: it does a model good. I would probably wash this if I owned it though.
This looks great so far, but it still needs to be pushed farther. To break it up, I’ll add another texture into Texture (Secondary) to act as a surface breakup controller to further define where this dirt will accumulate.
The Secondary Texture is really great for adding additional details procedurally. I’d like a splatter-type dirt at random points on the tank car, especially around the area where the wheels contact the rails. Any wet rail surface will throw up dirt onto the tank car body. To get the effect I want, I again click the thumbnail next to Texture (Secondary) and select Masking Patterns → Decay → Rust 10.
A bit of custom masking goes long way.
This is shaping up pretty well! One problem though is that there are visible texture seams behind the bulkheads on both sides. I need to edit those out before I can really call this mask complete. This is where DDO Painter enters. Anytime you’ve got 3DO open with DynaMask active, you’re in DDO Painter mode. You can 3D paint on the surface of your model and produce masks that simply aren’t possible with procedural texturing alone using the editor.
3D painting makes seam removal efficient and simple.
I’ll use the 3DO brush system to paint out the mask in this area to fix the texture seam. I’ll begin by clicking the white circle below the Painting tab, which brings me to the brush window. If you’re comfortable in Photoshop, this window will look very familiar to you!
The brush you use is up to personal preference. There’s a vast array of brushes to use and different effects you can put together similar to how Photoshop brushes function. One major feature that needs enabling is Undo. By default, it’s turned off – specifically to improve performance in 8k painting. At the top-right of 3DO, open the Performance dropdown and enable Undo. I would recommend keeping Auto Fix Seams disabled unless you’ve got a decently powerful system, otherwise you’ll need to wait a few moments in-between paint strokes for it to update. The Fix Seams button allows you to fix any seams from painted strokes when you wish.
With some hand-painting over the seams, I’ve removed them almost completely in every conspicuous area on the model. This process only took a few minutes and really adds to the believability of the final result.
3D painting is super easy, fun, and makes the final result so much better!
Adjusting the mask with DDO Painter is an essential step in some cases. Seams are unavoidable due to the nature of UV mapping, but a little bit of 3D painting makes it all go away!
Later on, well add more depth to this mask using the Bump channel.
As you can see above, the final layer looks pretty convincing. Bump mapping will push it to the next level. Bump in DDO is bump mapping just like it always was – a simple black to white gradient map that defines the raised or indented areas of a texture. Used with DDO’s DynaMasked layers, the Bump channel allows you to define depth based on the shape of a layer or its mask Dirt splatters will look significantly more realistic with good use of the Bump channel!
To add a Bump channel to DDO, I’ll use the DDO menu → Add New Map → Bump.
The Bump channel should start off as flat gray. Anything whiter than 50% gray will bump upward. Anything darker will bump inward. It’s an effective way to add details to a project without using NDO to do it.
The splattering looks good, but it needs to be pushed farther!
The dirt layer will get bumped to about 60% RGB, or hex #9a9a9a.
A little bit of bumping makes this material pop so much more!
This looks a lot better!
One thing to note about Bump channels in DDO is that they’re rolled into your normal map at export when you’re working with a game engine profile. If you’d prefer finer control over the end-result, you can always process the Bump channel through NDO (overall or per-layer, however you prefer) and overlay the converted normal detail into your normal map using an Overlay blend in Photoshop.
Bumping isn’t just for adding details on existing DDO layers. You can also add details from a Color Paint layer, or by adding images, paint, vector shapes, and anything else you’ve placed in the DDO PSD in Photoshop.
Don’t be afraid to be creative with the Bump channel. I’ve found myself using it for additional normal details I didn’t need to add in NDO, such as adding depth to decals or stickers. You can even stamp bolts and other heightmap-type details using DDO Painter!
NOTE: Working with Bump while DDO Painter mode is active will produce the most accurate preview in 3DO.
Decals are an essential part of many projects. This one utilizes reflective tape, US Department of Transportation hazard placards, stenciled text, weight information, etc. I’ll cover the techniques I use to add decals to this project and how to kick those decals into other map channels. In the NDO tutorial I wrote (the link is in the description for this post), I mentioned that I make liberal use of Smart Objects – both as containers to speedup Photoshop, and as a way to preserve the current NDO details at small pixel scales when resizing.
Since the DOT placards were set as Smart Objects in my NDO PSD, adding them to this project was simple. I opened my NDO PSD, opened the Smart Object, used the NDO layer as a mask, and then pasted the DOT placard into the Smart Object. Once I duplicated the Smart Objects into my albedo PSD, I closed my NDO PSD to avoid saving the changes I made to the original Smart Object. If you didn’t work with a Smart Object, it’s still easy to place the decal in Photoshop.
Placing decals in Photoshop is best done with your UV layout overlaid in the PSD
This placard looks alright, but it’s missing some additional touches.
There’s a noticeable difference in reflectiveness between the paint to the placard. To get that difference, I’ll use DDO’s Copy Layer to All Maps feature. This is found by opening the DDO menu → Copy Layer to All Maps. I’ve placed my placards into a regular Photoshop group (grouped with Photoshop, not with DDO), selected the group, and used Copy Layer to All Maps. I only need this in the Albedo and Roughness channels, so I’ve selected both of them and unchecked all other maps. DDO will then copy these layers over to the specified channel(s) – allowing me to edit them to match the kind of texture per the document requirements. In this case, copying over the placards to the Roughness channel causes the black text to become a perfect mirror.
Darker values reflect more light. This placard needs uniform roughness.
Fixing this is pretty simple. If you’re a little on the old-school side and worked a lot with Photoshop, you might be familiar with Level Adjustment layers. They’re quite powerful, doubly so when used as clipping masks to apply the mask directly to the layer – instead of the entire document. Adding a Levels Adjustment layer and pressing CTRL+G will apply it to the layer directly underneath it. Alternatively, you can press ALT and hover between the two layers with your mouse, then press LMB.
Do not be afraid to adjust textures in photoshop directly. Sometimes you have to.
Let’s take a look at how this adjustment fixes up my reflection.
That matches my reference much better – and there is still a little bit of variation.
I feel the final result looks good enough for what I need. If you’re curious about the numbers on the DOT placard, 1987 declares that this vehicle is carrying Alcohols (Ethanol). The 3 denotes HAZMAT Class 3 Flammable Liquids. I’m using this in my Florida Megascans environment for accuracy: there’s a frequent ethanol train moving through Central Florida that this tank car will be used to portray.
The couplers on both ends of the tanker need a specific type of rusted steel. I’ve built a Smart Material for this from the locomotive I created, so I’ll apply that.
Wow, this is ugly! Lets fix it.
The material applies to the entire vehicle. This is definitely not the look that I want, so I’ve rendered out a mask from Max to use here with a bleed around the mask to pad the edges. Contrary to popular opinion, Color IDs (also known as Material IDs, clown maps, etc) are not required for next-gen texturing using DDO. They can be useful to save some time with detailed masks, but quickly become problematic if the model requires significant changes and the Color IDs weren’t baked from a high-poly. I prefer to work without Color IDs lately unless there’s enough complexity to the model’s materials that would necessitate pre-masking everything I’m going to work with. In the case of this tanker, Color IDs wouldn’t be terribly useful for me, so I’m generating masks from Max with Polyunwrapper 4 and importing them into DynaMask as-needed. I find that this method saves me a lot of time and is easier to fix if I need to reimport. I’ll use this technique for the rest of the materials.
Painting custom masks is simple with DynaMasks!
Once I clicked Paint Mask in Photoshop, DynaMask switches within the layer stack to the folder that allows for custom masking. Anything you paint or place in here will show up on the model. It’s the same as using Color IDs, except I’m not frontloading the mask work as an input texture. If you’re baking your Color IDs, you can generally skip this process as any model changes you make can just be re-baked – but since I did the majority of this project with NDO, I’d rather just make selections based on my NDO layers or low-poly geo to speed up.
Be aware also that while we’re on the subject of masks, any mask edits you do inside of Photoshop must be applied using Paint Mask in Photoshop if you want to keep them after activating DynaMask again. DynaMask will revert to the settings applied to the layer, so anything painted in Photoshop without being added as a custom mask will be discarded.
Color Paint layers are a relatively new feature to DDO. It creates a new blank layer that you can paint any color into, with total control over opacity, blending, and flow. DDO Painter’s DynaMask 3D painting is also powerful, but its paint is controlled by a series of layers in the *_Mask.PSD stack that generally gives it a Hard Light blend regardless of how you paint. Color Paint is not limited in that regard – you can define the blending, and the paint strokes are capable of being much softer as a result. For this vehicle, I’m using Color Paint to add worn-off glossiness to the handrails of the catwalks. Repeated grabbing eventually wears off the enamel.
Adding a Color Paint layer is done by clicking the Color Paint button at the bottom of DDO. Once created, it immediately enables DDO Painter, so be sure to create it with the channel that you intend to work with first, otherwise you’ll need to click the Paint icon to disable DDO Painter and re-enable it on the correct channel.
Color Paint layers give a lot of flexibility for custom detailing.
I’ve painted in the Roughness channel here, using a nearly pure white color to wear off the reflectivity of the paint enamel. Adding other colors is simple: Press V or slide between black and white at the top of 3DO. If I were painting Albedo, 3DO would give two color swatches to pick, with X switching between them similarly to Photoshop. A quick hotkey guide for DDO Painter:
X: Swap color palettes.
CTRL+SHIFT+U: Repeat last stroke.
SHIFT+LMB: Paint in a straight line. If paint was applied previously, LMB to paint across in a straight line.
V: Color palette
B: Switch to Paint
E: Switch to Eraser
B (or E)+LMB: Change brush rotation by dragging and holding LMB.
B (or E)+RMB: Change brush size by dragging and holding RMB.
[ ]: Change brush size.
MMB: Pan in 3DO’s viewport.
I want to cover a few other things here, too.
Clear will remove any paint created by DDO Painter. The button next to it is Normal Aligned Painting – the brush will align to the face normals. Disabling this will allow for Camera Aligned Painting. The button next to it is Paint Through Thin Geometry, which makes it easier to paint through thin parts of your model. Symmetry enables symmetrical painting in one, two, or three axes.
Mask Using will use the Color Paint of the same layer in another channel to mask the painting in the current channel. Fix Seams will only remove painted seams – I covered this in the DynaMask portion but it’s important information to repeat.
Smart Materials are one of the biggest selling points of working with DDO – it comes shipped with hundreds of unique Smart Materials that are built from scanned Materials. Creating your own is simple and yields consistency between projects and a significant time savings too. The nature of Smart Materials is reflected in the XML editing system behind much of DDO – DynaMask and DDO layers are all essentially XML code that take input maps and meshes to produce a result based on the combined sum of their parts.
You may find that some of the materials that ship with DDO aren’t the exact look you need. You may also create a really sweet material that you’d like to use on other projects, or perhaps you work in a studio and would like to make the majority of your work look like it has a unified art style. This is where using and creating your own Smart Materials comes into play. For example, I’m quite happy with the splattered procedural dirt I created earlier in this tutorial – I’m going to save it as a Smart Material to use on any other project. To do this, I’ll use the Create Smart Material button.
To create a Smart Material, select the layer or group for the desired material. In this case, I’m using General Dirt and Fine Dust. If the layer(s) isn’t grouped already, make sure it is before proceeding.
Once Create Smart Material is pressed, DDO will bring up a prompt to save the material by giving it a name. This will give it an associated XML file with the values for the layer(s) and mask(s). Once the Save button is pressed in the prompt, DDO will create a series of PSDs in the background to hold the data for the Smart Material preview. After a moment or two, 3DO will pop up and render the preview image. Once complete, the PSDs for the material will be unloaded and DDO will return to its normal state.
The new Smart Material can be accessed from the Smart Material browser, then selecting Custom at the top left of the window. This will bring up any Smart Materials created by you or other users that have been placed into the Smart Material directory.
If the Albedo channel does not have a layer covering the entire canvas, DDO will render the shaderball completely white with the masked areas showing through based on the DynaMask settings. In this case, the dirt splatters and dust are showing up toward the bottom. Extravagant materials will create much more interesting shaderballs in the previewer.
If you’re like me, you own a license to Marmoset Co’s Toolbag. The latest version as of writing this document is Toolbag 3. I’m a very fanatic user of Toolbag and find it useful for almost everything I do, especially for rapid prototyping of a specific look using DDO. Quixel’s 3DO previewer is a great tool, too, but sometimes you just have to render something out in Toolbag. The feature set makes it very easy to display high-quality models and textures – so let’s explore the DDO Cross-App functionality.
Open Toolbag before activating this mode. Toolbag will then be available from the Application dropdown. Choose the desired export target. I work primarily with Unreal 4, so I leave it at RMA-packed. I generally leave Hide Photoshop unchecked because I need to edit things manually on occasion, which can only be done if Photoshop is visible. Once ready, select Link Apps to begin the process. Link Apps will bring up the export location for the textures and mesh, which can then be placed inside of a Toolbag material and applied.
Toolbag renders are breathtaking in their ease-of-setup and final appearance.
Getting the look in the render above only took a bit of fiddling with camera settings and an added light. It’s a very easy program to learn, and Cross-App Mode works brilliantly with it. Each update made in DDO will reflect in Toolbag, making the two programs essentially seamless. 3D painting will still require 3DO, so keep that in mind – Cross-App Mode replaces almost all aspects of 3DO except for the 3D painting. I’ve included an overview of a basic material setup in Toolbag 3 below.
A little-known but highly useful feature of DDO is the ability to non-destructively flatten your DDO PSDs. This also includes non-destructively flattening standard Photoshop layers, including Smart Objects and text – both of which are being used heavily in this project.
RMB on any DDO layer will present this menu. Flatten All Layers will reduce the document to a single layer. Flatten All Layers Below will reduce everything underneath the current selection to a single layer. DDO’s layers are XML-based and are reconstructed once unflattened. DDO takes standard Photoshop layers and sets them aside for future editing if unflattening is required. This means you won’t lose any work, and you’ll gain speed.
Photoshop consumes RAM as images are loaded into it and more layers are created. As documents become increasingly complex, Photoshop will pull additional RAM until eventually the system runs out of RAM and Windows begins writing to the page file. This is where the most slowdowns for working with Photoshop come into play, and why the flatten feature is so important to utilize. Check your available RAM occasionally – once you’ve reached a threshold of about 80 to 90% used, save and restart.
DDO includes a handy Save & Reboot Photoshop menu item to speed this up a little. If your system is still slow after rebooting Photoshop, there’s also the ability to reduce the Preview Resolution in 3DO.
Reducing the Preview Resolution by Half or a Quarter can speed up GPU rendering significantly. Since this is an 8k project, reducing to Half would render in 3DO at 4k, and a Quarter would render at 2k. If your GPU is a little older than the current generation and starts having trouble keeping up with 4k or higher projects, it’s not a bad idea to consider reducing the Preview Resolution – especially if your system uses over 16 GB of RAM, since the bottleneck is entirely in the GPU.
Giving Photoshop a dedicated scratch disk to write data to will also improve performance across the board. I use a 60 GB SSD salvaged from my last machine for this, but 120 GB+ SSDs are cheap and plentiful now. It’s one of the few things that can be added to any computer to speed up read/write times. Saving projects to SSDs will boost performance as well, since read/write time is cut significantly between saving and previewing any changes being made to the project.
In this last section, I’d like to cover some techniques that I personally find to boost my productivity.
Keep UVs overlaid on top of each DDO PSD. DDO works well with Photoshop-based layers, so there’s never a reason to avoid using them. Having UVs in the document(s) will make it easier to pinpoint locations for work.
Color IDs were skipped in this tutorial entirely simply because that’s how I prefer to work, but Quixel’s own Scott Baker developed a tool called Quixel Colors that comes installed with Quixel Suite. It’s fantastic for developing Color ID maps. You’ll find it in the Quixel Suite install directory under the Colors folder. Alternatively, Polyunwrapper 4 in Max can be used to render out more than just selections as I demonstrated – it also creates Color IDs. You can grab it from http://www.polytools3d.com
The Bump channel can be used to really sculpt in fantastic material definition. Setting it to a low value of about 30% on the HSB scale will make materials like rust have a lot of depth. While painting with DynaMask, the Bump channel will display in real-time so you can see how the final effect will look. It’s quite convincing.
Physically-based Rendering doesn’t mean the artistic eye isn’t useful anymore. If everything is based on scanned values but looks flat and uninteresting, it’s not bad to exaggerate some details to force them to pop more. Don’t break the laws of physics, like making materials reflect more light than they receive, but don’t be afraid to use Ambient Occlusion to give additional depth to a texture in a game engine. Even engines like UE4 benefit from baked-in AO (unless it’s being done by wiring in through a shader) simply because it gives more depth to the texture and makes it look more believable, even if it isn’t 100% physically accurate.
Join us on our Facebook group: http://www.facebook.com/groups/QuixelToolsGroup – you’ll be able to share artwork with our large art community (over 14,000 members now!) and interact directly with the staff of Quixel. We love hearing feedback and are always genuinely interested in seeing what you’re up to.
I haven’t covered every aspect of DDO in this document, but I hope that what I did write was relevant to you!