About 2-3 months ago I started to commit in the CVS md5reader2 module the refactored MD5 Reader. The refactor is available in the org.md5reader2 package.
org.md5reader2.test.TestParserGame already loads Marine mesh, texture and static skeleton. I am working to load animation frames: the work is almost finished, I am only making some design decisions.
After that I will be able to add almost every features supported by MD5 format and more. Because of the refactor rendering system is based on jME classes, every feature supported by jME TriMesh are also supported by MD5 Reader refactor.
Currently mesh in jME is drawn by org.md5reader2.util.MeshDebugger class. It is a draft implementation. org.md5reader2.util.SkeletonDebugger, instead, have been implemented to debug skeleton joints.
Old post:
I have really few time to investigate the 2, now known, bugs of MD5 Reader 2. The texture flikering and model twitching bugs.
Anyway, to better understand the structure of MD5 Reader and try to find where is the error, I started some UML diagrams that rapresents the steps the loader does, with some Activity Diagrams.
These work leaded to 2 different results.
The first one is that I uploaded that diagrams in a *.uml file (I used ArgoUML to generate them), some of them are now translated in English (I started in Italian that for me is simpler). Look for the file in the new doc folder.
The second one is the fact that I decided to start some refactoring. The Parser is now moving (still not official) to a StringTokenizer based parser, that for me is simpler than use custom classes like the current Parser. Also i started experimenting with SkinNode and the jME bone system.
Some of this experiments are already uploaded in the new packages org.md5reader2.parser and org.md5reader2.test, but they are just little pieces of code… if you want to explore, help or suggest…
Some other classes have been reorganized and moved from their original location. For example the MD5Test2 and QuatTest that now are in the test package.
Unfortunatelly, I have not a lot of time. And currently I am doing alone all the work. So, I do not know when I will be able to release a new fix. But do not desperate, this project will be part of a game I am working on. So, it will be surelly updated, one day.
Moreover I renew my request for help. If anybody is interested in helping the little and busy team of MD5 Reader 2, please contact me.
I added 2 new little code fixes to MD5 Reader 2 CVS repository to make it compliant to the old methods getTotalTriangles() and getTotalVertices() now named getTriangleCount() and getVertexCount(). At least, this is what Eclipse suggested me using code completion.
After the latest fix, updated this afternoon, I updated 2 test classes that give a cleaner implementation of the code contained in the old test.MD5Test2 class, to help beginers and user with some kind of easy to understand and working examples. The 2 classes are called test.MarineTest and test.FishTest.
Great work, keep it up! I especially like the decision to adapt to the new skeletal animation system from mojo.
Thanks.
The decision to adapt MD5 Reader 2 to the jME new skeletal animation system comes directly from a "feature request" of Mojomonkey.
I like the Mojomonkey's suggestion because I feel that the internal skeletal system of jME is less confuse than the MD5 original system. To make understand MD5 Reader messines, I tell that am still investigating the whole MD5 Reader code, and everyday I find that it is really tangle. So, after I will fix this few bugs to make MD5 Reader 2 immediatly usable by other developers, my first goal will be to migrate toward a more simplified, optimized and clean implementation. I want to make it easyer for new users but also for future maintainers.
Unfortunatelly I do all this work in my spare time. In fact, this new fix is the result of my first days of vacations.
Furthermore, I am not a developer. My main skills are Computer Graphics and Drawing. This, therefore, is a real challenge for me.
[OT] Just a curiosity. I am about to travel to UK. I will visit Leicester a city really closed to Nottingham, where a friend of my girlfriend lives and study (then we also travel to Inverness). I also will visit Nottingham, of course. And the interesting fact is that yesterday I discovered that Nottingham is the city of ChaosDeathFish, the original author of MD5 Reader.
We appreciate you using vacation time to do these fixes and feature requests. :) Enjoy your travels!
Ok. I have some good news.
First of all, duodecimo, a new user of jME and jME Forum, became a developer of MD5 Reader 2. And he already helped me implementing new support for jME logging system.
(I did not know that it have been changed) :D I am going to test and, if ok, I’ll update it. It should support transparently jME 0.11 and jME 1.0 logging system.
I have translated to English the UML diagrams in the doc directory of the CVS. They are formerly activity diagrams but I made them as like as flow charts. All readable with ArgoUML.
I was working on a model in the latest months. Finished it (mesh only for now) just yesterday. http://www.youtube.com/watch?v=Ie6XOCvPAfo
I will proably use a derivate of it (animated), as a MD5 Reader 2 base example. If anyone there offers to rig and/or animate it, I will be happy to give him the blender file. Else, be patient, and I will do it soon or later.
Hey! This might be slightly off topic, but seems to be a good place to ask.
What kind of support does MD5 file format (not the jme MD5 loader) has for bumpmapping?
What options does the MD5 loader offer to tap into bumpmapping capabilities of MD5 format? (if MD5 supports bumpmapping)
lex said:
Hey! This might be slightly off topic, but seems to be a good place to ask.
What kind of support does MD5 file format (not the jme MD5 loader) has for bumpmapping?
What options does the MD5 loader offer to tap into bumpmapping capabilities of MD5 format? (if MD5 supports bumpmapping)
I do not know about MD5 Reader, becouse I should investigate or test it. Unfortunatelly I am not the original author, and until now I never tested anything else than mesh, animations and textures.
About MD5 format I know that Doom 3 supports Normal Maps. Then, I think that MD5 format should be able to support bump maps, considering that older ID engines probably supported this feature.
Unfortunatelly I don't know about MD5 Reader. But consider that I plan to support every MD5 features in the future, so, if MD5 format supports bump maps, I will add it.
Thanx for the info, Ender!
Today I am browsing the MD5 Reader source folder and I found the MD5BumpShader class. I remember that when I talked with ChaosDeathFish (more than an year ago) he told me that, when he interrupted MD5 Reader development, he was playing with support for shaders, but he did not finished it. Then, I guess we have to reimplement or complete it.
I need your expert opinions. Please read the notes/comments in the UML diagram I link below and let me know what do you think.
In particular for the MD5Scanner instance case, I wonder what would happen if someone loaded a really big number of models in the same frame/scene.
I activated the wiki in MD5 Reader 2 SourceForge project page. Now available some diagrams describing how the program actually loads mesh data in to jME.
http://md5reader.wiki.sourceforge.net/
Soon I will post the diagrams describing the part of code that loads animations.
Nice one Ender, sorry have been unable to not help as yet.
Tell me if you can help or not please. I plan to establish the core team of those that actualy helped the project. If you can't help leave the team, please.
I am sorry I ask you to do that, but I want a strong and well established team for the project even if I do it in the spare time, too.
Furthermore, as time pass and I learn more things about coding, Java, jME, OpenGL and other related things, I need less help to understand things. Moreover developers that are not MD5 Reader 2 project members can always submit patches and give help using other ways than the CVS. So even if you formerly leave the project you can always contribute.
Who wants to replace me - its a very worthy project…
Its best that I leave the project for the while, I will look to come back in when I can commit time. All my spare time at the moment is going into Terra development, when thats out the way I can review my time. Good Luck
theprism said:
All my spare time at the moment is going into Terra development
I know you are busy with Terra. And I happy you are working on that. It is because Terra is a project I am really interested in and, untill there will be some developers involved, it will be up and grow.
MD5 Reader 2 is something more easy to conplete. After we will finished to fix all the problems and optimize performance and finish implementation of unsupported features, all the work with it will be maintenance. MD5 version 10 is a format that will not change easyly I think.
Thanks
Ender said:
If anyone there offers to rig and/or animate it, I will be happy to give him the blender file. Else, be patient, and I will do it soon or later.
I'm not a particularly skilled modeller, but I could take a stab at giving this nice fellow some bones and moves. 8)
Just send the .blend to some combination of "@", "gathers" and "gmail.com"
Gathers said:
I'm not a particularly skilled modeller, but I could take a stab at giving this nice fellow some bones and moves. 8)
Thanks. I will soon send it to you.
was playing with this a bit while lokking looking at mud2005 wiki entry troubleshooting section
Problem: Texture "flickers" or looks distorted when scaling model
Your normals are off, try
bodyInstance.setNormalsMode(SceneElement.NM_GL_NORMALIZE_PROVIDED);
It appears that the more permanent solution to that issue is to add the call to ModelInstance.java in ModelInstance construct to the meshes[] processes.
add:
meshes[ i ].setNormalsMode(SceneElement.NM_GL_NORMALIZE_PROVIDED);
sorry if my explanation is poor just a hobbyist