Home Unreal Engine

Material setup - Metallic / Specular (using DDO)

polycounter lvl 5
Offline / Send Message
Priareos polycounter lvl 5
Hi guys,

i have assets in my game, which all use unique textures, some of them are non-metals, some are metals and some are both.
I tried to create a very basic, universal material, but somehow my specularity just isn't quite right. My textures are done with the latest DDO version.
I have an 'Albedo for Metalness'-map (+ Heightmap in alphachannel), a Normalmap and a Special-map consisting of (R = Roughness-map, G = Metalness-map, B = AO).

This is my material setup:
matllicmaterial19c6f.jpg

and this is what it looks ingame (as you can see, it's way too specular):
metallicmaterial2t6fcc.jpg

my roughness map is quite bright btw:
metallic_roughness3nevp.jpg


The pbr/unreal documentation states this:
The Specular input should not be connected and left as its default value of 0.5 for most cases.
It is value between 0 and 1 and is used to scale the current amount of specularity on non-metallic surfaces. It has no effect on metals.
For very diffuse Materials, you may be inclined to set this to zero. Resist! All Materials have specular, see this post for examples [5]. What you really want to do for very diffuse Materials is make them rough.
So as far is i understand, the whole UE4 workflow is like this: If i have metallic stuff (white in my metalmap), the specular color (intensity i don't know about) is calculated out of my albedo. If i have a non-metallic surface (black in my metalmap, or unconnected), the specular value (in my case default 0.5) is being taken, which if the documentation is correct, should work for most materials. The rest of the specular stuff is done by the rouhgness.

And that's exactly the point I'm struggling with. If i follow the documentation and interpreted it correctly, i get bad results (except when turning my Specular parameter down to 0.04, then it looks kinda okay). If i tell DDO to give me an additional spec map, and plug it into Specular, it does again look kinda alright.

So my question is, do i need a specmap if i follow the UE4 workflow or not? If i understood some of you guys here correctly in earlier posts, the Specular channel is more like a cavity in Unreal, and should most of the time be ignored. So, how do i set up the material properly?
There must be a perfect way to setup textures and materials regarding the workflow from DDO to Unreal 4. All the calculations in the background are more or less mathematically and physically correct afterall...

I hope you can help me out! :)

Replies

  • Millenia
    Offline / Send Message
    Millenia polycount sponsor
    What is your metallic input/output? If it's anything above 0 for a non-metal, it'll pull some spec value from the base colour and make it look shinier than it should be. Conversely, for metallic things, you want it to be 1, only reserving intermediate values for transitions between metal/nonmetal (soft scratches on coated metal, for instance). You can drop the 0.5 from the specular input as well since it's not doing anything, I'd leave it totally empty.

    Try raising your roughness and see if that makes it less glossy, if your metallic output is 0 like it should be?
  • Cay
    Offline / Send Message
    Cay polycounter lvl 5
    you import your special-map as (compression setting) tc_masks, srgb turned off(happens automatically I think) for it to work accordingly.. if you had them separate it's a good thing to switch it to tc_grayscale from what I've heard and tested.. it's especially important for metallic and roughness (they're linear)
    specular is just some special tweak that you can leave unconnected, which defaults to 0.5.. it doesn't change that much that it could mess up material definition

    from my experience 3do and ue4 match up quite nicely with a very slight difference if you import it the right way
  • billymcguffin
    Offline / Send Message
    billymcguffin polycounter lvl 11
    Unreal will use an automatic value for the spec which is pretty accurate for most dielectrics if you don't plug in a spec value (generally it's recommended in UE4 to NOT use the specular input). Besides that, a spec value of .5 is incorrect for most non metals. Generally non metals have pretty low spec, see this chart from marmoset: reflcompare10.jpg
  • Priareos
    Offline / Send Message
    Priareos polycounter lvl 5
    you import your special-map as (compression setting) tc_masks, srgb turned off(happens automatically I think) for it to work accordingly.. if you had them separate it's a good thing to switch it to tc_grayscale from what I've heard and tested.. it's especially important for metallic and roughness (they're linear)

    Dude! Thx :)
    Mine was set to Color... -.- Both settings (masks and linear grayscale) magically fixed all my problems. I will check out the differences between masks and grayscale later.
    What is your metallic input/output? If it's anything above 0 for a non-metal, it'll pull some spec value from the base colour and make it look shinier than it should be. Conversely, for metallic things, you want it to be 1, only reserving intermediate values for transitions between metal/nonmetal (soft scratches on coated metal, for instance). You can drop the 0.5 from the specular input as well since it's not doing anything, I'd leave it totally empty.
    Unreal will use an automatic value for the spec which is pretty accurate for most dielectrics if you don't plug in a spec value (generally it's recommended in UE4 to NOT use the specular input).

    I had metallic set to zero in my example. Thx for the advice though, good to know.
    I just unconnected the 'Specular', and together with the right texture settings from above, it looks perfect.
    Polycount, you saved my ass once again...
Sign In or Register to comment.