1
$\begingroup$

I have a 3D armor which was textured in Substance and exported following that pipeline: https://www.khronos.org/blog/art-pipeline-for-gltf, that is to say with a ORM map.

However, once the maps pluggued in the right nodes in Blender (I'm using the glTF metallic roughness node from https://github.com/KhronosGroup/glTF-Blender-Exporter)...the metal renders like plastic, not at all like in Substance. I have tried to toggle Color / Non-Color Data modes, to darken the roughness... Nothing works.

Here are some screenshots. First what it renders in Substance painter. Here's what it renders in Substance

Then what it renders in Blender using the gltf nodes Render in Blender with GLTF node

The node connexions: GLTF node connexions

And finally what it renders when plugging the maps in the Principled BSDF node enter image description here

Can someone please explain me why I can't seem to get the metal effect right using the GLTF pipeline? :(

Thank you very much :)

$\endgroup$
  • $\begingroup$ The wireup looks mostly correct to me, except the "alpha" wire shouldn't connect to "DoubleSided" (and for this model I think you can remove the alpha wire completely). What reflection map are you using? Is this Eevee or Cycles? $\endgroup$ – emackey Jan 11 at 21:32
  • $\begingroup$ I think I'd recommend the Principled BSDF node rather than the custom nodes now, along with github.com/KhronosGroup/glTF-Blender-IO. One notable limitation is that occlusion will have to be wired up and exported separately. $\endgroup$ – Don McCurdy Jan 11 at 21:36
1
$\begingroup$

An ORM texture stores each map in a channel : Occlusion in Red channel, Roughness in Green channel, Metalness in Blue channel.

You need to use a SeparateRGB node to split the texture into separate channels. Then, simply connect each channel to the corresponding input.

$\endgroup$
  • $\begingroup$ The SeparateRGB node is only needed when connecting ORM to Blender's own Principled BSDF node. The "glTF Metallic Roughness" node group internally contains the correct separations for a glTF ORM texture, there's no need to wire these up manually outside that node. $\endgroup$ – emackey Jan 11 at 21:31
0
$\begingroup$

Thank you for your answer.Problem is, it seems that the GLTF node is made such as there is only one slot for the Metal and Roughness information (MetallicRoughness). So I tried what you suggested out of curiosity but it still not renders well :/ Moreover, in the Kronos pipeline they say nothing about re-separating the channels after ... :/

$\endgroup$
  • $\begingroup$ Wouldn't that work correctly if you instead plugged the corresponding separated channels into the two inputs there under the metallic roughness, into the Metallic factor and the Roughness factor? $\endgroup$ – Craig D Jones Jan 11 at 18:08
  • $\begingroup$ Hey Craig D Jones, no it still renders wrong by plugging into the Metallic and roughness factors :/ $\endgroup$ – Popi yesterday
0
$\begingroup$

Hi everyone and thank you for your answers! Emackey asked whether I was using EEVEE or Cycles which gave me the idea to try and upgrade to Blender 2.80 :) (yes I was still in Blender 2.79). I'll give it a try, as the GLTF pipeline was included as native into Blender 2.80, that might work better. I'll keep you informed :)

EDIT: ok so I have tested with Blender 2.80, and it seems that the GLTF shader node doesn't exist anymore, you can simply use the Principled BSDF and it works. However it does raise a question: why is the ORM still needed?

Thank you very much!

$\endgroup$

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.