Awesome! I wrote an MD3 loader/renderer/animator years ago[0] and had a lot of fun with it—always wanted to try loading the levels as well, though I've yet to try it. Any comment on how difficult that was in comparison to dealing with characters? I imagine you are pulling the data from WAD files (err.. does quake 3 still use those?), and static geometry is in a 3D BSP tree?
The actual level loading itself is stupid easy -- I had the geometry loading and rendering in something like two hours. The tough part is converting their "shader" model over to something that modern GPUs can understand. That took about a day and a half and still isn't entirely complete -- I'm missing environment mapping and vertex deformation.
MD3 has been pretty straightforward on the whole, but I didn't design my mesh abstraction super well out the gate, so I've mainly been redesigning that and trying to make it futureproof. I think I have it to about the minimum repeated code possible at this point, but I'm sure I'll reach some other snag down the road and have to refactor again!
Interesting—yes, I was wondering about their shader model. I glanced through your source and saw what looked to me like some of the conversion. In any case, the shaders you have running so far (I assume they generate the animations on various objects in the scene) look very nice :) Good luck with the project!
This brings back memories. I wrote a MD2 loader for my final project in my 3d graphics elective in college years ago. It was a ton of fun. Quake 3 came out my freshman year, the format wasn't very well documented yet but MD2 had tons of documentation.
Can't comment to how much easier / harder level loading would be but I'd venture to say probably much easier. Characters have more animation and such along with them.
Thanks! That's funny, Doom 3 was just coming out when I was in college and I had the same issue when considering doing something with MD5s—and they also just appeared super intimidating to me at the time :)
Comments
Awesome! I wrote an MD3 loader/renderer/animator years ago[0] and had a lot of fun with it—always wanted to try loading the levels as well, though I've yet to try it. Any comment on how difficult that was in comparison to dealing with characters? I imagine you are pulling the data from WAD files (err.. does quake 3 still use those?), and static geometry is in a 3D BSP tree?
[0] http://symbolflux.com/statichtml/oldprojects/md3library.html (No source or anything available atm—just a screenshot and description, though I could up it up if anyone were interested.)
The actual level loading itself is stupid easy -- I had the geometry loading and rendering in something like two hours. The tough part is converting their "shader" model over to something that modern GPUs can understand. That took about a day and a half and still isn't entirely complete -- I'm missing environment mapping and vertex deformation.
MD3 has been pretty straightforward on the whole, but I didn't design my mesh abstraction super well out the gate, so I've mainly been redesigning that and trying to make it futureproof. I think I have it to about the minimum repeated code possible at this point, but I'm sure I'll reach some other snag down the road and have to refactor again!
Interesting—yes, I was wondering about their shader model. I glanced through your source and saw what looked to me like some of the conversion. In any case, the shaders you have running so far (I assume they generate the animations on various objects in the scene) look very nice :) Good luck with the project!
Awesome. Looks great.
This brings back memories. I wrote a MD2 loader for my final project in my 3d graphics elective in college years ago. It was a ton of fun. Quake 3 came out my freshman year, the format wasn't very well documented yet but MD2 had tons of documentation.
Can't comment to how much easier / harder level loading would be but I'd venture to say probably much easier. Characters have more animation and such along with them.
Thanks! That's funny, Doom 3 was just coming out when I was in college and I had the same issue when considering doing something with MD5s—and they also just appeared super intimidating to me at the time :)