How we shifted our texturing approach to better suit the constraints of low spec VR devices and to speed up our production process and craft Mr.Hack Jack: Robot Detective in less than four months.

Posted by DonutsVR on Apr 30th, 2019

Hi!

I'm Timothé 3d artist on Mr.Hack Jack: Robot Detective.

In this article I want share how we approached texturing for a VR game. If you'd like to know more about Mr.Hack Jack: Robot Detective, please wishlist the game on Steam <3

Since the beginning of the project, the plan was to nail a more strongly defined Art Direction than we did before on our game “The Last Letter”, while speeding up our texturing process and saving as much memory as possible.

It meant getting away from the usual realistic texturing pipeline and aiming for a more plastic/cartoony rendering, that would fit the comical setup more.



The Last Letter featured a more realistic texturing style



Mr.Hack Jack's texturing style is deliberately more cartoony



Really early the excellent document of Andrew Maximov led us in the direction of a custom shader with a Gradient map instead of the usual diffuse map.

The article of Andrew explain the why and how way better than I would, but to make it short; most of the objects seen in a video game don't need a wide range of hues. We can simply recolor a gray scale texture using a gradient.

The gradient map workflow allows you to pack your diffuse information in one Black and White map only, that can itself be repacked with other information.

Since we prioritized the cartoony/unified look, we gave up on the Roughness and Metalness map to replace it with a pure value setup in Unreal engine. Each texture contains our gradient, a Mask that allows us to pick between 2 different gradients and an emissive map since we used a lot of this last one in our robotic world.

An additional technical detail: we kept the gradient map in the Green channel since it is compressed on 6bits rather than 5bits for the 2 other channels.

On top of that Colorization we add a subtitle black and white noise for the simple reason that gradients look much worse in VR than on a normal monitor! Doing so also helped us to unitize even more our objects!

In the end, re-using the same parameters (colors / roughness / metalness) between our objects is a fast and easy way to unitize materials.

The texturing workflow itself became extremely fast; from a High Poly made in Maya (Simple smooth with support edges) we add some marks and texture through a fast pass in ZBrush, bake everything in Substance Painter and let the magic happen!

Just need to assign that Smart Material, a mix of custom mask and baked lighting with a heavy dose of curvature as an overlay, paint the emissive, the Red channel mask, export, and voila!

Of course, despite its good points, that workflow didn’t work for every object we had, so we ended up with a mix of traditional and Gradient mapping (For example the Robots use a more traditional Diffuse map) but it still saved us time and performances, while helping to unitize our Art Direction.

To recap:

PROS:

Unify the art direction

Optimize the texture weight

Fast texturing in Painter

CONS:

Less control on complex objects textures

Details difficult in texture

That's it! Thank for your reading, feel free to ask any questions and if you're interested in Mr.Hack Jack: Robot Detective, take a look at the Steam page and wishlist it! Cheers!