What to export from Blender 2.93? And a bit of constructive criticism on the manual page

The manual and forum posts seem outdated.

Manual mentions that the most popular way is to use ane exporter called YABEE but that it doesn’t work with the “latest” version of Blender , 2.80 ,while 2.80 hasn’t been the latest version for quite some time.

Other options don’t even come with Panda and are unofficial and requiring separate installation. Why? This is not a good first impression.

It is 2021, a command line tool to convert your assets is not a good first impression either.

  1. The manual doesn’t make it clear whether blend2bam materials even work with the default renderer at all and whether the recommended unofficial renderer is simply recommended, or whether it is necessary. What’s the case?

  2. There’s no mention what glTF supports. I realize that format is not Panda specific, but some info would be appreciated since we have to guess what glTF features Panda supports. Does it support skeletons and skeletal animations?

  3. There’s no mention of Collada and other formats at all while on a different page it is mentioned that Panda uses Assimp for importing some formats.
    Considering this and considering that I don’t need PBR materials, is Collada also an option?

I realize all this can be tested and verified in few hours but proper documentation that saves users so much time is what makes people choose one library over the other. Please take this as constructive criticism. RIght now the manual page seems like ranom unrelated posts during a 10 year period merged together, which forces me to ask these basic questions in the forum instead.

A little while ago I put together a quick-reference thread to this end:

I do agree that a command-line tool is not ideal. There is the argument that Panda is a somewhat command-line oriented engine (see the build system), but I do think that it’s not great for first-time users.

I can at least answer that glTF supports skeletal animation, indeed, from what I’ve seen of it.

Overall, there has been a bit of discussion around these matters of late, I believe. My feeling is that we’re in a bit of a transitional period: YABEE, once the standard tool, and a pretty mature and stable one, has fallen away with changes in Blender. GLTF support has entered–but yet has a few issues.

While I can commend you on spending time writing a forum post about it, I think it’s a pretty bad idea to expect people go hunt for info in the forum when there’s the manual page. There’s too much info scattered in different places. What’s the reason to not simply edit the manual page?

Regarding command line tools, I have to disagree it’s not great for first-time users only. I’ve been doing gamedev for 15 years. Command line without good reason just makes it slower workflow over GUI.

What issues does glTF support have? A manual search, forum search, a new forum topic in and having went through your own topic and I still don’t know exactly what limitations glTF has over BAM.

I hope the admin will take these posts as constructive criticism to learn from rather than rants.

I’m a community member, not an engine-dev.

In any case, as I said, these things seem to be in flux right now.

I think that this varies from dev to dev–I’ve seen others champion command-line, as I recall.

(For the sake of clarity, I’m not one such myself–I prefer a GUI-based approach, and indeed, have argued elsewhere for a GUI-based approach to glTF export and blend2bam.

I’m not, however, convinced that a GUI-based approach is universally better, across all potential workflows.)

I’m honestly not sure myself–I haven’t used glTF overmuch in my own work, and so haven’t bumped into any limitations that it might have. I’m primarily going off of second-hand data from other community members.

I can’t speak for the admins, but speaking for myself I think that you’ve argued your points with a level head thus far, and–to me at least–haven’t come off as ranting.

Unfortunately, I cannot address your concerns with regard to the lack of official documentation. I feel similarly to you on most points you have brought up here, and I have a similar amount of graphics programming experience as you have.

Since nobody else is documenting this, I’ll give it a shot. Without custom shaders that recognize and function with Panda’s texture slots, the .gltf support with the default renderer will be very limited. You will be able to load in simple .gltf models, such as ones with bare BSDF nodes, or perhaps ones with simple base color textures.

To get full feature nativity, I use custom shaders which are applied via set_shader() to base.render. For other cases, such as lower-level geometry creation, one can use set_shader_off() on those nodes, or even set_shader_auto(), though I wouldn’t recommend that for most cases.

Nobody on the forum, at least, seems to talk about this, but it is possible to load .gltf natively on the latest Panda versions*** assuming panda3d-gltf is installed. Indeed, we’ve been building the tech demo without the patch_loader() call, and without simplepbr.init().

***Edit:
I need to modify the previous statement. I do not fully understand why .gltf files load without the patch_loader specified on certain configurations but not others. I would appreciate learning some details about how “panda3d-gltf” remains functional on systems after the “patch_loader” call is removed from the game code, or in what cases it is actually required, IE from a clean install.

Yes, it is annoying that this is not explicitly documented. glTF supports skeletal animation. I have posted working code in the forum before which demonstrates this in Panda without any 3rd party imports nor conversion strategies.

Even if you don’t need PBR, I would still suggest using .gltf or .bam – these methods do not force you to apply Metalness or Emission or anything else to the material node. You could just apply a base color texture with everything else set to 0 or default values. And indeed, you could write custom shaders to handle other maps.

1 Like

The manual is written collaboratively. I invite you to open a pull request adding the information you think is missing. Failing that, I invite you to open an issue on the manual issue tracker so that others can pick it up.

1 Like

There is already Blender to Panda3d exporter plugin, that I use at my workflow, it’s modified version of old YABEE, which I constantly adapting for Blender 2.80 and higher. 3D models exported with my plugin sometimes has color distortions because plugin writes material properties needed for RenderPipeline, while Panda3D itself use slightly different material properlies.

1 Like

Choosing PRPEE as an exporter is a big mistake that can be made. Use this fork for blender 2.8 and higher.

Why do you think it is big mistake? You recommend another fork that even has not removed texture baking feature, leaving user with problems when he will try to do bake texture. Your fork is big mistake.

“and collision options export through Blender’s “Game logic” → “properties””
Hmm, there is no more “game logic” thing in 2.80+, it was removed with internal renderer, of course, I don’t exclude that this feature was added in 2.93, but it wasn’t the last time I used 2.93.