Jump to content


OpenGL, the right graphics API?


31 replies to this topic

#1 PixelDuck

    New Member

  • Members
  • Pip
  • 7 posts

Posted 19 February 2003 - 08:24 AM

I just wanted to make a small query on what you all think of the quality/speed/adaptation-to-new-stuff/industry-suitabillity of OpenGL.

It seems that most of the people in the gamedev industry use DirectX due to it's high ammount of tools and device independence, which makes it extremely efficient to work with. I've even heared such an explanation that most people aren't that profficient in the math involved or don't have the intrest to work with the low-level. Well, sounds pretty convincing, but are there any other things that might effect their choise? Like system speed? I might say that atleast the vertex/(pixel/fragment) program constant/parameter assignment is more efficient in Direct3D9 than with ARB_vertex/fragment_program, since one can actually group the constants for one call but with OpenGL you'll have to call the assignment function for every constant/parameter, not very efficient, eh :\ Or am I missing something, is there some function that can take an array of values for the assignment of environment/local parameters (ARB_vertex/fragment_program)?

Hope I didn't mix any terms here, since I've not been using OpenGL for that long (mostly DX, but almost all OGL now) :)

Well anyway, what do you think about the future of OpenGL, will DirectX replace it or will it persevere? I surely hope it will remain. I actually don't like the interface style of DX (since I only do c/c++ ;) ... exluding asm).

Anyways, please post your opinnions!

Cheers!

#2 DarkLight

    Member

  • Members
  • PipPip
  • 57 posts

Posted 19 February 2003 - 10:04 AM

Well, both of OpenGL and DirectX have advantages and disadvantages. I'll say only, that
Quake (Quake 2 and 3 too), Doom (and Doom 3 wll) and many other popular games uses OpenGL
<a href='http://www.kaldata.net' target='_blank'>kaldata.net - IT News</a>

#3 CyraX

    Valued Member

  • Members
  • PipPipPip
  • 144 posts

Posted 19 February 2003 - 01:43 PM

I say the main reason many of the ppl use DirectX is because of the fact that DX has EVERYTHING integrated. DirectSound, Direct Play etc;
The Vertex/Pixel Shaders are also better off in DX, but soon DX would lose that lead, guess because Cg is gonna rock soon. Cg is not all that upto mark as of now, but soon it would be. Remember its nVidia whoz working on it.
Other than that, OGL and DX are not far apart. If that were to be the case, QII would have been written in DX and not in OGl. Remeber how slow OGl during those days was.
When its Mr. Carmack , John we are talking of, I would say he would not mind rewriting hte whole of Quake II IF it were to add an extra 5 fps in DX. Remember he ALREADY wrote his own Graphix Library for scroll games. I should say that soon many games would shift over to DX.
To ADD: Unreal also uses DX and or OGL

#4 Morgoth

    New Member

  • Members
  • Pip
  • 9 posts

Posted 19 February 2003 - 02:29 PM

To begin with, I must say that I'm not that into vertex/pixel shaders so I can't comment on this issue.
The integration issue seems to be of some importance since the proposals on OpenGL 2.0 include some discussion on integration with an OpenML (media library). Besides, games that use GL for graphics also rely on DirectX for sound and input... Talking about Carmack, in some older .plan he had stated that after GLQuake (1) he tried to port the code to DirectX (then 3 or 5, not sure) but dropped the whole thing because "he had better things to do with his time". Bad API back then but great improvement over time. By the way, Unreal dropped "real" OpenGL support, but keeps some -potentially buggy- legacy support. UT2003 and Unreal2 don't even offer the option! The initial design of OpenGL has proved its longevity (OpenGL 1.x lived for at least 5-6 incarnations of DirectX at the PC's) and is even older - i think - in SGI platforms) but some changes are required. My personal opinion is that the fate of OpenGL relies heavily on the success (or failure) of the OpenGL 2.0 project. It HAS to be good, at extension management definitely need a fresh look, and of course integrated programmability is highly wanted!
As for the fact that many people aren't that proficient on maths, if you are referring to DirectX extension lib, remember that GLutility library has been a standard since the beginning.

#5 PixelDuck

    New Member

  • Members
  • Pip
  • 7 posts

Posted 19 February 2003 - 03:15 PM

Morgoth: I thought of that before I said that about some people's proficiency in math, but I still said it since it wasn't originaly mine, the opinnion I mean ;)

Anyways, I share the thought that integration is important. And for efficiencys sake, using one API compared to many is very much better. OpenGL 2.0... yeah, that's what we're all waiting for, aren't we :) And I too have high expectations and reading the papers, for some part atleast, I think that it will be pretty good to say the least. Though, we've seen this before, or are seeing it right now, namely the GeForceFX case. They promissed it to be a superb card and what did it bring to us? A poorly designed heat-sinking system (apparently, atleast compared to ATI) that sounds like an airplane! Well that's a bit axeggaratation (or what ever :). But one thing can't be avoided, it just barely surpasses ATI's r300 in speed :\ And with very few additions in form of capabillities it doesn't sound like beeing worth the money. Oops, a bit of topic :D

