I've just moved MDL interpolation entirely to the GPU. This is a mixture of benefits and costs, with the primary cost being that the vertex buffer now needs to store position information for both frames being interpolated, which makes the vertex submission a little heavier. I believe however that the benefits far outweigh this. Number one is that some costly CPU-side calculations can now be performed in dedicated hardware which is optimized for this kind of thing (even on Intel software vertex shaders it should be faster owing to better code). Number two is that the vertex buffer now only needs to be updated whenever either of the frames change, rather than every frame. This is typically 10 times per second for most Quake animations, so that's quite a saving.
Longer term it would be possible to remove the need to update the vertex buffer at all, but doing so would mess with my hack for viewmodel muzzleflashes.
None of this would have been possible with the old code.
Sunday, February 13, 2011
DirectQ Update - 13th February 2011 - Fun with MDLs
Posted by
mhquake
at
5:45 PM
Subscribe to:
Post Comments (Atom)
2 comments:
So is all this going to be in 1.8.7? I'm kind of confused what the release schedule is. From reading older posts, it looked like 1.9 was supposed to be the renderer overhaul.
Once you're happy with the current overhaul, is that it for 1.8.7 or are there more things you want to include? I'm just excited to try out things like the improved overbrights :)
It's confusing, yeah. OK, original plan was that 1.9 was going to be a renderer overhaul that moved to D3D11. Then I decided that 1.8.7 was going to be an interim release that added a few things and removed the old fixed func paths in preparation for 1.9. Then I started doing that, got interested in some of what I was doing, and couldn't stop. Meantime I decided that moving to D3D11 was too much trouble for the time being, so I'd stay with D3D9 and plan something else for 1.9.
And here we are today. Clear as mud?
I'll probably get an early beta release of 1.8.7 out soon-ish, it's long overdue and I need to start getting feedback from people.
Post a Comment