For a while now I've been trying to figure out a way to get a PBR shader working inside my Max viewport. Whenever I use the ShaderFX Stingray shader however, my roughness map always becomes splotchy and pixelated.
I've read that the stingray shader doesn't support grayscale roughness maps so I've went with the ORM (Occlusion, Roughness, Metallic) packed map approach but I'm still getting similar results. All my maps are set to linear encoding, and my gamma/lut is turned off in the viewport. Is this even fixable?
What is causing my roughness map to be rendered this way, and how can I remedy this?
Replies
For example, Normal map should definitely not use Linear, you should use Normal map encoding.
And to avoid any doubts on textures, post them as well.
(I am using Maya so I can only make suggestion in terms of ShaderFX)
But I think you should try changing the Standard Base's Normal to "Tangent Space". At least I managed to produce a similar weird rendering using "World Space"
Good luck.
World Space
Tangent Space
I tried tangent space it just flips the environment map, the roughness is still as pixely and splotchy as ever.
What I see in your initial images is consistent with what I've seen myself during testing.
It's not broken as such, just different.
That way you have a lot less variable and can tune each node one parameter at a time to figure out what might be wrong.
EDIT: a few things I would try after creating the base nodes.
- BaseColor: sRGB Map encoding.
- Standard Base: IBL encoding use Linear (to match Substance).
- If all else fails, you might want to open a support ticket to Autodesk (I figure out mine with their support).
The result is messy still. @poopipe I don't think this is normal consistent behavior for the shader because I can see much better and different results in bittin's examples
Someone had a similar issue to mine and the answer reply from an Autodesk employee was that the issue was in the material code.
http://polycount.com/discussion/comment/2379869#Comment_2379869
My material is in world space because i use the tangent to world node - mainly out of habit. i didn't change any settings etc.
max 2017 first: (had to make a new teapot as it didnt like your FBX for some reason)
and maya 2018
This is what happens if you tell it the ORM texture is srgb - you get the same thing in Maya:
That does look suspiciously like what you're getting in your viewport .
This should get you to where bitinn is - it doesn't resolve the differences between stingray and substance.
If you're not getting this then something is broken.
you could try adding a power node (0.45) to un-gamma correct the image if you think there's an issue with encoding
Thanks for the suggestions, they didnt fix my issue unfortunately. In this screenshot you posted, it looks like you are getting the same issue as me with your roughness map being drawn pixelated and splotchy as if its being mip mapped. I'm not seeing it in your Maya screengrab which makes me think that this issue is exclusive to Max.
I'd publish mine but I built it at work so I wouldn't be allowed.
It's a gross simplification I'll grant but it's not untrue.
To answer the original question in practical terms - it's what the shaders expect and it's what the authoring tools produce (WRT the grayscale "maths" images at least .
Why is it a good idea?
You'll know this but... if your image is stored with a gamma curve on it then information is squashed at the ends and basically lost. If it's stored as linear then that information can be converted to gamma space without loss.
Working linear also makes all the maths in your shader cheaper.
Overall, it's higher quality and cheaper..
This is the BRDF map I'm using if anyone is curious, it works great.
Max and UE4 comparison
I've linked your solution on shaderfx.com
i am having a similar issue and i am sure that i could solve this, if i just understand how to create my own LUT.
Cheers
E
http://brdflab.sourceforge.net/
And this
https://alastaira.wordpress.com/2013/11/26/lighting-models-and-brdf-maps/
BRDF map looks to be a generic game concept. i only know BRDF throw standard precalc renderer. The fact that they approximate this with a Map in games is new for me.
- the incoming light direction
- and the viewing direction
https://www.imgtec.com/blog/physically-based-rendering-with-powervr-part-2/
https://x3dom.org/pbr/pbr2016.pdf
https://www.programmersought.com/article/8883369575/
https://learnopengl.com/PBR/IBL/Specular-IBL
https://github.com/HectorMF/BRDFGenerator
https://docs.imgtec.com/PBR_with_IBL_for_PVR/topics/Assets/pbr_ibl_the_bidirectional_reflectance_distribution_function__brdf__look_up_table.html
I think the initial concept of using a 2D Map to approximate BRDF is coming from UE4 and this paper :
https://de45xmedrsdbp.cloudfront.net/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf
Cheers
E
Thank you very much for this! Even after years 3ds max still have broken build-in BRDF texture (pixelated texture which produce artifacts), and your sulution solved the problem! (in my case I also edited orientation)