OpenGL reality check

Bob Pendleton wrote:

I want to thank everyone for the thoughtful answers to my questions. I
am aware of Crystalspace, Irrlicht, and Ogre, and I think they are all
fine systems. What I wish we had was a 3D api that is as simple to use
as the the SDL 2D api that was layered on top of OpenGL, DirectX, and
what ever other native graphics api exist so that it was as easy to
cross platform 3D on SDL as it is t do cross platform 2D. I haven’t seen
anything like that. I’m not even sure such a thing is possible.

  Bob Pendleton

To be completely honest, I’ve been working for almost a year on this
sort of thing, but its probably not going to be useful to you for two
reasons:

  • Development on the original C++ code has been completely halted. The
    team has a new technology direction, .NET (choice made due to it making
    our lives easier, and due to some interesting performance tests we did
    early on that showed that not using our own, error-prone custom garbage
    collection, and the JIT compilation of code, would actually increase
    performance. Also, a nice type-safe environment means a lot of the bugs
    that were creeping in from the newer programmers are avoided completely).
  • The original C++ code is still under a proprietary license at the
    moment. There is a glimmer of hope that it will be eventually released
    until the LGPL, but at the current time, it is infeasible to do so.

For non-commercial cross-platform development, such as open-source or
academic, it is probably not worth the effort involved in creating such
a thing – OpenGL preforms quite well on all current systems, if you
have proper drivers for it. Even the default Windows driver and Mesa
drivers will work well enough for most purposes. Plus, there is the
added down-side that it adds more required pieces of testing (You
already need to test Windows/Linux with OpenGL, but what about
Windows/Wine [you should never expect somebody to not use Wine just
because you have a Linux version!] with DirectX?)

(On a side note, both the C++ and C# versions use SDL [the C# uses the
SdlDotNet {slightly modified, will be sending patches to the maintainer
once we finish mucking with it} and Tao wrappers] to create its OpenGL
context, or as its display surface for the software renderer)

I’m sure you didn’t realize it, but John Hall passed away some time ago.
The details are included on icculus.org if anyone wants to take a look.

SteveOn December 16, 2005 09:40 am, John Silicon wrote:

Torsten Giebl wrote:

Hello !

Hardware vendors, not only nVidia and ATI, really need to start
developing drivers not only for windows in the PC market. The
problem for linux and other PC-OSs is driver support lagging
behind at least 6 months. Just don’t
tell me how to convince them…

The ATI Linux drivers suck,
the NVIDIA Linux drivers are pretty good.
This is getting OT so we should stop this
discussion.

