Which rendering engines are used in VRML browsers and how do they affect my choice of browser?
The library of functions that is used to create all the graphics forming a 3D model is called an Application Program Interface (API). An API is a specification, while a rendering engine implements that specification. Rendering engines are usually designed to service a particular API. Some older engines have been retrofitted to handle newer APIs.
There are various types of APIs depending on how much raw code needs writing and hence how much precise, detailed, and fast control the programmer has over the graphics. A low-level API is closer to machine code level and to the underlying graphics hardware of a machine, so it’s harder to implement but is usually faster in performance.
Graphic 3D models are polygon or spine-based creations, usually called wireframes. Drawing a wireframe is not computationally expensive; rendering it is. The adding of surface color and texture, then taking lighting into account takes CPU power and time.
Rendering features to look for are:
Gouraud shading: to show subtle color differences across an object’s surface,
Texture mapping: to give a realistic surface finish to an object,
Double buffering: for smooth rotation effects,
Z-buffering: for tracking an object’s depth,
Anti-aliasing: to remove the jaggies,
Alpha blending: for controlling the transparency of an object,
Lighting: calculations work out how the direction and intensity of light changes an object,
Transformation calculations: to adjust an object’s perspective as it or the viewer moves.
Advanced features include:
Phong shading: for smoother, finer shading,Which rendering engine you use is important, not only because it will affect the quality of the images you see on your screen, but also because it has to be compatible with the type of hardware acceleration you use. A rendering engine can either do its job using software or pass off some of that work, via custom drivers, to hardware specifically configured to do it (an accelerator board). This will speed it up. Your scene will appear faster and movement within it will be smoother.
Ray tracing: for super detailed, realistic surface effects,
Radiosity: for soft shadows, indirect illumination and color bleeding,
Reflectance: for mirroring and refraction in surfaces,
Real-time texture mapping: for rich surface detail rapidly,
Multiple light sources: for realism.
SGI’s OpenGL is a specification designed to allow graphics programmers to produce high-quality color images of 3D objects. It is described as “a rendering-only, vendor-neutral API.” OpenGL provides a specification, to which all licensees producing OpenGL variants, must conform. It’s also a software interface for 3D graphics hardware. Microsoft has its own version of OpenGL which it sees as being “specially suited to professional applications”. For more information see: www.sgi.com/Technology/OpenGL
Apple’s QuickDraw3D (QD3D) provides rendering and supports the use of hardware acceleration. QD3D has an open-file format: 3D Meta File(3DMF) and is available free from Apple: product.info.apple.com/qd3d/Vendors.html
Intel’s 3D-R is a graphics library that has been optimized for the Pentium processor. 3D-R supplies full-screen, full-motion 3D graphics for Windows. The 3D-R Software Development Kit is available free from Intel: www.intel.com/IAL/3dr
MS’s RealityLab (formerly Rendermorphics) API is a leading render engine used in games, multimedia and virtual reality applications. It offers such advanced features as Phong shading, real-time Z-buffering, real-time perspective-corrected texture mapping, multiple light sources and 24-bit color support. The rendering supports high resolution Super VGA graphics modes and performance levels cited as approaching 120K polygons per second on a 90MHz Pentium processor.
Microsoft plans to make Reality Lab “a general purpose, real-time API in future versions of its Windows family of operating systems products (beyond the release of Windows 95)” according to its press release at the time of acquiring RenderMorphics. Contact Microsoft at: www.microsoft.com/windows/ie/
Direct Draw and Direct3D are graphics and rendering elements of the Direct X set of APIs from Microsoft. These are the set of 3D utilities that didn’t make it into Windows 95 in time; they are awaiting the next release, as are the hardware acceleration manufacturers who will need to revamp their drivers and boards when Direct3D comes out. It seems very likely that Direct3D will become an instant contender for the rendering standard — if not the de facto winner, since Microsoft is in such a strong position with Windows, and users so keen to see better 3D in games and multimedia. Microsoft says Direct3D will be paired with Reality Lab to produce high speed, high quality rendering of 3D graphics.
Criterion’s Renderware v2.0 claims to be the only real-time 3D graphics library specifically targeted at cross-platform game development. It is designed to provide the functionality necessary to produce only quality, real-time 3D games with, they claim, the “fastest textured rendering around.” It is being licensed by Paper Inc. for use in its browser WebFX. Criterion’s Web-site is at: www.csl.com/csl/cslhome.html
Argonaut’s BlazingRender is a programming library that enables developers to create very fast 3D applications. It is popular in games development where speed of drawing and rendering is critical. The home page, where you can see games developed with BRender, is at: www.im.gte.com/FxF/fxfwhat1.html
Autodesk’s Heidi is the company’s own graphics API. It is a modified version of the HOOPS technology that it acquired when it bought Ithaca Software. It has a scaleable device interface to enable it to reap maximum benefit from hardware acceleration. Heidi supports multiple renderers, such as OpenGL, Windows’ GDI, and WinG. The Heidi system is used in 3D Studio MAX and the WHIP driver for AutoCAD release 13. Visit Autodesk at: www.autodesk.com
There are other rendering engines out there; dozens just for games, but several proprietary ones used in browsers about which there is little data available to the general public.
Which of these rendering systems to use is partly a matter of which platform you are using and partly a matter of the features you prefer. Renderware and BRender are products primarily for the games market, where speed and cross-platform portability are at a premium. OpenGL and Heidi are high-end products. OpenGL is the foundation for OpenInventor and hence for VRML. By contrast, Heidi is a proprietary high performer in a niche market. QuickDraw 3D (QD3D), 3D-R and Reality Lab are the VRML engines fighting it out in the desktop market and hence will be the ones discussed most often in terms of browsers.
The appearance of Direct3D, in the next release of Windows 95, should destabilize the power struggle. Although hardware manufacturers might love a universal rendering engine to support, it seems unlikely that Apple will dominate the market — it was as late as ever in reaching the PC market with QD3D. By the time QD3D has a chance to demonstrate the virtues the Mac World has experienced, the PC world will likely have succumbed to either the might of Intel, 3D-R and the whispers of a multimedia chip, or the power and allure of Microsoft’s Reality Lab and Direct3D.
Will a new standard suddenly appear? Well, there is RenderWare in its new alliance with the WebFX browser suddenly gaining exposure in a new marketplace. As speed issues become more and more important to Web users, the render engine you use will become as important to you as the engine in your car.