i’m working on displaying HUGE images in RAW format…i’m talking 16k x 16k…and providing zoom/pan/rotate, cursor placing etc. facilities.
i’m using the textured quad method…getting some pretty neat results…(see below)
current machine config. is P3 800 MHz…1 GB RAM, 3D Labs Oxygen GVX1 32 MB AGP, 256 MB tex. mem.
Now here’s what i’m doing and i’d appreciate your comments and suggestions…
i’m loading the image as tiles of 2^n size…
that is tiles of 64x64…upto tiles of 2048 x 2048. the remaining pixels can either be neglected (obviously not desirable) or extra padding pixels added to make it a multiple of tile size.
Some points:
-64x64 will be supported on any OpenGL impl.
-i’m was having some problems with the edges…
i used GL_CLAMP_TO_EDGE …the edge problem is not that bad now…but its still there…when you zoom really close you see the lines.
-When more than a certain no. of tiles are on screen, the performance becomes poor. like from 50 fps to 5 fps!
Here are some performance stats with a 16k x 16k image…
Tile Size…FPS…Load Time (I/O +Disp.List)
64 x 64…<0.75…105.8 s
128 x 128…4.44… 53.8 s
256 x 256…15-17…23.8 s
512 x 512…36 …21 s
1024 x 1024…49…17.15 s
2048 x 2048…53…15.68 s
(sorry about the terrible formatting)
Changing magnification to Linear or Nearest Neighbor doesnt affect performance much…quality ofcourse is worse in the latter.
Basically i’m looking for alternative ways to display large images with zoom, pan, rotate etc.
I’m not doing ANY subsampling right now…i guess finally there will be an overview image presented in subsampled form…and a zoom window will give the actual pixels…tiled as described above…since a large no. of tiles on screen at one time makes performance really poor.
any idea why my tiles still show faint edges after GL_CLAMP_TO_EDGE?
[This message has been edited by OpenGHell (edited 03-11-2003).]