Stephen Lau (lau++at++ai.sri.com)
Tue, 28 Jun 94 00:20:01 -0700
I routinely page gigabytes of textures in and out of texture map memory
on a 4 proc Onyx with RM4 boards, i.e. 4 MB of texture map memory. In
the application I'm developing, textures are being read across a high
speed network and paged into texture map memory as needed and paged out
of texture map memory when no longer visible to the user.
What you need to do is handle the paging yourself, if you let the GL
try to page it, you'll have real poor performance. If you know the extent
of the textures at runtime you can use subtexload() to specify what part
of a very large texture you are about to load.
In my case, the textures are being delivered across an unreliable high
speed network, so what I do is treat texture map memory as about 110
128x128 16 bit textures. The number doesn't add up to exactly 4MB, since
I keep some static textures around for clouds and buildings.
I use TX_FASTDEFINE when I do a texdef2d() and keep track of which
texture is associated to which "slot" in the 100 texture maps
available. When I want to swap out a texture in a particular slot,
since it is no longer visible or for whatever reason, I use
TX_TEXTURE_IDLE with texture id "n", where "n" corresponds to the
number of the texture that I want to toss out.
This works real well and I've paged in and out of texture map memory
gigabytes of textures. The end user perceives it as a very large area
they can "roam" around in both in 2D and 3D.
Hope this helps.
Steve
-------------------------------------------------------------------------------
Stephen Lau lau++at++ai.sri.com| "If there's nothing wrong with me,
SRI International | there must be something wrong
333 Ravenswood Ave., Menlo Park, CA. 94025| with the universe!"
(415) 859-2925 (415) 326-6200| - Beverly Crusher, Star Trek:TNG
-------------------------------------------------------------------------------
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:50:22 PDT