>To rephrase your question then, I believe you are asking what is the advantage
>of using OpenGL over rendermorphics, if any? The answer is that OpenGL
>has much wider acceptance than rendermorphics does. That is, it is
>available on more platforms and supported by more hardware companies
>than any other realtime 3D rendering language.
I don't think the term "much wider acceptance" is completely accurate. As
of this moment RL is available for MS-DOS/Windows/WinNT/Win95, Macintosh,
SunOS/Solaris, IRIX, HP/UX, and a few other platforms at least.
Every one of the graphics accelerators coming to market for Pentium-class
machines accelerates RL as well as 3DDI and OpenGL. Now that Microsoft has
adopted it as a standard it's even more likely that graphics solutions will
implement RL as part of their software strategy.
>So, if you were to write
>your browser based on OpenGL, you would find porting it to other platforms
>a lot easier.
I've ported a lot of RL code back and forth between SunOS and Windows using
RL and have found it very easy (just three #ifdefs).
>Keep in mind that many companies
>are promising cheap fast 3D hardware that will use OpenGL real soon now :-)
>Your accelerator which may seem speedy now, could quickly become obsolete.
My experience - using an Oki TrianGL accelerator card (which is an OpenGL
accelerator for WinNT 3.51) is that Reality Lab without an accelerator is
still about 2x faster than OpenGL with an accelerator. Sounds crazy, I
know, but it's absolutely clear.
When RL V2.0 comes out (in August) it will be work with graphics
accelerators (like this card) and will be 5 - 10x faster than it is now,
which will be very speedy indeed.
>Will your browser become obsolete too or require a complete rewrite? If
>you use OpenGL, you'd probably be able to use new hardware without so much
>as a recompile.
The same is true for RL.
>If you decide to use rendermorphics, you can at least be careful to build
>your browser in a very modular style so that you can easily swap out the
>rendering code and replace it with OpenGL rendering code at a later date.
That's always a good policy.
My strategy in implementing VRML browsers has been very straightforward;
read in the VRML 1.0 file, and traverse the parse tree (QvLib) to create a
set of RL objects.
These RL objects maintain themselves - no need to walk the display list
every frame, that is - and render very quickly. In essence, the browser
converts VRML to a highly optimized representation (RL) and uses that to
handle the graphics. This has proven to be a highly successful design
methodology.
Mark (an early Reality Lab licensee)