Friday, August 7, 2009

Rage

I was just reading a new pdf about Rage, which i'm sure you know is the new game from id software, and i noticed something interesting in one of the screenshots:


Notice how the texturing is nicely aligned?

Seems to me that it would be possible to build a rough bounding volume tree with which you could determine which pages are potentially visible.
(Something I'm thinking about with my Deferred Virtual Texture Shading stuff)

Interestingly they're still reading back from the gpu which pages are visible at which LOD.
I wonder if that could be done more efficiently on the cpu avoiding the readback completely.

4 comments:

  1. There was a thread at gdalgorithms-list mentioning something like this. You can search for it if you want at the archive (sorry but for some reason I can't paste the link). Search for "Megatexture/Sparse Virtual Texture - finding pages needed".

    As for the GPU readback, it can be made a bit faster if you do it asynchronously (see PBOs under OGL) with one frame delay. I know it's not the best approach but it can reduce the cost of the readback a lot.

    One interesting thing about the picture is that the character doesn't have those lines on him (tile borders). That might mean two things. Either they just showing the tiles of one of the virtual textures (e.g. the static world) or the dynamic objects don't have virtual textures applied.

    ReplyDelete
  2. Hi, thanks for the tip on the gdalgorithms discussion (I must've missed that one somehow).

    The character actually does have lines on them if you look carefully (the shoulder, upper right leg and right shoe)

    ReplyDelete
  3. HellRaiZer: There are lines on the character, look on the right shoulder and upper left leg. (Probably most of them are on the back of the character).

    From what I've got from a fast read of the presentation, they use a single virtual texture space for all the meshes of the game/level (128k x 128k).

    Everything uses virtual textures and for this reason using a bounding volume tree that takes in account dynamic meshes could be more costly than reading from a low resolution buffer.

    ReplyDelete
  4. You are both right. My fault. I should have been more careful :) Just saw the presentation and it's clear from slides 7 and 8.

    ReplyDelete

To you spammers out there:
Spam will be deleted before it shows up, so don't bother.