Wednesday, 10 March 2010

Further converting to Ardor3D

Nice progress is going on here with converting the project to Ardor3D engine. I've ported Obj loader of JME2 to Ardor3D. With a lot of help from Joshua (lead dev of Ardor3D) finally I could repair the remaining problems with the migrated Geometry batching too. That two made the static object rendering mostly complete. Also the partially billboarded trees are working now. After that I managed to integrate the GeometryClipmapTerrain of Ardor3D to replace the current awkwardish method how terrain was created in jcrpg's jme2 version. Still it's very basic integration: needs a lot of tweak like texture generation, dynamic loading and even alpha holes. I've created an extreme view distance screenshot for you, but it's really not for normal use, ate a lot of memory and gave low FPS - there's need for Level Of Detail based on distance for the trees and such to make it usable later. Anyway, check the screenshots (one with very high distance, one with normal. :)


Dragonbait said...

Its looking very 3d-ish. Need to get the grass back onto the landscape through. Its a start. I kind of prefer the top down/high distance 2nd image. I'm not all that in tune with the differences between Ardor 3D and your previous engine. But whichever works best is fine with me.

qubodup said...

It looks... so different :)

Zsombor said...

Can you explain, what kind of improvements do you expect from this migration?

Paul said...

Well, converting because with jme2 i had accidental crashes. That depressed me. I was trying to find the reason, but a lot of hacking around that was useful (less memory needed, faster loading, preventing memory leaks), couldnt make the crashes go away.

Also Ardor3D and jme3 are great candidates for converting. I went the Ardor3D way, it's a bit closer to the jme2 architecture/class hierarchy, its a fork of jme2. If things will go right and crashes go away, that simple fact worths the change. Ardor3D has nice Dirty handling (no need for the Update calls), it's nicely hides the Renderer dependencies, handles GPU texture cleanup when a texture is not needed in the GPU memory, has a lot of great improvements like these clipmapterrain things. jme2 may become soon obsolete, so i have to move on. Performance and stability is nice so far with ardor3d.

There are some parts that are more work to convert: input sytem is niely rethought in ardor3d but its quite different architecture, animation will be another part that needs more care (no md5 loader yet, but i will try to replace that with the Collada XML format which has a nice support in ardor3d)