Babylon.js exporter for Houdini

Hi, is there an exporter from Houdini to Babylon.js?

Houdini is very different from any other application. Houdini is more procedural than any other. The way it defines bones, skinning, and it’s IK among many other elements is not like any other. If you look at at Houdini file it is difficult to read if you’re not familiar. I doubt - given the limited number of users - that anyone will try and write an exporter - let alone accomplish such a feat.

Otherwise, if you’re trying to export to WebGL, then you need to create a scene which is fully compatible with GLTF or OBJ formats, and export into Blender which you then can export to a .babylon file.

Galen

1 Like

As of now, I am using the glTF exporter in Houdini 17 (part of the gamedev tools) to transfer assets to Babylon.js.
It would also be nice if a .babylon file export extension can be available, like that one for 3ds max.

1 Like

Hello and welcome:)

What would you get from a. Babylon that you don’t get from a. gltf?

Here’s my two cents.:grin:
I have just began working with Houdini-Babylon pipeline in my latest project. As far as meshes and materials are concerned, gltf is quite sufficient. There are some left-hand / right-hand coordinates issues to deal-with but nothing too serious.
Not quite so sure about camera, lighting and other scene structure related contents. I haven’t experimented with complex scene transfer but I guess there are things that glTF are lacking compared with .babylon file format.
So my personal concern is scene structure transfer. I guess I will have a better grasp on this as I try to deal with more complicated scenes.

OK gotcha. Makes sense.

@Deltakosh @Galen @hcmetal hi guys, a bit late to the party here :sweat_smile:
I was thinking of writing a BJS exporter for Houdini - did anyone make any progress on this?
Do you have any advice or good reasons for not doing that? :sweat_smile:

1 Like

This sounds real coool but is Houdini not having GLTF support now ?

@leota @sebavan

Yeah it has GLTF exporter, but it’s not very good implementation. It always exports assets that are 2-3 times bigger (in mb) than the one exported from Blender. Very often if you do gltf validaiton of the exported mesh, it fails the validation.

I even once had this weird asset pipeline for a project, where I’d do everything in Houdini > export from Houdini > Import in Blender > Export from Blender. For some reason the GLTF exporter in Blender is way better.

@sebavan yeah Houdini has a gltf exporter now but as @Jozef_Plata said, it’s not that good.
Especially if you export animations, you end up with a huge file because it bakes every frame as a new geometry, rather than adding animation data to the file.

Blender has a GLTF export too but there’s also a BJS scene exporter plugin. What does that do that the GLTF export can’t do?

This is managed by our friend @JCPalmer and support things GLTF does not or does not have plugins for so let me add him to the thread to comment on this part

Thank you @sebavan. Looking forward to hearing your thoughts on this @JCPalmer


I’ve been making some progress in the meantime :slight_smile:

1 Like

.JSON / .BABYLON format has a much fuller set of things which always directly correspond to something in Babylon.JS. Things like turning off mesh picking & freezing mesh matrix calculation for things that do not move are just check boxes. Same for material freezing. In GLB, you have to write code to “tune” it.

The new performancePriority in BJS allows you to fix the unnecessary picking problem, but the other stuff requires knowledge to be able to say a material or mesh matrix does not need to be computed every frame. Here you check the boxes and it is recorded in the .blend file.

If you had to “optimize your scene” / patch your performance bugs, all you have to do in blender is to change the name of the mesh to probably screwed up the patch. Here you just re-export.

Other things not in GLB that I am aware are:

  • Blender duplicates translate into InstancedMesh objects. Think you have to do that in post load patch code with GLB.
  • A switch to do either Standard or PBR materials on a default, or material by material basis.
  • Multi-materials, billboard & physics imposters for meshes.
  • Material settings like iridescence, parallax, a set of transparency modes which directly align, material freezing, & about half a dozen others.
  • Multiple camera types.
  • Lights type translating to babylon types.

GLB is a really well supported interchange format. The .babylon exporter in is more of a translation to BJS, which has many custom properties for things which are not in Blender.

A recent topic also illustrates a problem with a GLB, which a .babylon does not have. GLB cannot do multi-material meshes. When combined with morphing, it means you may have to account for performing morphing on multiple meshes, since they got split into more than one due to multiple materials in the Blender mesh.

Animation wise, animation groups did not exist at the time when the exporter was written. I have never changed (except for shapekey animation that is recent), because I abandoned motion capture animation in favor of IK animation developed directly in a Virtual Animation Studio, running in the browser, backed using my own custom animation system. If someone wants to PR switching, that’s probably OK.