What is "specular FO"?

(Sadicus) #1

I plan on using Unity PBR workflow, have not seen this before.
What is “specular FO”? What’s it used for?

(Techykitty) #2

Hello, I found this info from Sketchfab Help Center very handy. Thanks to Sketchfab team. Hope it helps!

(Shaderbytes) #3

FO is your index of refraction ( IOR ) having a map for this means you can control different levels of IOR within one material , depending how your surface is set up texture wise , nice thanks for the link , since the effect is minimal I mostly never bother with it and leave it on the default value but i will test out these values now in the future.



Actually, F0 is unrelated to IoR. It’s the Fresnel Reflectance value when light incident on the surface is perpendicular (i.e. 0° → F0). More details in the article @techykitty shared.

(Shaderbytes) #5

IOR as in Fresnel IOR - yes. Even the blender cycles node for Fresnel labels the value as"IOR"

(Stephomi) #6

Real time engines usually don’t use IOR as input (reason : 8bit texture map bad precision distribution + artistic control).

You can derive the F0 value from the ior with:

F0 = ((1-ior)/(1+ior))²

The default ior is 1.5, which gives you 0.04 (4% of light reflected at 0° angle for dielectric materials).
F0 values lie in the range 0-0.08, so that’s why the default F0 slider is set on 0.5.

note: some non-real time engines will sometimes handle 1/ior value instead of the direct ior values (once again because of texture precision).

(Shaderbytes) #7

Thanks @stephomi very useful information, @james just had an idea for a editor script that has presets for all the common dielectric types. The slider still remains as is , just the presets sets the slider etc…

(Sadicus) #8

An artist on Sketchfab was using “Specular FO” I have never known it by that name before. Never seen it as an option in Substance, ZBrush, Quixel, Marmoset etc.
…so used for Specular + ior for fluid distortion?
Is Sketchfab not considered Real time?

(Shaderbytes) #9



is is "fzero"
not “falpha_o”

The OP linked to an article explaining how to export it from substance :wink:

(Sadicus) #10

Thanks everyone for the info!

(Stephomi) #11

Sometimes it’s called “specular level”, for example in marmoset you should choose “Adv. Metalness” instead of “Metalness” (and you’ll see a new slider “Specular Level Map”).

In practice you shouldn’t fiddle with f0 a lot, in other term it’s just a way to boost the specular a little bit for non-metallic surface.

In Unreal, it’s only called “specular” https://docs.unrealengine.com/en-us/Resources/ContentExamples/MaterialNodes/1_3
^ this is not to be confused with the “specular” channel used in a specular workflow (unreal engine is only using the metallic workflow anyway, so no confusion in their case).