Tom McReynolds (tomcat++at++proxima.asd.sgi.com)
Tue, 13 May 1997 10:43:51 -0700
Yes it's big enough. The main limitation for you is the amount of
texture memory you have available for clipmaps. Here is the
clipmem.txt file, which is part of the 201 beta (in performer.dev.src.sample).
Look in /usr/share/Performer/src/sample/C/clipfly/doc:
Clipmap Memory (System and Texture) Usage Estimation
System Memory Estimation
Given:
Size of clipmap level 0
Clipsize (in texels)
Tilesize (in texels; assuming tile size is the same for all levels)
Texel size in bytes
Whether the tiles have high disk latency
1. round up clipsize to even multiple of tile size in each dimension
2. divide each dimension by tilesize in that dimension
3. add 2 tiles to each dimension for a tile boundary of 1.
3a. if there is high latency downloading, such as reading tiles
over the network, or decompressing tiles, add 4 tiles per
dimension, giving a tile boundary of 2.
You now have the number of tiles in each dimension per clipped level*
4. multipy each tile number in each dimension by the corresponding
tilesize in that dimension.
You now have the number of texels in each dimension
5. Multiply the texel dimensions together
6. Scale by the size of each texel
7. (extra credit) add in the fixed cost of imagecache structs, etc.
You now have the system memory cost in bytes for each clipped level
8. Treat each level bigger than clipsize as clipped(**).
Add 4/3rds the clipsize scaled by the texel size for the pyramid
levels.
9. Scale the clipped level size by the number of clipped levels
**This estimate is a bit too conservative, since the lowest clipped levels
may exceed the entire level size with a border of 2 tiles. It is a function
of tilesize and clipsize.
Example: 2M top level, 1K clipsize, 512 Tile Size (everything square)
1 byte texel size (LMV example)
1. no-op: 1K, 1K (for both s and t)
2. 1K/512 = 2, 2 (for both s and t)
3. 2+4 = 6, 6 (for both s and t; high latency on tile download)
4. 6 * 512 = 3K, 3K (for both s and t)
5. 3K * 3K = 9M
6. 9M * 1 = 9M
7. We haven't figured out this constant yet, and we haven't proved it's
a constant.
8. 9M * 10 = 90M (for 2M -> 4K levels) + 2M (for 2K level) = 92M
9. 4/3 * 1K * 1K= 1.3M
10. Total Size 92M + 1.3M = 93.3M
Texture Memory Usage
Given:
Clipsize (in texels)
Whether clipmap is virtual or non-virtual
Number of levels in use (if less than 16)
1a. if virtual, multiply number of levels by square of clipsize
1b. if non-virtual, multiply number of levels bigger than clipsize
by square clipsize. Add in 4/3 times clipsize squared (to
account for the pyramid.
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
Submissions: info-performer++at++sgi.com
Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:55:13 PDT