In an attempt to get him out of hiding (he usually shows up on here
when I mention his book: Programming Linux Games,

OGRE can rely on SDL to get an OpenGL context on both linux and
Windows. For the other I have not get into it enoughOn 12/16/05, John Silicon wrote:

Chris Nystrom wrote:

On 12/14/05, John Silicon wrote:

Others have already suggested Irrlicht and OGRE (which I personally
prefer, in that order). But out of my completest attitude, I’ll throw in
CrystalSpace, which also looks very nice (they probably have the best
looking results, but I personally have never successfully used it)

Are these products layered on top of SDL or OpenGL or do they have
some sort of direct access to the video card? If not won’t they just
compound the problem?

To my knowledge, none of these engines use SDL for either thier OpenGL
or Software drivers (though, I could be wrong – I’m no expert on their
underlying drivers). If you read the question that Bob asked and we
were answering, there was no requirement for SDL as part of the solution
to the problem. The engines listed all provide support for both OpenGL
and DirectX, and are cross-platform, and as such can be used with OpenGL
on non-Windows platforms and DirectX on Windows platforms.


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

Stephen Anthony wrote:> On December 16, 2005 09:40 am, John Silicon wrote:

Torsten Giebl wrote:

Hello !

Hardware vendors, not only nVidia and ATI, really need to start
developing drivers not only for windows in the PC market. The
problem for linux and other PC-OSs is driver support lagging
behind at least 6 months. Just don’t
tell me how to convince them…

The ATI Linux drivers suck,
the NVIDIA Linux drivers are pretty good.
This is getting OT so we should stop this
discussion.

In an attempt to get him out of hiding (he usually shows up on here
when I mention his book: Programming Linux Games,

I’m sure you didn’t realize it, but John Hall passed away some time ago.
The details are included on icculus.org if anyone wants to take a look.

Steve


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

No, I had not yet been informed by anyone before I posted. The sad
thing is I talked to him not more than a week or two before he passed
(I’ve probably known him for 7 years, but we’ve not kept in touch much
since he graduated from GA Tech), and he didn’t say a word about the
cancer being that bad. Not seeing him online really felt like the same
old thing that I had gotten used to, I never even thought the worst for it.

My apologies to anyone who is now grieving due to my accidental
reference to a deceased person in a manner that implied he was still
with us. He will be missed.

  • Silicon

That is what it always boils down to, does it not? You can avoid the
MS problem, by using an MS product (DirectX), but you lose
portability. Or you can go with a portable solution (OpenGL), but then
you have to be concerned with drivers. Any platform will usually sit
on top of one or both of these layers and so, simply masks the
problem, at best, right?

ChrisOn 12/16/05, John Silicon wrote:

The engines listed all provide support for both OpenGL
and DirectX, and are cross-platform, and as such can be used with OpenGL
on non-Windows platforms and DirectX on Windows platforms.


E-Mail: Chris Nystrom
Business: http://www.shaklee.net/austin
Blog: http://conversazione.blogspot.com/
AIM: nystromchris

You could say that about games that support both OpenGL and Direct3D
too, actually.

The difference is all about on what level the code begins to take
different paths for OpenGL and Direct3D.

High level (alternative engine versions,
		high level engine backends):
	+ Allows a lot of API specific optimizations
	+ Allows the game/engine to make use of API
	  specific features.
	- You have to implement everything below the
	  API "parting level" once for each API.

Low level (API wrappers, engine rasterization backends):
	+ High level optimizations benefit all APIs
	+ Minimal code duplication
	- API specific features and optimizations are
	  hard to use without basically exposing the
	  underlying APIs to the higher level code.

What it all boilds down to is that you get what you pay for. If you
want the maximum performance and all the bells and whistles from more
than one API, you’re in for a lot of work, or you’re going to have to
pay someone a great deal of money, or maybe even both.

The right tools and a good design will help a lot, but the problem
never completely goes away as long as you need to deal with multiple
APIs, multiple versions of an API, or basically, multiple anything.

//David Olofson - Programmer, Composer, Open Source Advocate

.- Audiality -----------------------------------------------.
| Free/Open Source audio engine for games and multimedia. |
| MIDI, modular synthesis, real time effects, scripting,… |
`-----------------------------------> http://audiality.org -’
http://olofson.nethttp://www.reologica.se —On Friday 16 December 2005 20.52, Chris Nystrom wrote:

On 12/16/05, John Silicon wrote:

The engines listed all provide support for both OpenGL
and DirectX, and are cross-platform, and as such can be used with
OpenGL on non-Windows platforms and DirectX on Windows platforms.

That is what it always boils down to, does it not? You can avoid the
MS problem, by using an MS product (DirectX), but you lose
portability. Or you can go with a portable solution (OpenGL), but
then you have to be concerned with drivers. Any platform will
usually sit on top of one or both of these layers and so, simply
masks the problem, at best, right?

I want to thank everyone for the thoughtful answers to my questions. I
am aware of Crystalspace, Irrlicht, and Ogre, and I think they are all
fine systems. What I wish we had was a 3D api that is as simple to use
as the the SDL 2D api that was layered on top of OpenGL, DirectX, and
what ever other native graphics api exist so that it was as easy to
cross platform 3D on SDL as it is t do cross platform 2D. I haven’t seen
anything like that. I’m not even sure such a thing is possible.

Sure is possible, it’s called OpenGL :wink:

Seriously, I’m beginning to think the real answer to current Windows
3D API issues would be to write an open source OpenGL wrapper for
DirectX. Think about it: it would be somewhat like Wine’s DirectX
wrapper, only the opposite. It’s not as crazy as it may sound! In
fact, wrapping OpenGL should be much easier than wrapping DirectX,
since it’s meant to be a portable API in the first place.

Anyone up to the task? :wink:

Scitechsoft.com sells it for $19.95 it is based on Mesa and they say
they are working to return the changes to Mesa to the community. So, the
job may be almost done.

Oddly, I was focused so hard on a different way of doing things that
this way never occurred to me even though I have known about that
product for several years.

Maybe we should just create an open version of high performance OpenGL
that runs on top of DirectX and include it with the Windows version of
SDL. That would solve a lot of problems.

	Bob PendletonOn Thu, 2005-12-15 at 18:45 -0500, Simon Roby wrote:

On 12/15/05, Bob Pendleton <@Bob_Pendleton> wrote:

  • SR

SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

±-------------------------------------+

im sorry, but how is that different from the windows vista wrapper?

The main thing is that it would be written without the features the MS
is placing on there wrapper by people who want it to work.

This is now off topic for SDL. Take it over to gameprogrammer.com.

	Bob PendletonOn Fri, 2005-12-16 at 00:00 +0000, Brian Barrett wrote:

On 12/15/05, Simon Roby <simon.roby at gmail.com> wrote:

On 12/15/05, Bob Pendleton <@Bob_Pendleton> wrote:

I want to thank everyone for the thoughtful answers to my questions. I
am aware of Crystalspace, Irrlicht, and Ogre, and I think they are all
fine systems. What I wish we had was a 3D api that is as simple to use
as the the SDL 2D api that was layered on top of OpenGL, DirectX, and
what ever other native graphics api exist so that it was as easy to
cross platform 3D on SDL as it is t do cross platform 2D. I haven’t seen
anything like that. I’m not even sure such a thing is possible.

Sure is possible, it’s called OpenGL :wink:

Seriously, I’m beginning to think the real answer to current Windows
3D API issues would be to write an open source OpenGL wrapper for
DirectX. Think about it: it would be somewhat like Wine’s DirectX
wrapper, only the opposite. It’s not as crazy as it may sound! In
fact, wrapping OpenGL should be much easier than wrapping DirectX,
since it’s meant to be a portable API in the first place.

Anyone up to the task? :wink:

  • SR

SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


±-------------------------------------+

The engines listed all provide support for both OpenGL
and DirectX, and are cross-platform, and as such can be used with OpenGL
on non-Windows platforms and DirectX on Windows platforms.

That is what it always boils down to, does it not? You can avoid the
MS problem, by using an MS product (DirectX), but you lose
portability. Or you can go with a portable solution (OpenGL), but then
you have to be concerned with drivers. Any platform will usually sit
on top of one or both of these layers and so, simply masks the
problem, at best, right?

Yeah, it only masks the problem. But, at this point in history a good
mask is the best we can hope for.

	Bob PendletonOn Fri, 2005-12-16 at 13:52 -0600, Chris Nystrom wrote:

On 12/16/05, John Silicon wrote:

Chris


E-Mail: Chris Nystrom
Business: http://www.shaklee.net/austin
Blog: http://conversazione.blogspot.com/
AIM: nystromchris


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


±-------------------------------------+

Bob Pendleton wrote:>On Thu, 2005-12-15 at 18:45 -0500, Simon Roby wrote:

On 12/15/05, Bob Pendleton wrote:

I want to thank everyone for the thoughtful answers to my questions. I
am aware of Crystalspace, Irrlicht, and Ogre, and I think they are all
fine systems. What I wish we had was a 3D api that is as simple to use
as the the SDL 2D api that was layered on top of OpenGL, DirectX, and
what ever other native graphics api exist so that it was as easy to
cross platform 3D on SDL as it is t do cross platform 2D. I haven’t seen
anything like that. I’m not even sure such a thing is possible.

Sure is possible, it’s called OpenGL :wink:

Seriously, I’m beginning to think the real answer to current Windows
3D API issues would be to write an open source OpenGL wrapper for
DirectX. Think about it: it would be somewhat like Wine’s DirectX
wrapper, only the opposite. It’s not as crazy as it may sound! In
fact, wrapping OpenGL should be much easier than wrapping DirectX,
since it’s meant to be a portable API in the first place.

Anyone up to the task? :wink:

Scitechsoft.com sells it for $19.95 it is based on Mesa and they say
they are working to return the changes to Mesa to the community. So, the
job may be almost done.

Actually, previous releases of mesa had a working directx driver,
thereby giving a simple OpenGL to DirectX wrapper. IIRC it’s now broken
due to some internal API changes. This driver does not accelerate much
advanced OpenGL functionality, though.

Stephane

I just wanted to note that OpenGL is definately not vanishing due to Vista.

With the recent iPod boom and a likely somewhat “harsh” transition to
Vista for end users Mac will probably attract more and more users.

Solet’s take a look at what’s Mac OS X Tiger’s entire graphics subsystem
(Quartz) is based on…

OpenGL

:slight_smile:

Bob Pendleton schrieb:>I teach a game programming class at the local community college. To save

time, effort, and confusion, I use SDL and OpenGL to teach with. I let
the students use anything they want to develop with, any OS and any
libraries, but I strongly encourage them to use SDL and OpenGL. I teach
this class during fall semester and have taught it for several years.

This approach has worked very well in the past, but this year, not so
good. In the past everyone was able to get a high performance version of
OpenGL working on there computers. This year, only a couple were able to
get OpenGL working on their computers. In several cases there just
weren’t any decent OpenGL libraries for their video cards and the
default MS drivers are terrible, when they work at all.

So I have a couple of questions for the groups.

o Is OpenGL still a viable graphics API for use on Windows?
o Is there an open source, C/C++, 3D graphics API that works on top of
OpenGL on the rest of the world and DirectX on Windows? (I know that
Java 3D does that but it isn’t much use to SDL programmers.)
o Can SDL stay a viable library if OpenGL support on Windows is really
as bad as it looks?

Please, no flames, not even anti-Microsoft flames. We have all heard
them all before and no matter how mad you are about the state of the
world the state of the world is what it is and flaming doesn’t help.
(You have no idea how hard it is for an old flamer like me to say
something like that :slight_smile:

I have cross posted this message to the SDL mailing list and to my own
mailing list to try to get different points of view. If you are on only
one mailing list and want to see both sides of the discussion please
join the other mailing list.

  Bob Pendleton

Florian Hufsky <fhufsky phorus.at> writes:

I just wanted to note that OpenGL is definately not vanishing due to Vista.

With the recent iPod boom and a likely somewhat “harsh” transition to
Vista for end users Mac will probably attract more and more users.

Solet’s take a look at what’s Mac OS X Tiger’s entire graphics subsystem
(Quartz) is based on…

OpenGL

:slight_smile:

I teach SDL+OpenGL game programming as well in an adult class at my local
University, and have had better success with the projects received by the
students over the DirectX material I initially started with.

to the (much stricter) hardware requirements of the new SDK.

I found that although they might be developing on XP at work (and we had XP in
the classroom lab), at home they only used Win95/98, and had older hardware.

(Not flaming here, I’m just reporting feedback from the students).>From my experience, it was actually harder to get them using the DirectX SDK due