PNG texture-map support is required for minimal conformance with the Virtual Reality Modeling Language (VRML) 2.0 specification, so one might naïvely assume that by now, most ``VRML 2.0'' or ``VRML97'' (the ISO standard) browsers on the market would have perfect PNG support. Not so! Most of major browsers (that is, Cortona, Contact, Cosmo Player, WorldView, and LibVRML97/Lookat) do a fair job, but only three of them correctly render all of the basic texture/material combinations: Cosmo Player 2.1 for Irix, LibVRML97/Lookat 0.7.9 (or later--renamed to OpenVRML as of version 0.9.0), and Cortona 4.0.
To test such things, Greg created pngboxes.wrl (a.k.a. PNG-in-the-Arse World, as one of Greg's evil co-workers dubbed it), a simple world with various PNG, GIF and JPEG textures applied to boxes. (An 80k zipfile containing the world and all of its textures is available for download and local testing.) There's also some text to label the various texture types, and seven viewpoints are defined for easy navigation. According to Greg's eyeballs and Trapezium's Vorlon 1.2 tester, the world itself fully conforms to the VRML97 spec. This is approximately what it should look like from the Overview viewpoint:
closeups: | |||
---|---|---|---|
opaque materials: | [ palette ] | [ 8-bps truecolor ] | [ 16-bps truecolor ] |
translucent materials: | [ palette ] | [ 8-bps truecolor ] | [ 16-bps truecolor ] |
This screen shot was taken from Parallel Graphics' Cortona 4.0 under Windows, which is tied with SGI's Cosmo Player 2.1 for Irix (1223x1002, 253k screenshot) and with Chris Morley's LibVRML97 / Lookat for full texture conformance (in this test world, anyway) but, like Cosmo, has better font support than LibVRML97. Click near the edges of the screenshot above to see the full-scale, completely lossless version (352k).
Clicking on one of the six texture-groupings in the image will take you to a page with the corresponding closeup view, as will the links below the image. (Thanks to Jas Sandhu, David Story, Gregory Seidman and Veronica Roelofs for providing earlier sets. Greg S also used to maintain a very nice comparison table of VRML browser features; Sandy Ressler is now responsible for it.)
The tables below summarize Greg's (that is, local-Greg's) findings with regard to the current status of PNG support in various VRML browsers, whether stand-alone or plug-in versions. He'll do his best to keep this up to date as new browsers or new versions of old browsers appear, but there are limits to the amount of testing he can manage on his own. For Win32 browsers, note that the level of texture support is often strongly dependent on the quality of the underlying display drivers and/or the DirectX implementation.
OS | VRML browser (web browser) |
PNG support? |
comments |
---|---|---|---|
Win32 |
Community Place 2.0 (semi-stand-alone) |
no | doesn't compose transparent gray textures with material colors; treats black as fully transparent in opaque GIF textures on translucent materials; doesn't scope DirectionalLights properly; doesn't appear to support ambient lighting (DirectionalLight ambientIntensity field); requires external browser for downloading |
Win32 |
Contact 5.0 OpenGL (IE 5.0) |
yes, partly | same bugs as 4.4, plus some |
Win32 |
Contact 4.4 OpenGL (IE 5.0) |
yes, partly | doesn't do texture transparency for RGBA-palette PNGs or single-shade-transparent grayscale PNGs, regardless of material transparency; doesn't compose gray+alpha palette PNGs or grayscale+alpha PNGs with material colors; doesn't compose grayscale textures with material colors if material has transparency; composes all transparent textures with underlying material transparency; renders gray+alpha palette PNGs with binary transparency at close range; can render opaque parts of overlapping transparent textures as transparent and/or fail to compose transparent gray textures with underlying material color (probably related to Cosmo/Irix's problem with `Nice Transparency' object-sorting) (tested on Dell OptiPlex GX1 PIII-550, NT 4.0 SP5, ATI Rage Pro OpenGL 1.1.0) |
Win32 |
Contact 4.002 Direct3D (NN 4.04) |
yes, mostly | renders RGBA-palette PNGs completely opaque, regardless of material transparency; doesn't compose gray+alpha palette PNGs with material colors; composes binary-transparency palette textures and single-shade-transparency grayscale textures with underlying material transparency; MMX speed mode appears to have serious interlacing bug with all textures; appears to resample large textures to smaller sizes in D3D Hardware mode (no ``pixel perfect'' capability at 1024x1024 on 8 MB Rage Pro), but in High Quality software mode, does ``pixel perfect'' textures even with odd sizes; in Hardware mode, can render opaque parts of overlapping transparent textures as transparent and/or fail to compose transparent gray textures with underlying material color (probably related to Cosmo/Irix's problem with `Nice Transparency' object-sorting); in High Quality software mode, uses binary transparency (stippled or ``screen door'' alpha). (This is blaxxun's new name for their CCpro / CC3D client. It supports blaxxun's multi-user extensions in addition to standard VRML97.) |
Win32 |
Cortona 4.0 (IE 5.00.3103) |
yes | (tested on Dell OptiPlex PIII-1GHz, Win2k, software renderer) |
Win32 |
Cortona 3.1 (NC 4.75) |
yes, mostly | same bugs as 3.0 |
Win32 |
Cortona 3.0 (NC 4.75) |
yes, mostly | composes transparent GIF (palette) textures and single-shade-transparent gray and RGB PNG textures (8-bps and 16-bps) with underlying material transparency (tested on Dell OptiPlex GX1 PIII-550, NT 4.0 SP5, ``Render98'' and software OpenGL renderers) |
Win32 |
Cortona 2.2 (NC 4.75) |
yes, mostly | same bugs as 2.1 |
Win32 |
Cortona 2.1 (NN 4.08) |
yes, mostly | doesn't do single-color 16-bps RGB transparency; composes transparent GIF (palette) textures and single-shade-transparent gray and RGB PNG textures (8-bps and 16-bps) with underlying material transparency (tested on Dell OptiPlex GX1 PIII-550, NT 4.0 SP5, ``Render98'' and software OpenGL renderers) |
Win32 |
Cosmo HomeSpace Designer 2.5 (stand-alone) |
no | uses GIFs with same names in place of opaque palette PNGs; uses JPEGs with same names in place of opaque 8-bps PNGs; doesn't support textures with transparency; doesn't support Text. (This is Cosmo Software's new name for Paragraph's Internet3D Space Builder. It may have reverted to Paragraph with Cosmo's sale to Platinum.) |
Irix |
Cosmo Player 2.1 (NN 4.61S) |
yes | |
Win32 |
Cosmo Player 2.1 (NC 4.04) |
yes, mostly | with `Nice Transparency,' opaque textures fail to inherit underlying material transparency at some viewing angles (i.e., erratic `popping' behavior), and transparent gray textures sometimes do inherit underlying material transparency; without `Nice Transparency,' binary transparency |
Mac |
Cosmo Player 2.1b56 (NN 4.x) |
yes, mostly | doesn't do 16-bps textures correctly; crashes while attempting to render Shape { } object; users should allocate 40 MB to Netscape to compensate for a memory leak. (Thanks to Steve Guynup for testing this version.) |
Win32 |
Cosmo Player 1.0 (NC 4.0) |
yes, mostly | interprets RGB as BGR (8-bit palette, 24- and 48-bit truecolor); binary transparency. (This is basically Live3D 2.0 but faster and with an improved color model. No word on possible differences between versions 1.0, 1.0.1 and 1.0.2.) |
OS | VRML browser (web browser) |
PNG support? |
comments |
---|---|---|---|
Linux |
FreeWRL
1.22.7-pre1 (stand-alone) |
yes, mostly |
incorrectly composes grayscale textures with underlying materials
(too light); composes transparent textures with underlying material
transparency; crashes on large textures (seen on other worlds);
viewpoint- |
Linux |
FreeWRL
0.13 (stand-alone) |
not really | doesn't support textures on IndexedFaceSets, ElevationGrids or Extrusions; replicates JPEG textures (apparently) and uses in place of PNG textures; dies on GIF textures; doesn't support material transparency; doesn't honor center- and right-justification of Text; can't handle ``convex FALSE'' regardless of whether any non-convex polygons are included; doesn't scope DirectionalLights properly |
Win32 |
GLView 3.02b (semi-stand-alone) |
no | doesn't mix gray textures with material colors; doesn't render Text correctly; uses external web browser to retrieve textures. (This browser no longer exists; see Blaxxun's CC3D above.) |
Win32 |
Internet3D Space Builder 2.1 (stand-alone) |
no | uses GIFs with same names in place of opaque palette PNGs. (Later versions are called Cosmo HomeSpace Designer; see above.) |
Linux |
LibVRML97 /
xmLookat 0.7.9 (stand-alone) |
yes | spurious pixel in corner of one GIF color texture; doesn't center-justify or right-justify Text correctly; doesn't do font families (e.g, "SERIF"). (Later versions are called OpenVRML; see below.) |
Win32 |
Liquid Reality
1.0b17 (IE 3.02) |
no | tries, but crashes browser on all PNGs except RGB and RGBA; doesn't do RGB and RGBA PNG textures correctly (appears to use pointer to JPEG buffer sometimes?); doesn't support material transparency; doesn't compose grayscale textures with material colors; doesn't scale Text; doesn't appear to support ambient lighting (DirectionalLight ambientIntensity field). (This was the final release.) |
Solaris |
Liquid Reality
1.0b17 (JDK 1.0.2 appletviewer) |
not really | crashes/core-dumps on all PNGs except RGB and RGBA; doesn't do 16-bps textures correctly; doesn't compose grayscale textures with material colors; doesn't scale Text; doesn't support viewpoints; doesn't appear to support ambient lighting (DirectionalLight ambientIntensity field); weird transparency bug with green/red materials. (This was the final release.) |
Win32 | Live3D 2.0b5 | (Live3D and Cosmo Player merged; see Cosmo Player 1.0 above.) | |
Win32 |
Live3D 1.0 (NN 3.01) |
no | |
Win32 |
MSVRML b2 (IE 4.0b2) |
yes, mostly | crashes on transparent palette PNGs; binary transparency; doesn't compose gray GIFs with material colors; appears to quantize palette textures unnecessarily on truecolor displays; uses 8-bit mode by default (select Graphics -> Full color to use truecolor on a truecolor display). (This is a modified version of WorldView 2.0.) |
Linux |
OpenVRML /
sdl-viewer 0.18.5 (stand-alone) |
yes | crashes on pngboxes test world (memory corruption?); Background node doesn't transform with Viewpoint, either built-in or user-controlled. (This is the new name for LibVRML97, now developed by Braden McDaniel.) |
Win32 |
OZ Virtual 2.0b2 (stand-alone) |
no | may try, but crashes on the VRML itself, apparently |
Win32 |
OZ Virtual 1.0b3 (stand-alone) |
no | |
Win32 |
RealVR Traveler 1.1.2 (stand-alone) |
no | ignores viewpoints; no transparency; minimal control (no translation) and poor lighting, so difficult to see anything |
Win32 |
Torch 1.0b1 (NN 3.01) |
yes, mostly | doesn't compose grayscale textures with material colors; treats black as transparent in (opaque) grayscale GIFs; dithered, binary alpha-transparency (i.e., better than plain binary transparency); 8-bit underlying color model regardless of display depth; doesn't support Text. (Torch died with Newfire, alas.) |
OS | VRML browser (web browser) |
PNG support? |
comments |
---|---|---|---|
Java |
VermelGen beta 2 (stand-alone) |
no | |
Win32 |
Viscape Universal 5.60.0.4104 (NN 4.04) |
yes, partly | doesn't compose grayscale textures with underlying material colors; doesn't compose opaque textures with underlying material transparency (Direct3D mode) or composes all textures with underlying transparency (OpenGL mode); doesn't do single-shade transparency in grayscale and RGB PNGs; renders palette-alpha PNGs opaque (mostly); doesn't support GIF textures (spec-compliant except that it doesn't render underlying material correctly, either--black or garbled) |
Linux |
VRMLView 2.0b1 (1998.08.03) (stand-alone) |
yes, mostly | doesn't compose gray-palette textures with material colors; composes transparent gray PNGs with underlying material transparency; doesn't do 8-bps or 16-bps grayscale PNG transparency; doesn't do GIF transparency; renders opaque RGB textures, opaque palette textures and gray/transparent GIFs on translucent materials as completely transparent; textures turned off by default; extrudes Text into third dimension (many more polygons); ignores Background and Anchor nodes; broken viewpoint support (only Z coordinate honored?); polygon rendering-order bugs; requires Mesa 3.0 beta libraries |
Win32 |
V-Realm Builder
2.1.18 (stand-alone) |
no | |
Linux |
VRwave 0.9 (stand-alone) |
no | |
Linux |
VRwave 0.7 (stand-alone) |
no | doesn't support textures |
Win32 |
WorldView
2.1 (IE 3.02) |
yes, mostly | binary transparency; doesn't compose gray GIFs with material colors; composes transparent gray PNGs with underlying material transparency, and does not compose opaque textures with underlying material transparency (incorrect behavior); uses 8-bit mode by default (select Graphics -> Full color to use truecolor on a truecolor display); with hardware acceleration (Voodoo Rush, DirectX 5), no material transparency; with some hardware (ATI 3D Rage Pro AGP, DirectX 5, ``Feb 98'' video drivers), doesn't do transparency and doesn't display color JPEG box or any non-palette PNG boxes at all |
Win32 |
WorldView 2.0 (NN 3.01) |
yes, mostly | binary transparency; doesn't handle alpha-palette PNGs correctly; doesn't do GIF transparency unless `transparent color' is first palette entry; doesn't compose gray GIFs with material colors; appears to quantize palette textures unnecessarily on truecolor displays; uses 8-bit mode by default (select Graphics -> Full color to use truecolor on a truecolor display); with hardware acceleration (Rendition Vérité), doesn't display RGBA PNG boxes at all |
The following browsers support only VRML 1.0:
OS | VRML browser (web browser) |
PNG support? |
comments |
---|---|---|---|
Win32 |
VR Scout 1.4 (NC 4.0b4) |
no | VRML 1.0 only |
Linux |
VRweb 1.3 (stand-alone) |
no | VRML 1.0 only |
Win32 | WebFX | (WebFX was purchased by Netscape and renamed Live3D, after which it merged with Cosmo Player; see above.) | |
Win32 |
Wirl 1.2 (stand-alone?) |
no | VRML 1.0 only |
Here are some related PNG pages at this site:
Copyright © 1997-2010 Greg Roelofs.