assimp jvm porting

Hi guys!

We are working on an assimp porting here

The current supported formats are: obj, stl, ply, collada, assbin (DirectX, md2, md5 will be added soon)

For those who wonders which are the benefits compared to a native binding…

Advantages:

  • runs entirely on jvm (Garbage Collector)
  • lighter import
  • written in Kotlin (less code to write, more features, more expressiveness)
  • cleaner, more intuitive interface (especially the Material part) and plain names
  • possible to set the build-time flags and property (debug/config/log)
  • easier to debug
  • easier to modify/customize, e.g: textures get automatically loaded and offered via gli library, you just have to upload them to GL
  • matrices are column-major instead row-major and offered via the glm library
  • easier to fix (found a couple of bugs on the original assimp, notified, I didnt have to wait for the next releases fix)
  • reduced the maintenance at minimum by keeping the same structure as possible during the port
  • possible to get the same loading speed, using binary assimp format

Disadvantages:

  • code needs to be ported from cpp to java
  • code needs to be maintained
  • a little slower compared to cpp when loading big meshes if not using assbin

Any news on fbx format?

Cas :slight_smile:

I just took a look at it, it seems that there are no many recently commits on that, so this means they reached more or less a stable point…

I could start porting that… do you need it, princec?

Not directly right now, but it’s quite probable at some point in the future thanks to Unity’s ubiquity, and, er, Chaz insisting on continuing to use 3dsMax instead of learning Blender. Hmph.

Cas :slight_smile:

;D

Anyway, it looks like I was wrong, FBX needs still to be fixed

md2 support landed

Also the jvm md2 loader can guess the texture file when is not specified

Do I have to do anything special to use this library? As it’s written in Kotlin; That language makes me really upset.
Any plugins I need with eclipse?

Just want to make sure before I dive into it.

Are you using any build tool such as Gradle or Maven?

I’m sorry to read that, anyway, if you don’t like it, it’s fine…

you don’t need to see or touch any kotlin from java, that’s the advantage (but you need to satisfy its dependency)

@princec, I started diving slowly into the fbx format…

Updates:

  • assxml exporter
  • MD3 importer
  • Direct X importer

MD5 is in!

binary fbx done

and also ascii fbx