My point beeing that who knows. Maby OpenGL 2.0 will turn out just like GFFX seems to become... I surely hope not, but we never know :\ Atleast it sounds promissing, as I mentioned before, and I sure have high hopes of it and hopefully it will be the "saviour of OpenGL" :)

Though surely OpenGL will retain a great portion on the non-game side of graphics if DX takes over, but that remains to be seen :)

Cheers!

Edit: Oh and forgot to say that one reason for prefering DirectX might be that you can actually download it as a SDK. This was a thing that created confusion in me, since I was accustomed to the downloading of a SDK and I didn't notice, at first, that OpenGL comes with the OS (or was it the IDE, atleast VC++) :D Anyways, 124 MB was understandable for a SDK download, but the about 200 MB of DX9 is a bit bad :eek:

#6 baldurk

    Senior Member

  • Members
  • PipPipPipPip
  • 1057 posts

Posted 19 February 2003 - 08:56 PM

one thing, UT2k3 has more than legacy support for OpenGL. It had a linux client out of the box, and that ran on opengl
baldurk
He who knows not and knows that he knows not is ignorant. Teach him.
He who knows not and knows not that he knows not is a fool. Shun him.

#7 Dia

    DevMaster Staff

  • Administrators
  • 1097 posts

Posted 19 February 2003 - 10:03 PM

Both APIs are fast & powerful. Just a side note: What makes one wonder is that OpenGL was developed almost 12 years ago, and yet it is very powerful and widely used. Whereas, DirectX came into power after DX 7.0/8.0. Caramack himself disproved DirectX (when version 6.0 was out), but now I'm sure he'll change his opinion now that we have DX 8.0/9.0. The point is, OpenGL being as old and as powerful as it is (not that many changes since its initial release) makes it a prefered API for young developers. DirectX went drastic & dramatic changes which is a very disadvantgous thing about it (it shows that there was no initial design & planning). When I look at openGL I see that the guys were looking 10-15 years ahead when the API was developed. But now, one must admit that OpenGL is getting old (since Computer Graphics has evovled rapidly) and the extensions on it are causing problems. That's why there is a need for OpenGL 2.0

Its just my humble opinion. :lol:

#8 davepermen

    Senior Member

  • Members
  • PipPipPipPip
  • 1306 posts

Posted 20 February 2003 - 04:37 PM

yes, carmack officially stated he likes dx8 and 9 very much, and thinks about using it as well in the next projects.

but gl is great for a start, yes. its what i started with as well.
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

#9 baldurk

    Senior Member

  • Members
  • PipPipPipPip
  • 1057 posts

Posted 20 February 2003 - 06:11 PM

From memory, I think carmacks comments were on DirectX 3 :).
baldurk
He who knows not and knows that he knows not is ignorant. Teach him.
He who knows not and knows not that he knows not is a fool. Shun him.

#10 davepermen

    Senior Member

  • Members
  • PipPipPipPip
  • 1306 posts

Posted 20 February 2003 - 08:29 PM

yes, he first played with dx3, hated it, then he tested dx6, hated it, and dx7 was nothing new for him, but dx8 was a surprise for him..
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

#11 Morgoth

    New Member

  • Members
  • Pip
  • 9 posts

Posted 21 February 2003 - 06:57 AM

baldurk said:

one thing, UT2k3 has more than legacy support for OpenGL. It had a linux client out of the box, and that ran on opengl
I have just seen UT2003 & Unreal2 only on Windows platforms (2k & XP) and they don't offer directly an option for OpenGL. As far as I know, they fall back to OpenGL rendering only if they fail to properly detect required DirectX features/version. Of course, for a Linux client there is no other option than OpenGL :-)

#12 CyraX

    Valued Member

  • Members
  • PipPipPip
  • 144 posts

Posted 21 February 2003 - 01:38 PM

