What can you make?

I’m new to OpenGL and am very interested in it and I am just wondering what kind of stuff you can make. What I mean is, are alot of games made with opengl? What are most games made with? Thanks for the response, appriciate it.

ALOT, of things are made with it. In the games catagory, we got things like Quake2, Quake3, and a million others. You can make cad programs with it, modeller programs with it. Anything that requires graphics, 2D/3D whatever, you can do with it. And its OPEN platform, it will run, on Windows, linux, unix, mac, beos, dosnt matter. Lets see DirectX do that.

Originally posted by dabeav:
Lets see DirectX do that.

Well, if you want to attack Microsoft, you should talk about Direct3D, not DirectX…

Because, if you are really talking about DirectX, then OpenGL cannot deal with sound (DirectSound), user inputs (DirectInput), and a million things…

What I am trying to say is that the equivalent to OpenGL is Direct3D, not DirectX. I’d rather compare what can be compared…

Regards.

Eric

its OPEN platform, it will run, on Windows, linux, unix, mac, beos, dosnt matter. Lets see DirectX do that.

Mmm, but if you want to do more than just draw gouraud shaded triangles with simple textures, you’re going to have to use lots of hardware vendor dependent interfaces…whereas you won’t with direct3d, if a particular capability exists in the driver, then the interface to that capability is standard, no matter what your target hardware…let’s see opengl do that!

knackered,

I’m not of the mindset it will solve all problems with vendor-specific codepaths, but V2.0 (if approved & released) should go some way towards providing a more common interface, although at the minute I’m quite enjoying the challenge of programming for specific extensions and making it all take the correct route. I don’t guarentee my enthusiasm will last mind.

-Mezz

Originally posted by knackered:
Mmm, but if you want to do more than just draw gouraud shaded triangles with simple textures, you’re going to have to use lots of hardware vendor dependent interfaces…whereas you won’t with direct3d, if a particular capability exists in the driver, then the interface to that capability is standard, no matter what your target hardware…let’s see opengl do that!

you forgot to mention that if you don’t check this capability flags, your app will badly crash… and with a new version (which if very often) you have to reorganize your sourcecode, because your old apps won’t compile anymore…

…let’s see opengl do THAT!

…and so on, and so on…

I dont understand why D3D coders always bring this up about vendor specific code in gl, which is not needed in D3D. Complete bollocks! Lets see your single code path using Pixel shader 1.4 work on a gf1 then eh? Or a matrox G200? I think not. Even between GF3/4 and Radeon 8500, you can’t use Pixel shader 1.4, without having to do a seperate version for pixel shader 1.3 on nvidia cards.

Or can you? I have to admit I know nothing about DX/D3D, but I can’t see anyway around the above implications without resorting to hardware specific code paths/features.

D3D IMHO is just a waste of time. It only works on windows PC’s, (not all windows either) aimed purely at games, and theres probably nothing you can’t do using GL,OpenAL. Why not just drop it M$ and put your weight behind OpenGL? Unless DX comes out on linux, and Mac’s, and various other OS’s, then theres noway OpenGL will ever go away! And I can’t ever envisage that happening. Stop making double standards, and make a common standard. Everyone benefits then.

Nutty

Look, for heavens sake - the capabilities are advertised, the interfaces are there…
OpenGL apps crash if you don’t check if wglGetProcAddress returns null - I mean, for gods sake, retrieving entry points from your APIs DLL (or shared object) is so sloppy. Adding #define’s to your header files…argh!

I use opengl - I have to, it’s a big part of my job, but I also use d3d. Adrian, if by recompiling you’re referring to dx7 versus dx8, yes that is a pain - but it was a huge revision of the API, and needed to be done. I really do think d3d is more elegant now, as a result of this new broom sweeping clean.

Nutty, maybe a particular d3d interface is not available on the client, that’s easy to deal with, but the point I’m trying to make is that opengl’s extensions are (on the whole) VENDOR specific - ATI, NVidia, 3dlabs(and now Matrox) all have very different ways of doing something as simple as per-pixel specular bumpmapping. You not only have to cope with a feature existing or not, but you also have to deal with the technicalities of implementing the feature are radically different for all those cards.
And then there’s VAR versus VOB.

