Home Technical Talk

[Maya][shaderfx] PBR + Metalic/Roughness shading model ?

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

I would like to use a metallic roughness surface model in shaderfx to display PBR assets with viewport 2.0.
I have try to import the stingray model in shaderfx context but it give me an error.

For an obscur reason AD has split shaderfx in 2 sperated context.
- shaderfx context which has groups / procedurals etc ... but NO Metallic / Roughness surface model
- stingray context which has No groups / No procedural etc ... but has a Metallic / Roughness surface model

I would like to get the best of both context :  
- the full feature context
- and the metallic / roughness model 

is that possible ? what are my options ?
Thanks for your time 
Cheers 
E



Replies

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    You can use custom code nodes to handle whatever you want within full ShaderFX

    I've ported the diffuse  and specular IBL models found in the substance designer shaders to ShaderFX successfully this way and they work great.  Obviously you need to understand vaguely how the code works but it's not that hard

    Edit.  It did mean literally building the Shader from the ground up so it's not as fully featured as the standard game surface Shader they supply at this point
  • SebKaine
    Offline / Send Message
    SebKaine polycounter lvl 5
    Thanks for your lights poopipe, you kinda confirm what i thought.
    - if you want the full featured context + metalic/roughness workflow, you have to do your own shader
    - metallic/roughness without custom shader is possible only with the restricted / lock up stingray context
    I will not try to ask myself why AD has made this choice of creating a special restricted context instead of building their pbr shader in one unified context ...

    In the case you choose to do your own shader, is there any advantage of using shaderfx , instead of coding your own hlsl code and load it with the DX11 shader loader ? Because if you start from scratch , it might be cleaner to work directly in code instead of feeding snippet with patch of code ? What would be the most efficient ? in terms of :
    - viewport perf
    - simplicity to create and maintain  
    - DX11 accessible feature set 

    Thanks again for your help !

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    It's a lot easier to handle image composition and lighting in ShaderFX than it is to write your own

    The stingray material is locked off because it was designed for stingray only.

    I assume the node list is different because those are nodes that can be compiled into real runtime shaders in engine (I don't know that for sure,  did anybody actually use stingray?) 
  • SebKaine
    Offline / Send Message
    SebKaine polycounter lvl 5
    Thanks again for your help poopipe !
    I will follow your advise then , and stick with shaderfx.  

    I agree with you they must have restrict certain feature to match the stingray ecosystem, it does make sense.
    That's a shame they didn't have the idea to implement 2 shading model :  spec/rough and the metalic/roughness in the main context.
    Every other app i use let you the choice beetween the 2 workflow.

    From what i've read stingray is dead and will join his fellow softimage friend in the graveyard.
    Stingray wasn't a bad engine, it was a sweet product, but not just as popular as Unity/UE i guess.

    This idea of having a dedicated context in shaderfx to communicate with external engine is really good.
    But that would have been cool to keep everything in the same one and just flag function that are not allowed. 

    I hope AD will have the idea to replicate this with UE and Unity to be able to display PBR asset in maya and export them directly in those engine. 

    Cheers !
Sign In or Register to comment.