UT2003 - I havent played it dont have a GeForce here. :(
Carmack - did say that things were bad with DX. I agree. It was a huge coding effort to get DX started. DX 7 was the last of the long coding stories. Well DX8 makes things a lot better. I would say good work M$. However DX still remains one of the 'old' APIs. OGL is more of a C based API. It has more support (in terms of OSs) while graphix companies (card companies) love DX because it puts load on the coder and not on the card. OGL on the other hand would require the card to do more work compared to DX.
However DX has been doing lotsa advanced work. OGL has been taking tooo long to incorporate the changes. OGL 1.4 itself took a lot of effort for card companies to accept. Besides DX is tightly coupled with the Windoze OS. So it performs better in most cases.

If OGL 2.0 works well, OGL lives else I would say things are going to be tough for OGL for sometime.

#13 davepermen

    Senior Member

  • Members
  • PipPipPipPip
  • 1306 posts

Posted 21 February 2003 - 04:20 PM

CyraX said:

UT2003 - I havent played it dont have a GeForce here. :(
Carmack - did say that things were bad with DX. I agree. It was a huge coding effort to get DX started. DX 7 was the last of the long coding stories. Well DX8 makes things a lot better. I would say good work M$. However DX still remains one of the 'old' APIs. OGL is more of a C based API. It has more support (in terms of OSs) while graphix companies (card companies) love DX because it puts load on the coder and not on the card. OGL on the other hand would require the card to do more work compared to DX.
However DX has been doing lotsa advanced work. OGL has been taking tooo long to incorporate the changes. OGL 1.4 itself took a lot of effort for card companies to accept. Besides DX is tightly coupled with the Windoze OS. So it performs better in most cases.

If OGL 2.0 works well, OGL lives else I would say things are going to be tough for OGL for sometime.
well, carmack said this till before dx8. then he changed opinion. read up the .plans of him..

dx is an 'old' api? gl is older. and well, so we could say windows XP is an old windows? because far far back, there was win3.0 (and even olders:D), and its (loosely) based on it? where do we get then? each new version is a revision, and you can't compare any dx before version 8 with any version after and including 8. you can basically say, dx got a rebirth then.

and the other stuff, about gl and dx, is simply untrue. most of the code is one-to-one mappable. dx is not more work for the programmer as gl is, same for drivers. gl has more features, useless for games and so not supported by gamers hardware. this is an issue for driver developers, but they can just let it fallback to software mode then if they want to.

those apis are today so equal (coding style is different, and i would say dx is much more futuristic in coding style than gl, wich is only funcs and #defines.. really old style that is:D), they are so equal, bashing on one or the other is simply useless. same feature set, same power. its a mather of choise. in dx, you know that you get microsoft as support. this is great. in gl.. you get.. driver developers.. you get them in dx, too.. there is more help for professional developers on dx side (if you're just a normal programmer. weenie and carmack get much support from everyone.. but they are exceptions)..
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

#14 Jeroen

    New Member

  • Members
  • Pip
  • 3 posts

Posted 24 February 2003 - 10:35 AM

A major advantage of OpenGL is that it is cross-platform. If you want your game to be available for Windows + Linux, for example, you should use OpenGL. Furthermore, as far as I know OpenGL is just as fast as DirectX and more easy to use. That's why i'm using OpenGL in my current project.

Check out Delgine 3d engine/editor for more info. :)

Jeroen

#15 CyraX

    Valued Member

  • Members
  • PipPipPip
  • 144 posts

Posted 24 February 2003 - 01:18 PM

DX was CREATED specifically for game programming and not for applications.
Hence DX is good @ game apps.

#16 davepermen

    Senior Member

  • Members
  • PipPipPipPip
  • 1306 posts

Posted 24 February 2003 - 06:55 PM

donBerto said:

CyraX said:

DX was CREATED specifically for game programming and not for applications.
Hence DX is good @ game apps.
...so which one is it? :lol:

i'm just kidding...
:yes:
you can't stop this, can you?

oh.. i see, you're near the senior.. thats why..:D
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

#17 Phaetos

    Member

  • Members
  • PipPip
  • 57 posts

Posted 25 February 2003 - 06:21 AM

Hi @ all!

As I don't know a single thing about DirectX I would like
to know: Does the native M$-DirectX API contain such cute
Matrix-Stacks and Operations as OpenGL does?
Or does it need additional Libraries?

Greetinx
Stefan

#18 davepermen

    Senior Member

  • Members
  • PipPipPipPip
  • 1306 posts

Posted 25 February 2003 - 09:11 AM

it has the d3dx helper library, providing similar features, though dx is designed a bit different (meaning you normally don't use a matrix stack there..)..

but you do it offline, your own matrices you upload.

advantages: no forcing to modelview projection (i really dislike it, and want model, view, projection all 3 split)
same matrix math functions for all of your own matrices, too.

and a matrix stack is really easy to code up yourself actually..
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

#19 PixelDuck

    New Member

  • Members
  • Pip
  • 7 posts

Posted 26 February 2003 - 08:00 AM

davepermen: _vertex_program(x.x) you can actually send the matrices as program matrices if you like :\ Atleast ARB_vertex_program can do that, I haven't tested the NV_vertex_program:s since I don't have an nVidia card atm. :blink:

But yeah, DirectX at some points has a bit more flexibility, atleast the legacy fixed-function pipeline :yes:

Cheers!

#20 davepermen

    Senior Member

  • Members
  • PipPipPipPip
  • 1306 posts

Posted 26 February 2003 - 10:01 AM

yes, i know arb vertex program lets you use the matrices directly. no, nv vertex program doesn't do it that neat, just forget it, its proprietary and outdated, arb vp can do all the nv vp does, it has minor differences, but major advantages, mainly it has variables and runs on all hw.
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users