Originally posted by knackered:
…the point I’m trying to make is that opengl’s extensions are (on the whole) VENDOR specific - ATI, NVidia, 3dlabs(and now Matrox) all have very different ways of doing something as simple as per-pixel specular bumpmapping. You not only have to cope with a feature existing or not, but you also have to deal with the technicalities of implementing the feature are radically different for all those cards.
And then there’s VAR versus VOB.

Many applications can be written using core only GL functions. I myself consider ARB extensions as beta material, EXT ones as alpha, etc. Those allow programmers to write software with the next core revision in mind.

OpenGL is intended to be a standard, which means an OpenGL compliant application would run on any OpenGL compliant graphic card. For programable parts of the new graphics cards, we have been playing with some alpha materials (NV_vertex_program, ATI_whatever, etc.) but now it’s time to settle a standard in the beta phase -here comes ARB_vertex_program (which will hopefully be finished next week… go ARB go !!! ).

Julien.

Hmm…I smell a D3D vs OGL war starting to brew up. That can’t be good.

-SirKnight

SirKnight,

That’s right. Let them kill each other while we 3l33t Glide pros just seize this opportunity to WIN!

:slight_smile:

I am putting a 100$ on knackered. This guy has a real mouth (no offense meant )

>> if by recompiling you’re referring to dx7 versus dx8<<

aha evidence u aint been programming with d3d long

btw i thought dorbie was moderating threads like this, get to work miladdie

I thought we had already discussed all of this… In OpenGL, you have to check for extensions. In D3D, you have to check for caps…

Now, if any of you can give me the big difference, I’ll be grateful… And please do not talk about the D3D fallback to software when the hardware cannot deal with some feature: software is a no-no these days !

One point to knackered though: in D3D you have ONE interface for a specific feature when it is available. While in OpenGL, you can have different extensions depending on the vendor. But then again D3D is Windows only while OpenGL is cross-platform…

Each has pros and cons… Use the one you need !

And remember Yoda’s words: “DirectX leads to Anger to Hatred to Suffering” (had to put something like that so the thread could go on ).

Regards.

Eric

I don’t want a d3d v opengl war - I just find it hard to understand peoples aggression towards d3d.
I’ve programmed in dx since version 6, which was crap…a complete nightmare to get something running with - the change from 6 to 7 was not so dramatic as the change from 7 to 8, in my opinion. 8 is very nice.
Eric, the vast majority of 3D software is sold for Win32, it’s a fact - so cross platform compatibility is not so important anymore…I agree it’s a big plus for opengl, but not so much nowadays.

Originally posted by knackered:
Eric, the vast majority of 3D software is sold for Win32, it’s a fact - so cross platform compatibility is not so important anymore…I agree it’s a big plus for opengl, but not so much nowadays.

I kind of agree with you although I am not sure this is true if you remove games from the equation (well, I guess it is still true)…

But as long as Windows hasn’t totally taken the world over, there will be a need for a 3D API on the other platforms. Then, if this API can be used on Win32 as well, this is better for developpers. And OpenGL is just that, a cross-platform 3D API…

I hope nobody really wants to see only Windows-based PCs in the future (OK, it looks like it anyway…).

Regards.

Eric

Same discussion again. Has someone downloaded the Chameleon demo from NVidia?Notice that there are two shortcuts, one to render with D3D and the other with GL. And what’s the diference? NONE!!!

It’s a matter of taste. Although I can’t understand why someone would prefer D3D over GL. Both can do the same things, and their performance is almost the same.

