[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Summary of texture issues discussion



 
I initiated a discussion on www-vrml to find out the limitations of current browsers in relation to how they would handle textures.  The purpose was to find
optimal texture tile settings to use for terrain texture tiles.  There was some valuable
input which I have summarised here for those interested.

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:
 

Texture Limitations of Browsers
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