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
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.
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?
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