Allegorithmic's Substance Designer in Review
September 29, 2014 2:17 am
Substance Designer is one of those software packages that has been around for some time, but I never took the time to test until now. The main reason why I took the software for a spin is the ability to use substances inside videogame engines. I’d like to clarify that substances can also be used in 3D applications (like Maya), so they are not exclusive to videogames or real-time graphics.
Substance Designer - Overview of a Substance
Fundamentally, Substance Designer is a node-based procedural material generator. If you have used node-based material editors before, Substance Designer shouldn’t be too hard to pick up. The main difference is that material editors generate materials since all your connections end up in your global shader node, while connections in SD end in different “outputs” (textures to be used in your host application’s material editor).
The workflow in Substance Designer is pretty straightforward. You create a new graph in your current project, and 3 output nodes are automatically created for you (Diffuse, Specular and Normal). You then add more nodes and connections to get the result you want. You can review your progress in the 3D view pane (using a either a custom model or any of the included primitives), and when you’re happy with the result you can export your substance to use it in your host application.
So far the description sounds really simple, but there are different tools and workflows that make the latest version, Substance Designer 4, interesting. One interesting feature is material layering. You can combine different materials and use color masks to define where each material goes. This can be very useful in cases you need to apply different materials or looks to the same object (for example, if your model has metallic and plastic parts). You can also use a built-in painting pane to create custom bitmaps. Keep in mind this paint function is not nearly as powerful as painting your base textures in Photoshop (or a 3D painting application) and then importing them into the application.
When you create specific networks or functions that may be useful in other projects, you can save them to your Library. Content of the Library can be shared or moved to a different computer, so functions created by someone on your team can be used by anyone else, by either copying the files from one system to the other, or pulled from a shared library.
If you import a custom model into Substance Designer, you can bake different maps, like normal or ambient occlusion. This is a really useful feature, since you may need one of these maps for your material, and you won’t need to leave the application to bake maps somewhere else.
The 3D View supports different rendering methods, including “physically accurate” rendering. This is a nice way to see how your material might look using a physically accurate renderer in a host application, but ultimately your substance’s look will be defined by your renderer, as substances will rely heavily on your host application’s rendering engine, and what you get in Maya may look different than what you got in the Substance Designer 3D view pane. Substance Designer exports pixel data to your host application (you’ll be tempted to think it exports textures, but I can’t just call them “textures” because you can procedurally modify them inside the application).
For my tests I used Maya and UDK, and in both cases the resulting data is pretty much the same: separate procedural texture nodes corresponding to the different outputs present in your substance graph (color, normal, specular, and so on), and a global node where you can change the substance parameters (these parameters include the ones from your nodes, and the ones you manually exposed in Substance Designer). A material is also created automatically, with all the textures and nodes connected to it. Changing the parameters in your global node affects the textures based on what those parameters do, meaning the textures can be procedurally modified in your host application (for example, you could set up an Expression in Maya to change specific substance parameters).
Substance Designer may not fit all scenarios, or maybe there’s specific times when you’d rather paint your textures instead of generate them procedurally, but it’s still a very good companion or alternative to create materials for your renderings or video games.
Sergio Aris Rosa [nemirc], is Sr. Staff Writer for the Renderosity Front Page News. Sergio discusses on computer graphics software, animation techniques, and technology. He also hosts interviews with professionals in the animation and cinematography fields. You can follow him on Twitter, and if you want to see what he's up to you can visit his blog.
September 29, 2014
Please note: If you find the color of the text hard to read, please click on "Printer-friendly" and black text will appear on a white background.
Please take a moment to join Renderosity's Newsletter List to receive news and information from Renderosity!