But the Toolbag 2 tuts cover it super well. iirc this just has a bunch of other links and compiled info, some helpful and super accurate, some less so, and some examples.
Just bear in mind with the toolbag setup, Unreal deals with this system (PBR) in a rather different way. Still similar but it treats metals and non metals VERY differently where as marmoset is more of a sliding scale from dielectric to conductor.
Just bear in mind with the toolbag setup, Unreal deals with this system (PBR) in a rather different way. Still similar but it treats metals and non metals VERY differently where as marmoset is more of a sliding scale from dielectric to conductor.
I'd be interested to hear just how differently we treat the metallic workflow to Unreal. Could you elaborate at all?
We have a material preset for Unreal materials in Toolbag, and if we can improve it we'd love to know how.
We support metalness maps, roughness maps (simply inverted gloss maps), and the GGX specular workflow, as of 2.05 or so you can create shader setups that are nearly identical to UE4 in TB2.
stupid question, so in pbr, we get rid of the spec right ? and replace it with reflectivity ?okay, so does white (or linear colour) in the reflection part means that it reflects the same colour as the light source ?
"Get rid" is the wrong way to think about it. Specular reflection intensity is the same thing as reflectivity, both define the amount of light an object reflects. Even with the metalness workflow we dont "get rid of specularity", its simply defined in a different way (for metals, in the albedo map, for non-metals, at a fixed 4% (linear) value).
But yes, white = 100% reflection/reflectivity, or an object that reflects the light that hits it completely without absorbing or diffusing any of the light.
ahh, okay. For my understanding reading all of this. For the metalness workflow, we don't generally use Albedo right ? cause its so shiny that it just reflects light ? (Conductors)
For spec workflow, we pretty much use Albedo ? (Insulators)
So its either one or the other? mutually exclusive ?
am I getting there or something ? Just need feedback from the pros.
So, in the metalness workflow, spec + gloss = metalness map ? so 2 in 1 ? much more efficient
In the pic above (reply #10) would you say that in a nutshell it is a specular workflow ? spec map = reflectivity map right ? then we use gloss/roughness to define what kind of material it has.
But one thing I noticed, in the gold and chrome sphere, the albedo is black so pretty much when it comes to metallic(chrome) surfaces, the reflected light pretty much defines the "colour" of the object ?
Sorry for asking too many questions. again, thanks for the links.
Metalness maps are just a mask that defines what materials are metal (white) and what materials are non-metal (black), and automatically assigns accurate-enough specular values for those areas, in the case of metal areas taking the color to be reflected from the albedo.
It doesn't replace gloss.
EDIT: This one is right enough in practice, though the logic you have isn't technically what's going on exactly, from how you explained it haha;;
But one thing I noticed, in the gold and chrome sphere, the albedo is black so pretty much when it comes to metallic(chrome) surfaces, the reflected light pretty much defines the "colour" of the object ?
In the metalness workflow, diffuse + specular = albedo map (which defines the color regardless of material type). The metalness map itself defines which areas are metallic and which areas are not (generally pure black or white values in the map).
The last thing you said is pretty much correct.
Pure metals reflect nearly all the light that hits them, so their appearance comes from the reflectivity. So, the albedo is used to store the specular color for metals.
Non-metals reflect very little, so most of their color comes from diffused light, so the albedo map is used to store the diffuse color for insulators.
The metalness map then simply tells the shader how to treat the albedo map, by tagging materials as metals or insulators, which determines whether to pull the diffuse content or the specular content from the albedo. Its basically just a way to optimize the data and store both diffuse and specular information in one map.
A gloss or roughness map defines how rough or smooth the surface is, which determines how broad or narrow the specular reflection highlight is. With PBR shaders, this map also determines how bright or dim the highlight appears, because of energy conservation. The base principal of energy conservation states that an object can't reflect more light than hits it, so rougher surfaces have broader, but dimmer highlights. These surfaces are not less reflective though! The light is simply spread over a larger area which gives a dimmer appearance.
Some would say that gloss maps replace spec maps, and in some ways they sort of do, a lot of the small surface detail like scratches and such make more sense to add to the gloss/roughness map, but that map doesn't define the reflectivity directly, so it doesn't replace the spec map.
So we use metalness method for objects with the majority of it being or looking metal so we use this method to save memory and time ? instead of plugging in different maps ?
Its mostly about memory savings, yes. The metalness workflow isn't more accurate or anything like that. Though some feel there is a benefit or simplification in the workflow when you author the diffuse and specular content in the same map.
If your texture is all metals or all insulators, you don't need to use a metalness texture at all and can use a constant 0 or 1 value, so this saves even more memory.
I personally prefer the specular map workflow myself when I can use it, as what you would do to describe transitional areas like partially rusted metal or metal with a thin, non-uniform layer of algae on top is more consistent with your expectations. You can also always depict gemstones which can be nice. To me the memory saving between a more traditional specular color map and a channel-packed masks map with one channel for a metalness mask and another for a secondary specular map for specular occlusion is really not worth it. You can get OK results without the secondary specular map so maybe if you need to optimize things later you can repack things, but for a portfolio piece you should generally use the secondary specular in UE4 (in my opinion.)
Yeah the metalness workflow uses less texture memory and the specular workflow is more flexible as it allows you to represent materials with a wider reflectivity range.
Its important to note that the secondary specular input in UE4 is not a specular map in the traditional sense, what it is, is a map that multiplies the reflectivity for non-metals. This is handy if you have an insulator that is less reflective than the 4% baseline (like skin) but in most cases is not needed.
Replies
http://www.polycount.com/forum/showthread.php?t=136390
But the Toolbag 2 tuts cover it super well. iirc this just has a bunch of other links and compiled info, some helpful and super accurate, some less so, and some examples.
I'd be interested to hear just how differently we treat the metallic workflow to Unreal. Could you elaborate at all?
We have a material preset for Unreal materials in Toolbag, and if we can improve it we'd love to know how.
[vv]101442486[/vv]
stupid question, so in pbr, we get rid of the spec right ? and replace it with reflectivity ?okay, so does white (or linear colour) in the reflection part means that it reflects the same colour as the light source ?
But yes, white = 100% reflection/reflectivity, or an object that reflects the light that hits it completely without absorbing or diffusing any of the light.
For spec workflow, we pretty much use Albedo ? (Insulators)
So its either one or the other? mutually exclusive ?
am I getting there or something ? Just need feedback from the pros.
EDIT : Thanks EQ, you the man !
Give this a read if you haven't yet: http://www.marmoset.co/toolbag/learn/pbr-conversion
So, in the metalness workflow, spec + gloss = metalness map ? so 2 in 1 ? much more efficient
In the pic above (reply #10) would you say that in a nutshell it is a specular workflow ? spec map = reflectivity map right ? then we use gloss/roughness to define what kind of material it has.
But one thing I noticed, in the gold and chrome sphere, the albedo is black so pretty much when it comes to metallic(chrome) surfaces, the reflected light pretty much defines the "colour" of the object ?
Sorry for asking too many questions. again, thanks for the links.
Cheers,
Check these tutorials specifically:
http://www.marmoset.co/toolbag/learn/pbr-theory
http://www.marmoset.co/toolbag/learn/pbr-practice
Metalness maps are just a mask that defines what materials are metal (white) and what materials are non-metal (black), and automatically assigns accurate-enough specular values for those areas, in the case of metal areas taking the color to be reflected from the albedo.
It doesn't replace gloss.
EDIT: This one is right enough in practice, though the logic you have isn't technically what's going on exactly, from how you explained it haha;;
The last thing you said is pretty much correct.
Pure metals reflect nearly all the light that hits them, so their appearance comes from the reflectivity. So, the albedo is used to store the specular color for metals.
Non-metals reflect very little, so most of their color comes from diffused light, so the albedo map is used to store the diffuse color for insulators.
The metalness map then simply tells the shader how to treat the albedo map, by tagging materials as metals or insulators, which determines whether to pull the diffuse content or the specular content from the albedo. Its basically just a way to optimize the data and store both diffuse and specular information in one map.
A gloss or roughness map defines how rough or smooth the surface is, which determines how broad or narrow the specular reflection highlight is. With PBR shaders, this map also determines how bright or dim the highlight appears, because of energy conservation. The base principal of energy conservation states that an object can't reflect more light than hits it, so rougher surfaces have broader, but dimmer highlights. These surfaces are not less reflective though! The light is simply spread over a larger area which gives a dimmer appearance.
Some would say that gloss maps replace spec maps, and in some ways they sort of do, a lot of the small surface detail like scratches and such make more sense to add to the gloss/roughness map, but that map doesn't define the reflectivity directly, so it doesn't replace the spec map.
So we use metalness method for objects with the majority of it being or looking metal so we use this method to save memory and time ? instead of plugging in different maps ?
EDIT : Thanks
If your texture is all metals or all insulators, you don't need to use a metalness texture at all and can use a constant 0 or 1 value, so this saves even more memory.
Its important to note that the secondary specular input in UE4 is not a specular map in the traditional sense, what it is, is a map that multiplies the reflectivity for non-metals. This is handy if you have an insulator that is less reflective than the 4% baseline (like skin) but in most cases is not needed.
though does xoliul classify as a PBR shader ? Gonna get UE4 next month.