Download

UE5 REQUEST: Colored specular for true physically based PBR materials (examples and use-cases included)

This has been an issue for ages now, but the Metalness workflow based on Disney’s BRDF isn’t physically based when combined into one shading pass for anything other than flawless binary metals.

Silicon, magnetite (one type of dark gunmetal), and other semiconductors have ~20% reflectivity and are physically impossible to create with Unreal 4’s “physically based” materials. The industry has had an entire generation to learn PBR and it would be nice not to be treated like children with the specular channel being hardlocked to 0-8% reflectivity because those are the most “common” (many gunmetals, an extremely common material in games, is impossible to create accurately with right now due to the heavy-handed 8% specular limitation).

The absolute biggest issue is the blending between metals and dielectrics, which the single-pass metalness shading (NOT the way Disney’s BRDF works) workflow cannot do in a physically correct manner. Colored specular allows transitions between metals and rust/dust/dirt/etc. while single-pass metalness does not.

Last generation the issue was the channel packing by fitting diffuse/albedo and metallic reflections into 4 texture channels, but it would be nice if we could choose true colored specular for hero assets—just like how every character and other exotic hero materials use several extra channels and textures already (subsurface maps, bent normals, cavity, baked AO, heightmaps, etc.).

Furthermore if packing diffuse+specular into 4 channels is really THAT important, then there are still possibilities like YCbCr (hypothetically the channels would be: diffuse luminance Y, diffuse CbCr packed at half depth for each in a single channel, specular luminance Y, specular CbCr at half depth). But honestly we have so many other ancillary textures used for various use-cases that providing the option for accurately (TRULY physically based) dirty metals for hero assets shouldn’t be an issue.

Additional reference and use-cases:
Excellent summary talks about how Unreal is currently physically INaccurate by Billy Lundevall (who works at Quixel no less): Decrypting SpecLevel - YouTube and Ending The Metalness "On or Off" Debate - YouTube

Brian Leleux, a fantastic AAA lighting artist and responsible for the Substance ACES LUT, has to remove all non-binary metalness values in order to get proper materials that respond correctly to lighting. He has to do this because of the issues outlined by Billy Lundevall—namely that Unreal’s PBR metalness is literally physically INaccurate and causes bad lighting values for anything other than laboratory-clean pristine metals: https://www.artstation.com/artwork/oOZdXL

IOR of Magnetite is 2.3439 or a specular reflectance of 16%, which is impossible to accurately create with Unreal’s “physically based” single-pass metalness https://refractiveindex.info/?shelf=main&book=Fe3O4

Silicon (like most semiconductors) is also impossible to accurately create with real physical values. It has measured IORs ranging from 3.4 to 4.3, or specular reflectivity of 30-38% Refractive index of Si (Silicon) - Pierce

Finally, I would encourage the folks who hardcoded the Specular value to grayscale 0.08% to try recreating the type of dirty, interesting looking metal like this oxidized copper in a physically accurate way.:
image
Right now the closest anyone can get is by cheating the metalness system with bizarre and physically incorrect values…but if the entire point of treating artists (and the technical artists responsible for most shaders and master materials) as amateur children who can’t create proper textures is to ensure physical accuracy, then we’re back where we started.

3 Likes

I mean, sure. It’d be nice to see “UE5” transition get a lot of BRDF work. Metalness is limited, the anistropy added recently is hacky and doesn’t support area lights (what?) no energy preservation, the only pre-filtering offered is fairly basic and doesn’t cover displacement maps or anistropy, etc. etc.

Are there going to be changes, is it going to catch up or surpass Unity’s HDRP? I dunno, but OP I see and support your point.

Yeah, I’m not as familiar with Unity’s HDRP but anything that brings it to being more accurately “physically based” and less hacky, broken, and physically inaccurate would be an improvement. In general I would prefer they don’t force such heavy-handed hardcoded values (8% max dielectric specular? what, why? that’s not physically based at all).

If they’re worried about amateurs creating physically improbable materials, then bury the ‘unlock specular limits’ function in a checkbox under the shader details list for people who know what they’re doing, but never lock it to something that is so grossly inaccurate because they think their users are morons.