How to Import Cycles Principled BSDF PBR Material?

Hi all,

Blender’s Cycles Renderer has had a Principled BSDF PBR shader in it since version 2.79. This is the same shader used by Poliigon (Blender Guru I think) in his tutorial on PBR asset creation in Blender. Wanting to try out a simple PBR blender file in jME3, I looked at the TestPBRLighting.java file. It seems to use this material to render the tank. This example, however, seems to use images without the option of colors and seems to require a human-made material for every PBR model imported into jME3.
Though it seems unlikely, is it possible to import a .blend file into jME3 and still preserve the PBR shader? Currently, it uses a material with a gray color (possibly because that is the default Blender unshaded material). If so, is it possible to use the model with colors rather than images for the albedo, etc. maps?

Thanks

Sorry if I sound inexperienced; that’s because I am! I’m sure this perfect engine has a perfect solution.

Well the Problem lies within Cycles: We would have to mirror the whole functionality with exact the same code to get the exact same behavior, which we can’t really (as this even varies from blender version to version).

It’s also not necessairly what you really want, because for a game it’s better to just look up the finished texture instead of going through all the steps of generating noise (it’s a kind of tradeoff: The Nodes are awesome because they can all be translated to shader instructions, so it saves VRAM but especially noise takes GPU Power). Actually thinking about it, it is a nice idea, especially if one wants to tweak parameters during the game, but it’s unfeasible.

So what you want to look into is “baking textures”/“exporting textures/maps”. That’s what Substance Designer (paid software) offers you and I think it should be that BSDF’s node’s input which you want to export into png files. I guess there should be blender tutorials about that

One solution is to use the Khronos GLTF export script. (GitHub - KhronosGroup/glTF-Blender-Exporter: Moved to https://github.com/KhronosGroup/glTF-Blender-IO.)

Then by importing the node into Blender (glTF-Blender-Exporter/pbr_node at master · KhronosGroup/glTF-Blender-Exporter · GitHub) , → ‘NodeTree/glTF Metallic Roughness’ or ‘NodeTree/glTF Specular Glossiness’

you can export your mesh in GLTF format with all the textures used to create your PBR object.

By loading the gltf file into JME, the PBR material will be used and the textures used correctly

2 Likes

In their new addon they are supporting export of Principled BSDF node.

Blender glTF I/O no longer requires the use of custom Cycles nodes when exporting PBR materials. Properties of the Principled BSDF node will be used automatically, as supported by the glTF 2.0 format. Only simple node inputs like Image Textures are currently supported, and complex node graphs are ignored.

I just tested it on gltf model imported from sketchfab, exported with this addon, and loaded fine on jme.

1 Like