Update (22/01/15): Marmoset Co were kind enough to feature my work as ‘Toolbag Video of the Day’ over on their company blog: http://tmblr.co/ZLyCGv1amaBDI
I have finished my PBR flintlock asset, and created a YouTube video showcasing it in Marmoset Toolbag 2. YouTube now supports 60FPS footage, and wanting to stay up-to-date with the cutting-edge, I rendered my turntables out at this framerate.
After conducting some research and developing a good idea of the direction I wanted to go in, I began fleshing-out a rough model of the gun in 3DS Max, paying special attention to the silhouette and fundamental shape. Due to the complex curvature of certain parts of the gun (such as the hammer and various decorative patterns), I decided to adopt a NURBS modelling approach (mostly bi-rails) on some gun components. All NURBS surfaces were created in Maya before being converted into polygons and brought back into 3DS Max.
After cleaning up the mesh in ZBrush, I used Polypaint and Spotlight to create the gun’s base colour. High-res procedural textures were created in Photoshop using a variety of techniques, and then were applied to the model via Spotlight. At this stage I was only marginally concerned about creating colours that would agree with a linear, physically-based rendering workflow.
I created two copies of my ZTool, and painted one with gloss values, and the other with metalness values. Here, I was interested in using the correct values, and referred to online PBR documentation.
Retopology was a bit of a pain. I wanted to utalise DirectX 11’s real-time tessellation feature and so opted for manually retopologising the model using ZBrush’s inbuilt retopology tool. A while was spent afterwards cleaning up the low-poly geometry in 3DS Max.
For texture baking, I used xNormal. I baked out a normal map, height map, ambient occlusion map, PRTpn map, cavity map and vertex-colour map, all in 16-bit TIFF format. These maps were combined in various ways inside Photoshop to produce an albedo, metalness, gloss, normal and displacement map. Due to baking the maps out in 16-bit, I had some leeway when it came to shifting the values into physically accurate, linear values. (That said, I’m not 100% sure polypaint/vertex-colour supports 16-bit values.)
My approach to creating the case was somewhat similar. The cushion-reminiscent fabric on the lid was created using Maya’s nCloth physics simulation. Each button was turned into an nCloth constraint, and animated to move slightly further into the lid, thus creating the dimples in the fabric. These dimples were baked into the case’s displacement map and recreated at runtime using DirectX 11 real-time tessellation and displacement.
I never got around to using Substance Painter as my last post suggested. However, it will most certainly be tried out in the future.
Below, is a breakdown of the various texture maps comprising the finished flintlock asset. A little rule-breaking can be seen in the gun’s metalness map whereby some dielectric materials have been described as partially metallic. This was done to get a little colour into the specular highlights of the cushion fabric.