I have begun a new chapter of my career as a 3D artist, working with a wonderful team in Railtown Vancouver. uForis VR is a small startup company doing architectural visualization in AR and VR, working with their own engine they have built from scratch. Just a month into my contract with them, and I've already learned so much and honed my skills at creating photo realistic 3D assets for PBR productions.
Working with the uForis team has really been a dream come true so far. I get to work in 3DS Max, VRay, and Substance Designer all day, bringing architectural visualizations to life for pre-render and real time rendering.
This interior production was a proof of concept for a client show casing physically based rendering in VRay, using procedural materials authored in Substance Designer. Here I had to learn the best way of translating the PBR model of Substance Designer to VRay, which in Substance Designer 6 is made super smooth through the PBR conversion node, which now has a VRay GGX shader as an export option. This will translate Base Color (Albdeo), Normal (Direct X), Roughness, and Metalness maps, into Diffuse, Normal (OpenGL), Reflection, Specular Glossiness, and Fresnel IOR maps, which form the GGX Shader model in VRay. What this means is I don't have to do any guess work when it comes to authoring physically accurate materials in Substance Designer, when moving them into 3DS Max and VRay. This really speeds things up, with satisfying results.
I used 3DS Max and Sculptris to author the meshes, and Substance Designer and Substance Painter to texture them. The lighting is pretty basic, with a few ceiling lights and lamps used in conjunction with an HDRI dome light, all made with VRay lights. I had to learn some new things like doing cloth simulations, and about a few of VRay's other material options, like 2 sided materials for the lamp shades, and creating a very custom reflection curve to simulate a velvet material. PBR shaders can't do everything yet, so sometimes you need to find other ways of achieving good results.
Even though the translation between SD6 and VRay is super fast, there is generally still some work to do with regards to tweaking the Fresnel IOR values. The map provided by SD6 is merely a mask. You still need to have the correct Fresnel IOR value for specific metallic surfaces to have a physically accurate metallic material. For that, I consulted the trusty Refraction Index website for accurate fresnel values.
I was studying Grant Warwick's tremendous work with his Mastering VRay courses throughout this production, to fine tune my workflow, and understand in greater detail what VRay is doing as a ray tracer. One of the greatest investments I've made in a long time. His work is invaluable to anyone working with VRay. He went so far as to create this wonderful info graphic, illustrating how light works. This kind of thing helps so much when it comes to bringing a sound logic to material creation and lighting setups in VRay.
To get the most out of the textures, I also used displacement maps to bring add detail to the bricks and hardwood floor, without needing to model any high resolution geometry for those objects. This project was a first step in mastering VRay PBR productions. The real fun now is translating this workflow into a viable solution for PBR production on uForis' real time engine, which I have begun working on.
Another thing I've learned a tremendous amount about is how to create lightmaps for photo realistic productions. This can involve several different approaches. This is very important for our workflow, as it removes the need to simulate light at runtime, which is a very expensive operation for mobile devices. You can either bake out a Complete Map, that contains both diffuse and lighting color information, or you can isolate the light information into a separate map, that can be multiplied over an asset's diffuse texture component at runtime. The latter approach is what we are going to try out first iteration of a real time PBR scene on uForis' engine.