So, there’s a tie. Where can we find a winner?

  1. Well, why are you assuming that every Windows cames along with DirectX 8? Or 7? Or 6? It doesn’t. But it comes with OpenGL 1.1.

  2. About extensions and caps. I believe they are both the same. Exacly the same. And whats the big deal with software rendering? I always thought that was stupid for DirectX. Who would want to see something rendered at 0.00005 fps? It only makes the code messier.

  3. And for wglGetProcAddress, your apllication does the same when linking with DirectX dlls, you just don’t see it. And if you don’t have a version of DirectX installed, it crashes or it doesn’t run at all! I at least prefer to check it out for myself, and just disable something if the hardware support for it doesn’t exist.

  4. And why would someone program something to run in Windows only, when with the same amount of effort I would endup with the same results? I would only do that if Microsoft pointed a gun at my head! Even if there’s nobody playing Quake3 in Linux, at least it’s there! If Carmack had used D3D, he would endup with a game exacly that the one he as now, but ‘Windows only’!

  5. I can’t say for certain, but it’s everyone’s opinion that OpenGL is clenear to program with than D3D. And that the OpenGL is more intuitive.

  6. And why can’t D3D expose register combiners? Isn’t it flexible enough to do that?

I only see something good on D3D. Competition. One API is not good.

Well, for all these reasoons and others more, OF COURSE OpenGL is a better API than D3D. But then again, if you want your apllication to run on Windows only, be dependent on a DirectX version installed on your Windows machine, and crash completly if the hardware support isn’t there (well, allmost ), then by all means, use the one you like best. Like I said before, it is a matter of taste.

No, it’s only a matter of taste when you don’t program for a living.
It’s a matter of time economics. Once you accept that you’re not targetting anything other than win32, you’d be silly to use opengl in its current form. I’ll say it once again - whereas direct3d has a common interface to each of its features (like them or loath them, they’re at least common), opengl has several for a single feature, in the form of vendor specific extensions. That’s all I’ve got to say, really.
OpenGL is nice for knocking up small prototypes, and for hardware manufacturers to test a new chipset before implementing the direct3d driver.
My opinion will probably change as more and more of these obscure extensions achieve ARB status.

hi there,

i was programming d3d since d3d3. It was a real mess to deal with it. with d3d5 m$ introduced indexed primitives, which was a little bit better (and a little bit more like ogl). but i had to reorganize my complete code to get this functions running, because they used the d3d5 interface and my code was written for the d3d3 interface…
I made some really good optimizations to get a flexible statemachine running and everyting was fine… for the next 4-8 months, because after this time m$ came up with d3d6.
In this version, the handling of textures changed completely… so i had - again - to rewrite my texture-managmet code (because the old code didn’t work with the new functions). After i finished my new d3d6-code d3d7 came up. And - of course - there was a new statemachine mechanism, which was completly different working. So i had to rewrite my whole d3d code - again.
As they came up with d3d8 i said: enough is enough! and stopped supporting d3d in my applications, because i have better things to do, as lerning every 6-10 months a complete new API… (and installing d3d3,d3d5,d3d6 and d3d8 libs/sdks to keep my old code still running) btw.: with every new version, d3d became more and more like opengl.

on the other hand opengl didn’t change very much since it’s first version. I can still compile my first code. Ok, there are very much extensions, but they only enhance the existing functions or add new ones, instead of changing their (standard)behavoiur. I can still use my old initialization code, and can add some new features, but with d3d i have to rewrite(and get running) the full initialization code.

so what i’m trying to say:
when you are designing your appliaction for d3d, you have to consider that everything that you code at this time could change with the next revision when you plan to support new features.
With openGL i can count on it. I know, this code will work on old machines and the new ones. I can use the new features, but i don’t have to reorganize my full code.
When some new features come up (thanks, nvidia ) i can simply add them to my code, and be happy… (it takes 5-15 min to add a new extension to my code)
I don’t have to redistribute the newest directX version with my code, to make sure every user is able run my application without crashes (because d3d8 applications tend to crash at application loading time - before your application code (wimain) is called - when there is no d3d8 installed. you have to check for the presence of the d3d8.dll in the system directory!).

this are my expiriences with d3d and opengl, and they build my opinion.
it’s only my opinion i don’t expect from others to agree with me. (but i couldn’t resist to explain it… )