Support for MTL map_Ns (shininess map)

Currently/To the best of my knowledge the only shininess setting for phong material is shininess (mtl Ns) but mtl supports a shininess map (map_Ns). I’m sure it’s a pretty big deal but I’d be eternally grateful if this feature was added.

Three.js version
  • Dev
  • r79
Browser
  • All of them
  • Chrome
  • Firefox
  • Internet Explorer
OS
  • All of them
  • Windows
  • Linux
  • Android
  • IOS

Author: Fantashit

1 thought on “Support for MTL map_Ns (shininess map)

  1. @WestLangley wrote:

    @bhouston Our implementation of MeshPhongMaterial is not a physically correct model in any respect.

    The ThreeJS implementation of BlinnPhong is not physically correct, that is true. Other renders do have much more physically correct implementations — V-Ray and PRMan have really good implementations of BlinnPhong that are essentially as physically correct as MeshSTandardMAterial/MeshPhysicalMaterial — they differ only in terms of parameterization.

    The reason why ThreeJS’s MeshPhongMaterial are so bad is because of three issues with our implementation:

    (1) We are not energy conserving. Energy reflected by specular layer should not be made available to the diffuse layer. If specular is 1, 1, 1 (which means the surface is metallic and fully reflective) then the light getting to the diffuse layer should be 0,0,0. (This energy conservation is part of MeshStandardMaterial in the way that increasing metalness reduces the intensity of the diffuse layer.)

    (2) ShininessMap should modulate shininess.

    (3) SpecularMap should be a color map that modulates specularColor.

    This would be useful to have right because then ThreeJS can load MTL, FBX and other BlinnPhong model using files with as full fidelity as other professional rendering packages.

Comments are closed.