For mutliresolution (levels of detail) terrains you can use large textures
with most if not all current browsers without losing much resolution but
1) It is advisable to make them of sizes that are powers of
2 and preferably square.
2) Avoid overloading the texture memory limitations of cards/systems
by keeping texture sizes down to, say, no more than 512x512.
3) Tiling can result in visible seams where the tiles meet.
This artifact is a result of the VRML default settings (repeatS TRUE repeatT
TRUE) whcih cause the browser to perform interpolation of textures at the
edges, resulting in visible seams. This artifact can be eliminated
by setting the texture tiling options of ImageTexture node to FALSE (repeatS
FALSE repeatT FALSE). Apparently, if you have an appropriate graphics
card the current DirectX and OpenGL drivers for newer graphics boards automatically
blend the edges of the pixels.
This is a summary of what each browser does:
| Browser | Feature | Comment |
| Cortona | texture resizing | converts texture size into the (closest?) power of 2. It may reduce the size to the max the graphics hardware can handle depending on the limitations of that hardware. |
| CosmoPlayer 2.1 | texture resizing | increases size of texture to next heighest power of two, (a 257 x 257 texture becomes 512 x 512). |
| Contact 4.2 | texture resizing | no fixed limitations. It quesries hardware to determine limitations. |
| WorldView | texture resizing | |
| OpenView | texture resizing | resizes to nearest power of 2 |
| Cortona | Memory handling | Can stop loading textures after a certain (virtual memory or card?) limit. I.E. doesn't unload textures. |
| CosmoPlayer | Memory handling | unknown |
| Contact 4.2 | Memory handling | unknown |
| WorldView | Memory handling | Manages total texture memory larger than card capacity well. |
| OpenView | Memory handling | unknown |
Other notes:
Cards also have a maximum texture resolution - historically this was
256x256 for boards like the Voodoos, and 1024x1024 for Intergraph 3410GT
and Wildcat 4000 boards which I'm running. Newer chipsets like
the nVidia
TNT/TNT2/Geforce will hold up to a 2048x2048 texture.
Therefore: reduce your texture tile sizes to something most cards will
handle (probably no more than 512x512).
An application can also manage texture memory in Contact "by hand"
by
unloading manually Image Texture nodes.
Contact 4.3 will exposes some more Hardware characteristics like the
amount
of (D3D) free texture memory to the VRML author.
Cheers,
Chris