Here is a filter to convert baseColor/Metallic/roughness to Vray/Corona/Redshift/Arnold
This filter is now by default in SD library (search for PBR converter).Limitations:
- in Vray/Corona the fresnel is colored, it's not in SD
- a 100% black metal renders black/no reflection in Vray/Corona, in SD the fresnel is still visible.
- in Redshift, materials with in between gray values in Metallic are rendered with a slightly different color than in SD
Vray 3.2- for the glossiness and 1/ior texture make sure the gamma for these maps is set to 1.0
- diffuse and specular (reflection) should be left to default (gamma 2.2)
- select the "Microfacet GTR (GGX)" brdf (Vray 3.2 only).
simple scene example :
http://1drv.ms/1MXUgOa
Corona 1.2
- for the glossiness and 1/ior texture make sure the gamma for these maps is set to 1.0
- for the ior texture, create a CoronaMix, Set the Mix Operation to Divide, put the ior texture in the Top Layer, set the Base Layer to White
- I put a simple curve on the glossiness to approximately compensate their internal curve (they gave me the function I'll try to make something more accurate later). Or maybe they'll just get rid of their curve, that'd be the best solution
simple scene example :
http://1drv.ms/1MXUrcoRedshift
- for the glossiness and f0 textures make sure the gamma for these maps is set to "linear sRGB"
- plug the f0 map to the "Facing Reflectivity" input
- curve is also applied because Redshift seems to use a Blinn-Phong BRDF
Arnold 1.2.3.1
- color profile on native 2D texture is not taken into account by Arnold
- apply gamma correction (2.2) on roughness and f0 if texture gamma is set to 2.2 in the renderer settings
- apply gamma correction (2.2) on diffuse and specular if texture gamma is set to 1 in the renderer settings
- roughness does not perfectly matches: Arnold uses a Cook-Torrence brdf, closer to GGX than Blinn-Phong but still a bit different
Replies
could we get one for redshift ?
je peux t aider si tu veux :-)
I've tested Corona, it does not support IOR < 1. Even though you can plug a bitmap in the IOR input, it looks like it's stuck to 1.
The ior is mandatory for the conversion..
In vray, the values bellow 1 represents 1/ior, allowing users to input a texture. Maybe you could ask the devs for that ?
I'm downloading the demo of Redshift, I'll see what the shader offers!
i could send you the part about rendering in redshift that i did for my gnomon video
could be a good start ..
i managed to get close to 90/95 %
christophe
I'll do that tomorrow.
Sure, send me the video!
( would need redshift installed )
left . painter right . redhsift
Corona:
As you suggested making (1 / (1/ior map)) allows to retrieve the correct value.
Their is one problem though: Corona shader seems to use a blinn/phong brdf (we use GGX in SD/SP). So we can apply a curve to try to match the glossiness but it can't work for very rough values (blinn/phong is limited for representing very rough surface).
Redshift:
We can do the same thing as in corona (the division in the ior channel) or simply use a F0 map in the "Facing Reflectivity" channel.
Same problem as Corona: Redshift shader uses blinn/phong brdf.
Also colored reflection on F0 is a bit different, it's less "colored" than in SD for values in between dielectric and metal. But anyway we are not supposed to have gray in metallic, right ?
I'll update the PBR converter and add a "target" parameter with Vray, Corona and Redshift and put some illustrations
I have noticed some inconsistencies with roughness, which may be part of the problem. Mainly when using displacement maps corona seems to get glossier as you get close up. I haven't been able to see a pattern in that behavior unfortunately.
They probably put a curve on the glossiness.. we should be able to get a much rougher surface when gloss = 0..
We implemented ggx without any changes from the original paper, seems like vray did the same, it perfectly matches with vray.
lol .. i am already bugging jeremie and alexis right now
This is a great and desperately needed workflow addition to your great product line.
Make sure the roughness and metallic map color profile is set to "Linear sRGB".
https://forum.allegorithmic.com/index.php?topic=4023.0
I was curious if this will work with earlier versions of VRay, such as 1.5 and/or 2?
@toren3d The main "problem" with earlier version of vray is the brdf: it's the key. If the brdf is different, the glossiness will be different. Vray 3.2 has the same brdf (ggx) than SD/SP, so the glossiness perfectly matches. With 1.x/2.x you can only choose between blinn, phong or ward, each would require a specific curve to approximately convert the glossiness. Blinn/Phong generally can't be as rough as ggx, but I think Ward can. I'll see what I can do
But this filter is asking for a "Specular Level" map?
Do I leave that node alone or am I supposed to provide a specular map?
EDIT: Was having a "Cannot load Substance binary file" error, but I that was resolved. I was using an older version of the file you provided .
The SpecularLevel map is a grayscale texture which is remapped inside the shader to 0.02 -> 0.08. The default value for this map is 0.5 gray and corresponds to a 0.04 (4%) reflectance value at f0. It's the most common value for dielectrics. UE4 uses the same convention.
Few people actually create this map, but it can be needed in specific cases so I had to take it into account.
Nicolas my friend, you are cranking out great ports to all (or at least most) of the render engines
Keep working your magic brother!
Rock on (
I don't think it did, in fact I'm not even sure if it will change in the 3.0 release, they seem more focused on VR and Volumetrics for now. I always wanted to know the name of the BRDF Octane uses but never found anything.
Great job on spearheading this workflow!
But right now a more complicated setup is possible:
- a mix between a dielectric material (ior 1.4) and a specular material in function of the metallic map.
- use basecolor as color for both
- may need adjustments on the roughness/glossiness
Thanks for trying Nicolas. I'll give the complicated setup a try.
-Paint in Metal/Roughness(my preferred workflow), but convert and export to Spec/Gloss from Painter
-Change my normal format to OpenGL
-Create a Glossy Material for your textures in Octane with IOR=1
-Change the gamma for your imported textures accordingly(1 or 2.2 depending on bit-depth)
-If you export a Gloss Map, invert it in the Roughness input
-The gamma for the roughness map that more closely matches Painter seems to be 1.250
That's the setup that has been working for me.
I've tried various shader settings and nothing seems to be changing things. Any ideas?
Thanks
I got Maya 2015, EXT 1, I have Color Management on, I don't know if it messes things up?
in Maya Color Management I'm using:
Rendering Space: scene-linear Rec 709/sRGB
View Transform: sRGB Gamma
Default Input Color Space: sRGB
Output Transform: sRGB
In Arnold settings I use:
Display Driver Gamma: 1
Light: 2.2
Shaders: 2.2
Textures: 1
I brought in the files, set all of them to RAW (Maya Color Management) except for F0 and Roughness, which I set to sRGB - is that the right setup?
Also, can't seem to get the tangent normal map to work, Arnold renders completely black, do I need to flip channels if exported from SD using DirectX?
I usually work with game engines, so this is a new territory for me :poly142:
I wish there was a written guide on how to set it up for inexperienced users