An Environment Artist at SideFX Mohamad Salame returns to break down his new stylized piece and explain how to simplify your workflow using Houdini.
Hi! I’m Mohamad Salame, an Environment Art Intern from Lebanon currently living in Toronto Canada. I wanted to make a project for the Lebanese people since they’re going through a lot. A little beauty can brighten someone’s day, even if it’s just one day. This is part 1 of a project titled “Phoenician Dust” which will be a cultural showcase all across Lebanon.
In my last article, I did everything procedurally to force myself to learn Houdini, fast forward a year and I’m working at SideFX as an Environment Art intern. I’ve been experimenting with different art styles to find a workflow that requires a minimal amount of effort and produces the highest visual quality possible.
To achieve this, I tried removing as much detail as possible until the image became unreadable. I even tried removing the color in the Dementor Summoning project.
I thought about making it a realistic scene at first, but I didn’t need all that detail to tell a story. The less information the image has the easier it is to be remembered.
Working with Reference
I used transparent material to see the reference in-engine, so I can figure out the shape proportions and camera angle/focal length.
The stair paint sits on a 2nd UV channel and is referencing one texture that has all the patterns I need.
Tips for Efficient Stylized Art Creation
- Use tileable textures whenever possible and blend them in the engine as if you’re texturing in Substance Painter. This speeds up your workflow, it’s optimized and the scene will look cohesive since you’re reusing the same textures.
- Use Vertex color as the color if all you need is a flat color with no vertex blending.
- Use gradients! You don’t see them but they’re there. You could set them up easily in the material using the local vertical position.
- Use edge highlights with moderation, stylized art is all about reducing an idea to its essence, edge highlights help maintain the shape detail when there’s not much detail. You can bake a unique curvature texture, or store it in the vertex color if you’re using Nanite, or calculate it in the material if you have enough geo. Only do that for the important assets, such as the stairs in my scene.
- Create a modifier that deforms and exaggerates the geometry, in Houdini that would be a Lattice in a subnet.
- Create the assets in a way that they can be reused differently if rotated or flipped. For example, the stairs can be flipped and it has a different pattern on the other side.
- Bevels with Weighted Normals are more than enough in most cases, you can tile a few detail normals in engine to compensate.
- If you’re just making an art piece, separate the foreground from the background and don’t worry about adding detail in the distance, blur the background instead. If they cannot see that it is low res, then it’s high res, problem solved.
The technique I used for the trees was originally made by Pontus Karlsson. It’s basically slapping a texture on each face and scaling the faces in the engine and rotate them to face the camera. I made the tree mesh in Houdini using the Labs Tree tool.
The wind is made of SimpleGrassWind layered with a looping gradient over the localPosition that passes over time and it’s multiplied by the vertex red color for variation per leaf.
Unlimited Variations with Vertex Color
We usually use vertex color to blend multiple textures together, but we could also use vertex color as an index. Imagine you have a mesh with 0 red and another with 0.1 red and another with 0.2 red... up until 1 red. Now you can texture multiple meshes differently within the same material based on the index of the red channel and still be able to use the green and blue channels for blending. This technique is useful for large objects that require multiple materials, a building for example will be drawn all at once most likely, so this technique would help reduce the number of draw calls to one material.
Houdini got overhyped to the point people became too scared of it without knowing why. Unreal Engine is way more complex but people don’t need to know C++ to use it, the same goes for any other software. You could totally use Houdini to speed up your workflow without diving too deep.
Learning Houdini is not that difficult. Here's a statement from my friend Liam O'Hagan who just tried using Houdini for the first time: "It was MUCH more intuitive than I thought. I don't have much else to add because I haven't had a chance to really dive into it yet, but I was surprised at how far you could get with a small number of nodes, and the way the network works felt really intuitive to me, like the way you jump in and out of the containers".
I wrote more about how to get started in this Experience Points article.
I was using Houdini in a very basic way, as you can see in the above picture, each asset sits inside one of those framed boxes. What I love about node workflows is that I have the history of each asset and I can go back to tweak whatever at any point. I can copy and paste the same operations and apply them to other assets.
Stylized assets are easy to model in Houdini since they don’t require much detail, the finessing can happen in ZBrush if need be. Packaging the repetitive operations in a subnet or HDA saves so much time. I can share the HDAs between different Houdini files and everything can be backed up easily since the file sizes are around 10MB.
Lighting: I used a couple of point lights and rectangular lights with a source width of 52 to get those nice soft shadows. I turned Lumen ON, the bounce light from the GI is a game-changer.
Post-Process: Added some grain and Chromatic Aberration to make the scene feel like it was captured by an old camera.
Camera: Increased the focal length up to 85 to get rid of the ugly distortion and adjusted the focus distance to blur the background and anything that is too close as well.
You may find these articles interesting