Saturday, November 19, 2016

PBR (Physically Based Rendering)

Written by: Alisdair Araujo

In the following article, I’ll be talking about a PBR (Physically Based Rendering), how I implemented it and the things I learnt along the way.

PBR is the new kid on the block and implementing it into your workflow may seem like a daunting task. The most important thing to note for PBR is that there are two workflows. Specular/Gloss and Metalness/Roughness.

Both of these workflows use Base Color maps (Albedo), Normal maps and Ambient Occlusion maps. The key difference is that Specular Workflow utilizes a “specular texture” (argbcolor map) to control reflection amount/color, while the Metalness Workflow relies on a “metalness” texture, which is basically a black/white map where white = metals and black as non-metals. The roughness/glossiness maps are black/white textures used to control the sharpness of the reflections.

Quick tip: Turn a roughness texture into a glossiness texture by just inverting it and vice versa

Since we have an upcoming project related to PBR workflow, we used the opportunity, to do some R&D on PBR. I used Ndo to create normal maps and created the rest of the maps in Photoshop. I took the green and blue channel of the normal map as well as aspects of the Albedo to create the specular. Using the Specular map, i created a metalness map by blocking out the areas that weren't metal, example, the lights and painted warning areas. The toughest part of this workflow for me was implementing a working roughness map and I ended up spending a lot of time tweaking it to get the desired result.

Resources I recommend, which helped me understand PBR are:

●     Marmoset PBR Theory
●     Marmoset PBR Practice
●     Allegorithmic PBR Guide 1&2




From left to right, top to bottom:Color, Normal(tangent), Metalness, Roughness and Emissive.

Final output :








No comments:

Post a Comment