I'm not sure how well known this one is, but I've been aware of it for a while (at least since I wrote my software Quake interpolation code) - MDL frame group animations are not timed correctly in GLQuake. In software Quake there is a separate list of "intervals" which each frame in the group references to find how much time must pass before proceeding to the next one. In GLQuake frames in the group are just evenly spaced instead.
I'm not entirely certain why this happened but I more than half suspect that it had something to do with the issues discussed at this link (scroll down a little to the "anatomy of a mis-feature" heading).
So I'm currently working on fixing it for my experimental GLQuake engine, then migrating this fix to my other codebases. One item worth mentioning is that all of my current codebases use an in-memory MDL format that is quite radically different from GLQuake's (compare especially DirectQ's d3d_rmesh.cpp with GLQuake's original), so what code I get out of this will likely be completely unusable for tutorial purposes. That's an unfortunate consequence of progress and code simplification elsewhere.
I'll probably at least do a code-dump of the relevant parts on Inside3D and leave others to work the rest out for themselves, but short of bringing up yet another pure GLQuake build and fixing it in that, there's not really much else I can do there.
Thursday, October 7, 2010
Another GLQuake Problem
Posted by
mhquake
at
6:40 PM
Subscribe to:
Post Comments (Atom)
3 comments:
Interesting ...
skingroups are also broken; i think they only work if there are exactly 4 skins in the group.
> skingroups are also broken; i think they only work if there are exactly 4 skins in the group.
Wouldn't surprise me, although skingroups are really a lower priority than framegroups, being used considerably less. All the same, from the perspective of correctness it is important to also fix them.
So anyway I've fixed framegroups in GLQuake quite easily (just a copy and paste from software Quake really), but broke interpolation while doing so - oh well, needs more work!
Post a Comment