In this procedural modeling guide, we’ll pick up where we left off previously, and work on the decals and finer elements to our Xbox Series X inside of Substance Designer. We’ll then bring everything over to Blender and go over how to set up the textures and make use of displacement, to finally send it off to render at GarageFarm.NET.
Add in a shape node, set the shape type to disc, connect that to a transform 2d node, then connect that to another transform 2d node, scale it down a bit, and set to no tiling, blend, and set to subtract. I accidentally switched the inputs here, you can select these connections and press X to invert them. This gives us control over the thickness of the shape.
Connect the blend node to a transform 2D, turn off tiling, and now we can position it to wherever we want. Again, we can use a blend node to help us visualize where we want to position the logo.
Run it through levels, invert, then blur it a bit to soften the edges before blending it in with our heightmap. After that, scale and place it wherever you want.
Import the Xbox logo, copy the transform 2d node that we used earlier, and set the blending type to add (linear dodge) to blend that with our emissive map. Soften the edges a bit using a blur color node. Plug that into our emissive output and then scale it down until it fits inside.
To make the logo pop a bit more, convert it to grayscale using a grayscale conversion node and then plug that into a normal node and combine it with our normal map. Inverted it using levels to make the logo extrude inward and play around with the normal intensity until it looks right.
Now import the Xbox text. Duplicate our transform node for the logo and plug the text into that and rotate it to 90 degrees. Set the color mode for the text to grayscale. Plug the logo into a transform 2d node and convert to grayscale then set the blending mode to add linear dodge. Position and scale down the logo until it looks right.
Blend that with our logo and use a transform 2d node to position it to the left side panel.
For the button of the Xbox, Duplicate the transform 2d node for the button and blend that with the original connection so we can visualize it better. Scale it down according to the reference picture. Plugin the inner part of the button into a transform 2d node, blend that in with our shape, and set the blending mode to max lighten to control how much the button extrudes. Add in a Levels node to act as our controller. Update our output nodes with our new height map and now we can see the button popping out. Add in a blur grayscale node to bevel the edge a bit. Play around with the slider in the levels node until it looks right.
For the disc drive, duplicate the transform 2d for the disc shape and duplicate it again so we can plug in a square shape node. Blend them both together and scale the square until it fits right inside the circle. Invert it using levels and then blend that with our height map and set it to multiply. Stretch out the shape. Soften the edges a bit using a blur grayscale node. Use a histogram scan to tighten it up a bit, and then plug that through a bevel node.
I added another button over here at the bottom right, adding it was just like how we did the first button. At this point, we’ve already covered the basic techniques to finish the Xbox, so we’ll go over the steps a bit faster.
To make the USB port, connect the square shape node to a transform 2d, shape it into the size of a USB port, invert using levels, then blur to soften the edges. Blend that with our height map and set it to multiply to make a hole. Copy the hole shape and make it smaller, then do it again and make it even smaller so we can blend them both and subtract to make a hole. Duplicate another transform 2d, then blur and blend with add linear dodge. Duplicate the transform 2d nodes again, scale it down a bit, but this time rotate the second one by 90 degrees so we can blend and subtract to create this shape. Blur and run it through levels so we can control its height and then blend. Run the shape through levels and then blend with our hole so we can finish the USB port.
For the waves icon, add a transform 2d from our circle shape, run it through an edge detect node, scale down the shape a bit, use a blend node so we can crop out the top part, position it lower using a transform 2d, run it through a tile sampler so we can lay it out like this, stretch it down using a transform 2d, blur then run it through a histogram scan so it rounds out the edges, then use a transform 2d node again to scale and position it to where we want, invert using levels, and then blend using multiply to add it to our heightmap.
Feel free to use the techniques you’ve learned to do the ports at the back For the inner part of the USB port, duplicate the transform 2d node again and just scale the shape until it looks right.
Export the textures by right-clicking on our package and export outputs as bitmaps. For rendering inside Blender, export the emissive, normal, and height maps.
Back inside Blender’s node editor, add an image texture, select our normal map, set the color space to non-color, connect that into a normal map node, and then plug that into our normal input.
Set the base color to a really dark gray, set the metallic value to 1, and play around with the roughness value.
Import our emissive map and plug that into the emission input. Finally, import our height map, connect that to the height input of the displacement node, and then connect that to the displacement input of the material output.
Set the render engine to Cycles, switch to the experimental feature set, and because I have an Nvidia RTX GPU, I’ll turn on Optix denoising. Add in a subsurf modifier, set it to simple, and click on the adaptive subdivision.
Tessellate our mesh by increasing the subdivision levels. In order to see the displacement, we have to switch to Rendered View. Then switch from Bump Only to Displacement and Bump. Lower down the scale in the displacement node. To see this better, we can import an HDR into our scene and there we go.
What I did here was set up some lights, cameras, and a quick little animation. As you can probably imagine, rendering a heavily tessellated mesh in animation can take a while so I’ll be rendering this on a render farm. Just gonna beam it up, render my animation, and just like that, we have our rendered frames.
If you’re interested in checking it out, head on over to GarageFarm.NET. It’s super easy to use and can save you a lot of time. Anyway, I hope you learned a lot from this procedural modeling guide and the video series, and that you can apply these techniques inside Substance Designer into your own projects. Until next time, see you around.