Metal is actually pretty easy to do with PBR. Since metals generally reflect almost 100% of light that hits them, you simply need to make your specular color the final color of reflections you'd like to see. For example, you'd want a light pinkish color for clean copper, or a bright desaturated yellow for most types of gold.
If you're using metalness maps instead of specular, just put those light colors into your albedo map and then set them to 100% metal.
Just like with other surfaces, a lot of good information about the surface texture is going to come from your gloss map. Things like scratches are generally rough, and other areas should generally be more glossy.
There are some good examples of different metals in the preset materials that come with Marmoset Toolbag 2, as well as some good example content out there for Unity if you give it a quick Google.
Additionally, here are some resources that should be helpful for metals as well as any other type of PBR-type shading:
A game limitation right now is there is no ray tracing/GI in real time. So you end up with metal that does not update reflections (outside of pre-baked environment probes).
@JordanN
As long as your Glossiness isn't set to 255/1.0/full or the material doesn't make up a huge space it's usually barely noticable that reflections aren't 100% correct.
Also if the Lighting conditions don't change drastically and the cubemap is parrallax corrected and maybe enhanced with SSLR & SSAO/SSDO, you usually get fairly accurate reflections.
General Rules:
Only colour Info In Albedo, no more lighting info overlayed (AO, PRT etc.. although depending on style, some cavity can be forgiven)
Gloss = Roughness ( UE4 is Black is smooth, white is rough, Others may be reversed) All Detail is here!
Metal Mask = White is Metal, Black is Non-Metal
Spec Map = CLEAN, only shades of grey + metal colour info, no more wear detail or lighting info
Normals = Usual, no change, but PBR loves micro detail so learn to overlay detail normal maps correctly!
GGX and Blinn Phong by AlmightGir (Lee): http://www.polycount...d.php?p=2193459 - Mostly just showing the differences between the two visually but hopefully gives you and understanding of why you need to make sure you are texturing to the right one for the engine you are using, ESPECIALLY if you are previewing in Marmoset which has the option for both but defaults to Blinn Phong. (This causes no end of trouble in work places...)
Lighting -
Lighting! PBR you must have Ambient Cubemaps! Just using Direct and point and spot lights will look bad.
Unreal is default Direct Lighting where as Marmoset is IBL lit.
Note for Linear conversion for game engines:
Most engines will either only take sRGB, or will have the option to take either. Photoshop Works in sRGB and UE4 handles the conversion from gamma to linear and back again for you as do most other commonly used engines.
Lighting! PBR you must have Ambient Cubemaps! Just using Direct and point and spot lights will look bad.
Unreal is default Direct Lighting where as Marmoset is IBL lit.
The Importance of being Linear. A good introduction to the topic.
Adventures with Gamma-Correct Rendering. Another great introduction by Naty Hoffman
Gamma FAQ – Frequently Asked Questions about Gamma. Poyton’s FAQ explains a lot of the terminology involved in gamma and linear spaces. While you are there you might as well read the Color FAQ also.
Uncharted 2: HDR lighting by John Hable. This is covers many areas, but it has a great introduction to linear lighting+shading. There is also a writeup of this presentation on John’s blog.
The value of Gamma-compression. Gamma space is not all bad, this is how our eyes perceive light intensity as well as it is the preferred space for image compression and 8-bit image storing.
Linear Lighting and Shading
The Importance of being Linear. A good introduction to the topic.
Adventures with Gamma-Correct Rendering. Another great introduction by Naty Hoffman
Gamma FAQ – Frequently Asked Questions about Gamma. Poyton’s FAQ explains a lot of the terminology involved in gamma and linear spaces. While you are there you might as well read the Color FAQ also.
Uncharted 2: HDR lighting by John Hable. This is covers many areas, but it has a great introduction to linear lighting+shading. There is also a writeup of this presentation on John’s blog.
The value of Gamma-compression. Gamma space is not all bad, this is how our eyes perceive light intensity as well as it is the preferred space for image compression and 8-bit image storing.
Nutty software have a nice WebGL demo of Gamma correction.
Physically based reflection models
Once we are convinced of the importance of linear lighting and shading we can move onto physically based reflection models.
Siggraph’s Physically Based Shading courses provide both an introduction (mainly by Naty Hoffman which is a must read) and in depth coverage of many PBR topics.
2014 Course (currently being updated) – Presentations from Frostbite, Pixal, Tri-ace among others. Frostbite’s PBR presentation course notes (must read) are also available.
2013 Course – Presentations from COD:Black Ops II, Unreal Engine 4, The Order:1886 and Pixar among others
2012 Course – Presentations from Far Cry 3, TriAce, Disney and Pixar among others
2010 Course – Presentations from TriAce, ILM and Sony
2006 Course – Very interesting introduction to PBR, including combining PBR and Image based lighting.
Physically based lighting in COD:Black Ops. There was no PBS course in 2011 but this is a very interesting talk on the topic.
Peter Shirley’s “Basics of physically based rendering” Siggraph Asia 2012 course notes
Other interesting talks from conferences include
Michael Drobot’s Lighting of Killzone:Shadowfall presentation is well worth reading, it covers a lot of PBR related topics.
Same with the video of GDC 2013 Panel – Metal Gear Solid 5 & Fox Engine.
Static Sky Unite 2013 Presentation which describes the approach the game team followed to implement Physically Plausible Rendering on mobile platforms, baking a simplified Cook-Torrance BRDF into a lookup table and approximating glossiness using the mip levels of the texture.
Mastering DX11 with Unity discusses Physically based shaders implemented in Unity
Physically based shading in Unity 5 GDC2014 presentation by Aras Pranckevičius (and notes).
“The Order:1886″ GDC2014 presentation by David Neubelt and Matt Pettineo is also full of useful information on the game’s material and lighting pipeline.
Moving to the Next Generation – The Rendering Technology of Ryse GDC2014 presentation by Nicolas Schulz describes among others the shading model used in the game.
Mastering Physically Based Shading in Unity 5 from Unite2014 (video) describes in depth how Unity handles PBR, good background reading as well.
TriAce’s Research department is doing some excellent work on PBR, unfortunately many of the presentations are in Japanese only. Of special note are the “Practical Physically Based Rendering in Real-Time” talk from GDC 2012 and the “How to Design Your Art Assets for Physically Based Rendering” talk from CEDEC 2012. The latter is in Japanese unfortunately, so if yours is a bit rusty then here is a translation.
The freely available “Programming Vertex Geometry and Pixel Shaders” e-book provides a great introduction to PBR presenting many BRDFs with shader samples.
Then there is a wealth of information available through numerous blog posts:
A game limitation right now is there is no ray tracing/GI in real time. So you end up with metal that does not update reflections (outside of pre-baked environment probes).
This is generally not the best advice. Unless it's a big mirror-like surface, it's very hard to notice the discrepancy between the reflections and the environment around it.
Most realistic metals aren't super clean anyway, though. So just try to stay accurate to the real world, whatever the case.
Replies
If you're using metalness maps instead of specular, just put those light colors into your albedo map and then set them to 100% metal.
Just like with other surfaces, a lot of good information about the surface texture is going to come from your gloss map. Things like scratches are generally rough, and other areas should generally be more glossy.
There are some good examples of different metals in the preset materials that come with Marmoset Toolbag 2, as well as some good example content out there for Unity if you give it a quick Google.
Additionally, here are some resources that should be helpful for metals as well as any other type of PBR-type shading:
Feeding a physically based shading model
https://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/
DONTNOD Physically based rendering chart for Unreal Engine 4
https://seblagarde.wordpress.com/2014/04/14/dontnod-physically-based-rendering-chart-for-unreal-engine-4/
DONTNOD specular and glossiness chart
https://seblagarde.wordpress.com/2012/04/30/dontnod-specular-and-glossiness-chart/
Basic Theory of Physically-Based Rendering
http://www.marmoset.co/toolbag/learn/pbr-theory
Tutorial: Physically Based Rendering, And You Can Too!
http://www.marmoset.co/toolbag/learn/pbr-practice
Tutorial: PBR Texture Conversion
http://www.marmoset.co/toolbag/learn/pbr-conversion#spectometal
PHYSICALLY BASED SHADING IN UNITY 5: A PRIMER
http://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/
WORKING WITH PHYSICALLY-BASED SHADING: A PRACTICAL APPROACH
http://blogs.unity3d.com/2015/02/18/working-with-physically-based-shading-a-practical-approach/
A game limitation right now is there is no ray tracing/GI in real time. So you end up with metal that does not update reflections (outside of pre-baked environment probes).
As long as your Glossiness isn't set to 255/1.0/full or the material doesn't make up a huge space it's usually barely noticable that reflections aren't 100% correct.
Also if the Lighting conditions don't change drastically and the cubemap is parrallax corrected and maybe enhanced with SSLR & SSAO/SSDO, you usually get fairly accurate reflections.
[ame]https://www.youtube.com/watch?v=LpLBzV9uG0Y[/ame]
Texturing -
Traditional Shaders to PBR Shaders:
http://www.marmoset.co/toolbag/learn/pbr-conversion
General Rules:
Only colour Info In Albedo, no more lighting info overlayed (AO, PRT etc.. although depending on style, some cavity can be forgiven)
Gloss = Roughness ( UE4 is Black is smooth, white is rough, Others may be reversed) All Detail is here!
Metal Mask = White is Metal, Black is Non-Metal
Spec Map = CLEAN, only shades of grey + metal colour info, no more wear detail or lighting info
Normals = Usual, no change, but PBR loves micro detail so learn to overlay detail normal maps correctly!
http://www.artisaverb.info/PBT.html - Physically Based Texturing for Artists
http://www.artisaverb.info/PBR.html - Physically Based Rendering for Artists
https://forums.unrealengine.com/showthread.php?52529-PBR-Tutorial-Series - PBR Tutorial - Textures from Photos
GGX and Blinn Phong by AlmightGir (Lee):
http://www.polycount...d.php?p=2193459 - Mostly just showing the differences between the two visually but hopefully gives you and understanding of why you need to make sure you are texturing to the right one for the engine you are using, ESPECIALLY if you are previewing in Marmoset which has the option for both but defaults to Blinn Phong. (This causes no end of trouble in work places...)
Marmoset -
Workflow: Metal Mask & Spec Colour
http://www.marmoset.co/toolbag/learn/pbr-theory
http://www.marmoset.co/toolbag/learn/pbr-practice
http://www.marmoset.co/toolbag/learn/getting-started
Unreal -
Workflow - Metal Mask
https://www.unrealengine.com/blog/physically-based-shading-in-ue4
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/index.html
http://seblagarde.wordpress.com/2014/04/14/dontnod-physically-based-rendering-chart-for-unreal-engine-4/
Cryengine Service -
Workflow: Spec Colour
http://docs.cryengine.com/display/SDKDOC3/Physically+Based+Shading+in+CRYENGINE
http://docs.cryengine.com/display/SDKDOC2/Lighting+Levels+using+Physically+Based+Shading
Lighting -
Lighting! PBR you must have Ambient Cubemaps! Just using Direct and point and spot lights will look bad.
Unreal is default Direct Lighting where as Marmoset is IBL lit.
IBL Lighting - How and why it works http://www.pauldebevec.com/Research/LS/
Using Ambient cubemaps: https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/AmbientCubemap/index.html
http://docs.cryengine.com/display/SDKDOC4/Image+Based+Lighting
Gamma and Linear Space-
(Cheers To Ben for this knowledge dump!)
The Importance of being Linear:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html - A good introduction to the topic
Adventures with Gamma-Correct Rendering:
http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/ - Another great introduction by Naty Hoffman
Gamma FAQ – Frequently Asked Questions about Gamma:
http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html - Poyton’s FAQ explains a lot of the terminology involved in gamma and linear spaces.
Colour FAQ :
http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html
Uncharted 2: HDR lighting:
http://www.slideshare.net/naughty_dog/lighting-shading-by-john-hable - by John Hable. This is covers many areas, but it has a great introduction to linear lighting+shading
Write Up: http://filmicgames.com/archives/299
The value of Gamma-compression:
http://hacksoflife.blogspot.jp/2010/11/value-of-gamma-compression.html - Gamma space is not all bad, this is how our eyes perceive light intensity as well as it is the preferred space for image compression and 8-bit image storing.
WebGL Demo of Gamme correction:
http://www.nutty.ca/?page_id=352&link=gamma_correction
Note for Linear conversion for game engines:
Most engines will either only take sRGB, or will have the option to take either. Photoshop Works in sRGB and UE4 handles the conversion from gamma to linear and back again for you as do most other commonly used engines.
TL;DR: You shouldn't need to do the conversions yourself.
General - (Note: As I said above you may see conflicting things here about spec and metal masks + variations between gloss values)
http://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/ - Really good read for Understanding the Values
http://www.reddit.com/r/starcitizen/comments/1rl7bq/could_somebody_please_explain_physical_based/
http://www.polycount.com/forum/showthread.php?t=89658 - PBR Shader For Maya
http://wiki.polycount.net/PBR
http://www.pauldebevec.com/Research/IBL/ - IBL Lighting
Tools - (Stay Organised! Stay Flexible!)
http://quixel.se/
http://www.allegorithmic.com/
Charts -
http://seblagarde.wordpress.com/2014/04/14/dontnod-physically-based-rendering-chart-for-unreal-engine-4/
http://www.marmoset.co/wp-content/uploads/materialref01.png
http://seblagarde.wordpress.com/2012/04/30/dontnod-specular-and-glossiness-chart/ (older)
Lighting
Lighting! PBR you must have Ambient Cubemaps! Just using Direct and point and spot lights will look bad.
Unreal is default Direct Lighting where as Marmoset is IBL lit.
IBL Lighting - How and why it works http://www.pauldebevec.com/Research/LS/
Using Ambient cubemaps: https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/AmbientCubemap/index.html
http://docs.cryengine.com/display/SDKDOC4/Image+Based+Lighting
Traditional Shaders to PBR Shaders:
http://www.marmoset.co/toolbag/learn/pbr-conversion
The Importance of being Linear. A good introduction to the topic.
Adventures with Gamma-Correct Rendering. Another great introduction by Naty Hoffman
Gamma FAQ – Frequently Asked Questions about Gamma. Poyton’s FAQ explains a lot of the terminology involved in gamma and linear spaces. While you are there you might as well read the Color FAQ also.
Uncharted 2: HDR lighting by John Hable. This is covers many areas, but it has a great introduction to linear lighting+shading. There is also a writeup of this presentation on John’s blog.
The value of Gamma-compression. Gamma space is not all bad, this is how our eyes perceive light intensity as well as it is the preferred space for image compression and 8-bit image storing.
Linear Lighting and Shading
The Importance of being Linear. A good introduction to the topic.
Adventures with Gamma-Correct Rendering. Another great introduction by Naty Hoffman
Gamma FAQ – Frequently Asked Questions about Gamma. Poyton’s FAQ explains a lot of the terminology involved in gamma and linear spaces. While you are there you might as well read the Color FAQ also.
Uncharted 2: HDR lighting by John Hable. This is covers many areas, but it has a great introduction to linear lighting+shading. There is also a writeup of this presentation on John’s blog.
The value of Gamma-compression. Gamma space is not all bad, this is how our eyes perceive light intensity as well as it is the preferred space for image compression and 8-bit image storing.
Nutty software have a nice WebGL demo of Gamma correction.
Physically based reflection models
Once we are convinced of the importance of linear lighting and shading we can move onto physically based reflection models.
Siggraph’s Physically Based Shading courses provide both an introduction (mainly by Naty Hoffman which is a must read) and in depth coverage of many PBR topics.
2014 Course (currently being updated) – Presentations from Frostbite, Pixal, Tri-ace among others. Frostbite’s PBR presentation course notes (must read) are also available.
2013 Course – Presentations from COD:Black Ops II, Unreal Engine 4, The Order:1886 and Pixar among others
2012 Course – Presentations from Far Cry 3, TriAce, Disney and Pixar among others
2010 Course – Presentations from TriAce, ILM and Sony
2006 Course – Very interesting introduction to PBR, including combining PBR and Image based lighting.
Physically based lighting in COD:Black Ops. There was no PBS course in 2011 but this is a very interesting talk on the topic.
Peter Shirley’s “Basics of physically based rendering” Siggraph Asia 2012 course notes
Other interesting talks from conferences include
Michael Drobot’s Lighting of Killzone:Shadowfall presentation is well worth reading, it covers a lot of PBR related topics.
Same with the video of GDC 2013 Panel – Metal Gear Solid 5 & Fox Engine.
Static Sky Unite 2013 Presentation which describes the approach the game team followed to implement Physically Plausible Rendering on mobile platforms, baking a simplified Cook-Torrance BRDF into a lookup table and approximating glossiness using the mip levels of the texture.
Mastering DX11 with Unity discusses Physically based shaders implemented in Unity
Physically based shading in Unity 5 GDC2014 presentation by Aras Pranckevičius (and notes).
“The Order:1886″ GDC2014 presentation by David Neubelt and Matt Pettineo is also full of useful information on the game’s material and lighting pipeline.
Moving to the Next Generation – The Rendering Technology of Ryse GDC2014 presentation by Nicolas Schulz describes among others the shading model used in the game.
Mastering Physically Based Shading in Unity 5 from Unite2014 (video) describes in depth how Unity handles PBR, good background reading as well.
TriAce’s Research department is doing some excellent work on PBR, unfortunately many of the presentations are in Japanese only. Of special note are the “Practical Physically Based Rendering in Real-Time” talk from GDC 2012 and the “How to Design Your Art Assets for Physically Based Rendering” talk from CEDEC 2012. The latter is in Japanese unfortunately, so if yours is a bit rusty then here is a translation.
The freely available “Programming Vertex Geometry and Pixel Shaders” e-book provides a great introduction to PBR presenting many BRDFs with shader samples.
Then there is a wealth of information available through numerous blog posts:
S
This is generally not the best advice. Unless it's a big mirror-like surface, it's very hard to notice the discrepancy between the reflections and the environment around it.
Most realistic metals aren't super clean anyway, though. So just try to stay accurate to the real world, whatever the case.