How to convert a phong material to PBR?

Is there a way to convert ambient, diffuse, specular values into PBR material values? Is there a way to carry out the opposite process as well? I didn’t find a formula for that.

If you could do that, you wouldn’t need PBR because it would be equivalent to Phong. Phong is a hack; PBR is ultimately based on something real. There’s no useful equivalence relationships between the two sets of values.

You could possibly come up with some kind of heuristic conversion between some PBR model and the Phong model that had decent results. But you’d have to manually tweak the output to make it look good anyway. So you may as well do it manually from the start.

When I import models in .obj format in blender, it converts to PBR values. I’m using the glTF format on my game engine but blender only export these PBR values. I thought that there might be a way to retrieve the approximate values of the Phong material.

Blender doesn’t use a single BRDF model. But as you told it, you could have a look at how Blender is doing this conversion and use the same mechanism in your code. But you’ll never end with something great in dealing with metallic / non metallic, rough / non rough surfaces.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.