Home Technical Talk

[Maya] Slowly losing my mind over how its built-in PBR material work

polycounter lvl 6
Offline / Send Message
bitinn polycounter lvl 6
Hi all,

I have been using Maya's built-in Stingray PBS material and making shader graphs for almost a year now, and I thought I have a good handle on how it's done. But today I ran into a simple issue I couldn't figure out.

Let's see some images first:


What you just saw is a comparison of the same texture, using pretty much the same shader network, rendering with the same model, on Unity, Substance and Maya respectively.

Somehow Maya is always:

- showing more white waves than the other 2 applications.

- showing more gloss (less roughness) then the other 2 applications.

Here is another angle:






There are of course many factors for the discrepancy, some of them comes down to how "PBR" is implemented in each application's base shader. But this is too much to ignore, and I am hoping this is something I can fix.

I can confirm the following:

- All scenes only contain environment as light source.

- For Maya the BaseColor texture (PNG 8bit) is imported as sRGB and sampled as sRGB, The Metallic Roughness texture is imported as Raw and sampled as Linear. I tried changing them around, but the result never got closer to Unity and Substance.

- Even with a dead simple shader graph, the result remain the same.

- I am *not* using Substance plugin in Maya, as I work with PNG exports directly, not substance files.

This is pretty damaging to my workflow as I can't trust Maya viewport result anymore. I had to jump between Maya and Unity to make sure my in-game result is acceptable.

I don't know how everyone manage this?

(My added problem is: I am on macOS + Maya LT, which means I couldn't use other existing PBR material based on ShaderFX, as they all rely on DirectX in viewport. C++ plugin wouldn't work either, because of Maya LT limit.)

Replies

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    There's a curve applied to the values in the stingrayPBS  material - plus whatever tonemapping you have set up. 
    This is what prompted me to ditch it and build a new one from scratch in ShaderFX proper. 

    You should be able to use a glsl material in maya on a mac so you should be able use something exported from ShaderFX, even if you can't create it on your mac. I imagine the ShaderFX authors will be able to fill you in on the details of compatibility. 


    Regardless  though.. You should still be working in engine when adjusting material values. There are a lot more factors at play than just matching colours. 
  • bitinn
    Offline / Send Message
    bitinn polycounter lvl 6
    poopipe said:
    There's a curve applied to the values in the stingrayPBS  material - plus whatever tonemapping you have set up. 
    This is what prompted me to ditch it and build a new one from scratch in ShaderFX proper. 

    You should be able to use a glsl material in maya on a mac so you should be able use something exported from ShaderFX, even if you can't create it on your mac. I imagine the ShaderFX authors will be able to fill you in on the details of compatibility. 


    Regardless  though.. You should still be working in engine when adjusting material values. There are a lot more factors at play than just matching colours. 
    Thx, true about working in-engine, also why I have built similar shader graph in both Unity and Maya. The Unity one is working great so far. But sometimes we are aligning UV and stuffs in Maya, it would be nice to have that assurance (even though I know we end up checking it in-engine anyway).

    I would like to make one myself based on ShaderFX too, given the Stingray PBS woe I had, but it probably had to wait until we are less constrained by deadline. I suppose you had to create some custom node to convert roughness/metallic map into something the surface shader base node can understand?
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    I built it completely custom to match our in-game Shader so didn't use any of the supplied materials/nodes.

    With the stingray Shader we were fine with regard to lining up UVs etc. It just wasn't reliable for making decisions on colour or surface treatment 
Sign In or Register to comment.