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

Re: 3D



Brent Fulgham wrote:
> 
> > > I think an OpenGL binding would be extremely useful.
> > > DirectX is of less interest, as OpenGL is generally
> > > the API of choice for most graphical applications
> >
> > This hasn't been literally true for a good many years. The
> > vast number of entertainment products developed with DirectX
> > totally swamps the number of OpenGL apps. Interesting, DirectX
> > support is moving much faster into the high end tools space
> > than OpenGL is moving into consumer apps. In fact, the
> > last set of figures I saw showed OpenGL heading backwards in
> > terms of its percentage of consumer apps.

So long as your entire scope of consideration consists of the Win32
platform, then perhaps this is true. OpenGL is very strongly dug in
outside of the Windows community.

> > > .. multiplatform compatibility.
> >
> > The last time I checked most consumer 3D cards provided a broken
> > implementation of OpenGL at best. Measured by the number of
> > boxes you can produce a tolerable level of performance on, DirectX
> > outscores OpenGL *hugely.* Cross platform doesn't mean much when
> > it equals many, many times fewer platforms. Not to me, anyway.

Most commercial UNIX flavors (IRIX, Solaris, AIX) have had their own
solid OpenGL implementations for years, and Windows has recently caught
up due to OpenGL's popularity among game developers. Every serious 3D
gaming card manufacturer provides a solid GL library these days; if they
don't, gamers will reject their hardware (enough games use OpenGL that
compatibility is essential).

OpenGL does tend to require a hardware implementation to achieve
game-level performance, while Direct3D handles software rendering
reasonably well. However, OpenGL's software performance is typically
entirely sufficient for most applications. I've found that a certain
OpenGL-based 3D modelling package (Blender) works well under both
software and hardware implementations of OpenGL.

> I'm not sure that your statements about OpenGL are accurate.
> Or do the frame rates produced in games like Doom or Quake to be
> intolerable?  Both of these were written to the OpenGL API,
> not DirectX.

Doom uses a custom 2D BSP software renderer. Quake was originally
software-only, but it was hacked for OpenGL support after its release,
and the response was so positive that Quake2 was primarily a GL game.
Quake3 is purely OpenGL. Unreal Tournament was written with 3Dfx's Glide
API, but it was 
later ported to Direct3D and OpenGL.

In summary, OpenGL is available on every UNIX platform (www.mesa3d.org,
as well as vendor-specific implementations), as well as Win32, BeOS, and
MacOS. Direct3D is only available on Win32. I seriously doubt Microsoft
will allow this to change.
OpenGL and Direct3D both look good under software rendering. Direct3D
has a slight performance edge in software.
OpenGL has an extremely straightforward and pleasant API. I've never
coded for Direct3D, but I've heard otherwise from more than one D3D
developer.

However, this really shouldn't matter. A properly designed Scheme
rendering interface should be independent of the rendering backend.

-John

-- 
John R. Hall                             | "The error of our eye directs
Student, Georgia Tech (2nd year CS)      |  our mind: What error leads
Contractor, Loki Entertainment Software  |  must err."  -Shakespeare