Kent Watsen (kent++at++watsen.net)
Thu, 05 Aug 1999 10:45:52 -0700
A few years back, when SGI was way ahead of everyone else
in graphics technology, it was clear how one developed
their VR application - Performer. Performer has been and
is still a good scenegraph (straight forward, fast, stable).
However, the times have changed and MIPS/Irix is no longer
exclusively used development and/or deployment, as SGI
itself has acknowledge thru its various multi-platform
graphic API attempts (OpenGL, Cosmo3D, OpenGL++, Fahrenheit).
As a developer of VR software, I have been patiently waiting
for a "solution" - a cross-platform scenegraph (inc. low level
api - opengl assumed) that meets my operational requirements:
1) straight forward, standard features, stable, etc.
for obvious reasons...
2) low cost for development
I'd be nice if everything were free, but I don't mind
paying for my development environment.
3) No distribution restrictions or costs
In order to realistically deploy applications outside
the development environment, it is necessary to
minimize the end user's installation process.
4) Written in Assembly/C/C++ with like API
The reason for this is several fold. While the primary
issue is maximizing runtime performance, there is the
truism that all other languages are embedable, but not
visa versa. Mind you, I am not promoting C/C++, as I
believe languages have their strengths and weaknesses.
But this is the only (efficient) way that I know of for
code written in multiple language and executing in the
same process space, to act on the same scenegraph. Why
you would want to do that is left as an exercise for the
reader (hint: look at http://watsen.net/Bamboo).
5) Available on many platforms
Nobody likes to see their applications become obsolete,
like that raytracer I wrote on my NeXT. One of the best
features of Performer is that its had a long run, which
is now to continue on Linux (yeah!). But, its not on
Windows and that is a big audience. Clearly there is no
technical reason why Performer can't be ported to Windows
or many other platforms - it just doesn't make business
sense for SGI (and, in the case of Windows, it may not
even be legal). Too bad, as this would be my #1 choice.
For a while there, I thought the my patience had paid off -
Fahrenheit. Not that it was ever going to be on "many"
platforms, but I knew that it would at least be on two (irix,
windows) out of three (linux being the other) that I care
about. But now that SGI has publicly announced a reduced
interest in Fahrenheit, due to use restrictions in their
contract with Microfoft, it appears that we (people trying
to deploy solutions across platforms) are back to not having
any cross-platform scenegraph solution.
What are we to do?
This really is a question for you all. What are your groups
doing about all this? How come now one is talking? Is my
group the only one that feels abandoned?
To get the discussion rolling, I see a few viable alternatives:
1) design code to use existing platform specific graphic APIs.
this could either be done using a "common denominator"
api wrapper or be done using a factory pattern (OO term
for moving specialization into a derived class). The
first approach allows for code-reuse while the second
allows for platform-specific extensions. If anybody
has done this, please share...
2) find a vendor-neutral solution
does anyone know of a company out there selling something
meeting the above requirements (language bindings optional)?
3) find an open-source solution
does anyone know of an open-source solution out there
meeting the above requirements (language bindings optional)?
BTW, I am open to the idea of starting one if need be...
And before you say it: yes, Java3D is great - too bad Java's GC
is so unpredictable....
PS: I subscribe to all the mailing lists I sent this to
PPS: see you at SIGGRAPH!
Kent Watsen
http://watsen.net/kent
This archive was generated by hypermail 2.0b2 on Thu Aug 05 1999 - 10:40:03 PDT