Home General Discussion

Real World Material Definitions

agitat3d
polycounter lvl 7
Offline / Send Message
agitat3d polycounter lvl 7
Hi,

I was wondering if anyone knows if a chart exists outlining the specular cosine values which accurately represent the tightness of the specular highlight for different materials.

Basically I would like to know what grey scale values for my gloss/specular cosine map.

I am trying to represent plastic, paper, cast iron, painted metal etc in one shader.

Obviously I can play around with the values until the material look realistic in the view port, however it would be good to obtain ball park values, at least just as a starting point, then tweak based on weathering etc.

Let me know your thoughts.

Thanks

Replies

  • Equanim
    Options
    Offline / Send Message
    Equanim polycounter lvl 11
    I don't know about an actual chart (I'm sure one exists somewhere), but Andrew Maximov touched on this in his video on PBR. He's on Polycount but I forget his name here.

    Check around 8:42
    https://www.youtube.com/watch?v=LNwMJeWFr0U
  • agitat3d
    Options
    Offline / Send Message
    agitat3d polycounter lvl 7
    Thanks for your reply.

    Really nice video. Thanks for the share.

    So from what I can gather it is saying is that we ditch our spec map and replace it with a reflection map. I'm assuming this is because if something doesn't reflect any light at all then it shouldn't have any kind of specular highlight (no matter how tight or wide).

    Is this how you intemperate it?

    I would still be keen to know if anyone knows of a chart with a list of different materials gloss/roughness values.

    If not I guess I'll have to just use my eyes ;-)

    Thanks again for your time
  • LMP
    Options
    Offline / Send Message
    LMP polycounter lvl 13
    Here's another link.
    http://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/

    The reason that Spec is replaced with a reflectivity map is because, in reality, there is no such thing as specular or diffuse, there is only two types of reflections, specular and diffuse...
  • seth.
    Options
    Offline / Send Message
    seth. polycounter lvl 14
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
  • marks
    Options
    Offline / Send Message
    marks greentooth
  • Swizzle
    Options
    Offline / Send Message
    Swizzle polycounter lvl 15
    Take a look at this:

    http://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/

    It's basically a one-stop shop for all things PBR-related, including pretty much all of the links posted above.

    Keep in mind that a ton of it is very technical and math-heavy, but just about everything in there has some useable information for artists.
  • JordanN
    Options
    Offline / Send Message
    JordanN interpolator
    Is there any reason why PBR is scarce to come by? Especially when looking through the history of CG? I can never find enough information about it in movies or games.

    Is it a relatively new technique?
  • PogoP
    Options
    Offline / Send Message
    PogoP polycounter lvl 10
    Pretty much, yeah, and most companies have their own versions of PBR so there is no industry standard of values (even when basing stuff on real world materials).
  • d1ver
    Options
    Offline / Send Message
    d1ver polycounter lvl 14
    agitat3d,
    I'm not sure if you mean roughness or specular values in your OP. It seems like you're talking about roughness/glossiness though. And in that case materials hardly have a definitive roughness value. Every material (aluminum, plastic etc...) have endless roughness variations. Think about how rough a surface can be in real world. A plastic ball can be perfectly new or old, brushed and scratched. Roughness/Glossiness is one of the maps that we as artists get to be most creative with.

    But if you'r talking about relectance(specular) values then, yeah, most of them are somewhat mesurable. Most dielectric(non-metals) have their facing angle reflectance at 0.04(linear space), metals start at around 0.6 and the specific values can be found following the links the folks have posted above.
    I also have a free next gen asset up that you're very free to download, play around, reverse engineer,etc...HERE. I'm also supplying source materials so you're more then welcome to take a stab at texturing it on your own :)
    I hope this helps

    JordanN here's some info on the history of IBL and PBR:
    http://renderwonk.com/publications/s2010-shading-course/snow/sigg2010_physhadcourse_ILM.pdf
    Escpeially in the world of real-time CG they are quite novel concepts. There's only a handful of games released running with PBR so not enough people have experience with it to be able to share some.
  • agitat3d
    Options
    Offline / Send Message
    agitat3d polycounter lvl 7
    Thanks everyone for all the info.

    There is some really good stuff here.

    d1ver,
    Yes I did mean roughness. I totally appreciate that roughness values can change depending on if the object is old or new.

    I was hoping for a value based on it's pristine condition then I could overlay some variation based on the weathering.

    jordanW,

    Thanks for the chart.

    Really helpful!

    May be a silly question but should I add any ambient occlusion to the roughness/gloss map?

    Thanks everyone!
  • agitat3d
    Options
    Offline / Send Message
    agitat3d polycounter lvl 7
    Oh almost forgot;

    d1ver,
    Thanks for the share on you next gen weapon. Really nice.
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
    agitat3d wrote: »
    Thanks everyone for all the info.

    May be a silly question but should I add any ambient occlusion to the roughness/gloss map?

    Thanks everyone!

    No, roughness is purely a function of how rough or smooth the surface is. I always suggest not putting pure AO in any texture in a modern engine. Its fine to use AO as a base for color shifts, dirt painting etc... but most engines are already calculating AO at multiple frequencies: Large Scale AO with lightmaps or some sparse method, SSAO that usually uses depth and normals.
  • d1ver
    Options
    Offline / Send Message
    d1ver polycounter lvl 14
    JordanW wrote: »
    No, roughness is purely a function of how rough or smooth the surface is. I always suggest not putting pure AO in any texture in a modern engine. Its fine to use AO as a base for color shifts, dirt painting etc... but most engines are already calculating AO at multiple frequencies: Large Scale AO with lightmaps or some sparse method, SSAO that usually uses depth and normals.

    I would slightly disagree with that. Yes in case of a new-ish factory produced asset roughness will probably be uniform. But if you are doing a worn asset it's quite logical to assume that it's not going to be brushed by everyday use where AO is. So you can add inverted AO to your roughness to mimic that. Yes you wanna be careful, but it's more of an artistic choice and each outcome is going to be a realistically plausible scenario.

    In my experience so far roughness is a great map to show some unique wear when you're producing it for a unique asset and not a tileable layer.

    agitat3d, anytime man.
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
    Right that's perfectly fine, I was simply answering "should I put AO into roughness?" which is No. That's not to say you can't use AO to mask areas of wear and help you create your roughness map. I'm simply wanting to avoid the scenario where people just drop AO into their roughness map because they think that's what should be done.
  • EarthQuake
    Options
    Offline / Send Message
    Yeah, AO straight multiplied on roughness/gloss is very, very no.
  • d1ver
    Options
    Offline / Send Message
    d1ver polycounter lvl 14
    Jordan totally agreed. I was just worried that someone might see AO as a boogieman that is not to be multiplied over textures for some mysterious reasons :)

    If you are using Glossiness in your project then multiplying it by AO is the same thing as adding inverted AO to roughness. You might not want to go 100% opacity on that multiplication but it still could be a valid artistic choice.
  • agitat3d
    Options
    Offline / Send Message
    agitat3d polycounter lvl 7
    Thanks for all your thoughts everyone. Very helpful indeed.
  • agitat3d
    Options
    Offline / Send Message
    agitat3d polycounter lvl 7
    JordanW,
    Yes that was basically what I was asking. Thinking about it now I can see why it wouldn't make sense to use wholesale AO in your gloss map.

    I guess if we were doing things totally realistic we wouldn't have AO in any of our maps.

    Thanks again
  • EarthQuake
    Options
    Offline / Send Message
    Really AO should not be multiplied onto your diffuse/albedo or spec/reflectivity maps if you can avoid it.

    When you multiply AO on your diffuse and spec, what you're doing is removing light even from direct light sources and reflections, which is just incorrect. Large scale AO should mask ambient diffuse light and nothing else. If you plug an AO map in as a separate texture it can be used much more intelligently.

    If you want to mask reflections, a reflection occlusion mask is a better choice, and a solution like screen-space reflections is much better yet. AO does not mask specular reflections in reality, reflections simply reflect other objects near them, though traditionally this has been too expensive to do, so we usually add AO to the spec to cut down on inappropriate cubemap reflections (ie: the sky reflecting on an inside check of a mesh which the sky wouldn't logically hit).

    As far as multiplying AO on gloss straight up, again this just doesn't make any sense. Using AO as a base to generate masks for material layers like dust or dirt is a great idea, but you really need to think of it in those terms. You're creating a layer of an entirely different material, actually defining that material, dust for instance, not just throwing an AO map onto the gloss as an artistic choice. I think its really important to be clear about this concept.
  • d1ver
    Options
    Offline / Send Message
    d1ver polycounter lvl 14
    Hey man I totally agree with everything apart from this little passage:
    EarthQuake wrote: »
    As far as multiplying AO on gloss straight up, again this just doesn't make any sense. Using AO as a base to generate masks for material layers like dust or dirt is a great idea, but you really need to think of it in those terms. You're creating a layer of an entirely different material, actually defining that material, dust for instance, not just throwing an AO map onto the gloss as an artistic choice. I think its really important to be clear about this concept.

    From a previous post:
    Yes in case of a new-ish factory produced asset, roughness will probably be uniform. But if you are doing a worn asset it's quite logical to assume that it's not going to be brushed by everyday use where AO is. So you can add inverted AO to your roughness to mimic that.Yes you wanna be careful, but it's more of an artistic choice and each outcome is going to be a realistically plausible scenario.

    Roughness can and should be used to describe wear. Not everything has to be a new material layer and not all materials are uniform across an object. A single material type can have varying roughness on different parts of the object depending on wear. If something is extensivly brushed in everyday use then the least brushed parts are going to be where AO is.

    Definitely not saying it's a must for every asset, just saying that it's plausible.
  • EarthQuake
    Options
    Offline / Send Message
    d1ver wrote: »
    Hey man I totally agree with everything apart from this little passage:


    From a previous post:
    Yes in case of a new-ish factory produced asset, roughness will probably be uniform. But if you are doing a worn asset it's quite logical to assume that it's not going to be brushed by everyday use where AO is. So you can add inverted AO to your roughness to mimic that.Yes you wanna be careful, but it's more of an artistic choice and each outcome is going to be a realistically plausible scenario.

    Roughness can and should be used to describe wear. Not everything has to be a new material layer and not all materials are uniform across an object. A single material type can have varying roughness on different parts of the object depending on wear. If something is extensivly brushed in everyday use then the least brushed parts are going to be where AO is.

    Definitely not saying it's a must for every asset, just saying that it's plausible.

    Gloss/roughness definitely should be used to describe wear, materials of varying ages with have a very wide range of difference microsurface values, and a signle surface on a texture could have a lot of contrast and variation as well. I think we all understand that.

    However, again I think its really important to think about the material you are trying to represent, rather than just throwing AO over the entire gloss map. Different materials age differently, different materials will pick up dust, oxidize, stain, etc at different rates and often with totally different effects. AO on gloss is not a universal solution, I want that to be perfectly clear. This sort of thing is really easy to spiral into the miss-information category if repeated enough.

    Again, AO can be a great source (along with various other sources, like convexity/concavity masks, object space normals, etc) for generating initial masks for various effects, like dust or dirt that would naturally be rougher than freshly polished metal or glossy plastic. AO can be used as a starting point for a lot of things, however, AO multiplied on your gloss texture without any further thought is a bad idea.
  • d1ver
    Options
    Offline / Send Message
    d1ver polycounter lvl 14
    It looks like we're completely on the same page Joe we're just both afraid that it might be pulled it into the other direction a tad too far.
    This sort of thing is really easy to spiral into the miss-information category if repeated enough.
    Exactly like "never put AO in your textures". My point is the same as yours: "think about the material you're trying to represent" and be fully informed of your options.
    AO straight on your gloss texture without any further thought is a bad idea
    With further thought however it is a valid option :) because:
    Gloss/roughness definitely should be used to describe wear, materials of varying ages with have a very wide range of difference microsurface values, and a signle surface on a texture could have a lot of contrast and variation as well. I think we all understand that.
  • EarthQuake
    Options
    Offline / Send Message
    d1ver wrote: »
    It looks like we're completely on the same page Joe we're just both afraid that it might be pulled it into the other direction a tad too far.


    Exactly like "never put AO in your textures". My point is the same as yours: "think about the material you're trying to represent" and be fully informed of your options.


    With further thought however it is a valid option :) because:

    Yep, ok cool, looks like we're mostly arguing semantics then.
  • agitat3d
    Options
    Offline / Send Message
    agitat3d polycounter lvl 7
    Things are now very clear to me. This has been a really useful post.
Sign In or Register to comment.