Hey guys, been updating my shaderfx shader to preview Arnold materials, so I´ve made a script that automatically assigns the textures (with the correct color space) to materials and creates a linked real-time preview material to them.
Of course there are no global illumination or environment shadows (only environment irradiance) or real reflections.
For now there is the need to use pre-convoluted cube maps. Maya automatically creates them when you assign an environment (arnold skydome), but there is no way to fetch them inside shaderfx, you need to manually make them, using the free amd cubemap converter or Knald Lys for example.
I´ve added a realtime GGX convolution inside the shader to be used with normal lat/long .exr files, but even with a very good graphics cards it gets slow real fast even with all optimizations I could do.
No support for area lights for now. Even though its corners are exposed in the api (like maya generated cube-maps) they cannot be fetched.
Screen space effects cannot be done, as shaderfx cannot read/write the framebuffer (so no custom ssao, ssr, ssgi, etc).
Maybe one day shaderfx will be able to fetch those area lights corners and maya generated cube-maps, among other things.
Pretty sure maya will have a nicier preview in the future too.
The shader is mainly used for simple previews and material lookdev as a better alternative to the default aiStandardSurface preview, as it doesn't preview roughness maps and clear coat.
Besides its main features, like PBR metalness workflow, my shader has support for IOR based fresnel, clear-coat with custom roughness, color and normal, specular layer with IOR for metals and procedural flakes.
If there are any interest, I might start a beta and release it free for all.
Here is an example (Mesh Mat from Allegorithmic) (Arnold render without flakes).
Viewport render @130fps
16xAA (quaddro m5000):
And here are some close up previews of the flakes and clear coat.