PDA

View Full Version : What can you make?



X-51Designer
06-05-2002, 05:38 AM
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.

dabeav
06-05-2002, 05:45 AM
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.

Eric
06-05-2002, 06:48 AM
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

knackered
06-05-2002, 09:49 AM
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! http://www.opengl.org/discussion_boards/ubb/smile.gif

Mezz
06-05-2002, 09:59 AM
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

AdrianD
06-05-2002, 10:28 AM
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! http://www.opengl.org/discussion_boards/ubb/smile.gif

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! http://www.opengl.org/discussion_boards/ubb/wink.gif

knackered
06-05-2002, 10:48 AM
...and so on, and so on..........

Nutty
06-05-2002, 10:49 AM
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

knackered
06-05-2002, 11:00 AM
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.

Julien Cayzac
06-05-2002, 11:15 AM
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 !!! http://www.opengl.org/discussion_boards/ubb/tongue.gif).

Julien.

SirKnight
06-05-2002, 03:26 PM
Hmm...I smell a D3D vs OGL war starting to brew up. That can't be good.

-SirKnight

jwatte
06-05-2002, 06:12 PM
SirKnight,

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

:-)

Gorg
06-05-2002, 06:35 PM
I am putting a 100$ on knackered. This guy has a real mouth http://www.opengl.org/discussion_boards/ubb/wink.gif (no offense meant )

zed
06-05-2002, 08:59 PM
>> if by recompiling you're referring to dx7 versus dx8<<

aha http://www.opengl.org/discussion_boards/ubb/smile.gif evidence u aint been programming with d3d long

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

Eric
06-05-2002, 10:53 PM
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 http://www.opengl.org/discussion_boards/ubb/wink.gif).

Regards.

Eric

knackered
06-05-2002, 11:32 PM
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.

Eric
06-06-2002, 01:44 AM
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

KRONOS
06-06-2002, 02:52 AM
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 http://www.opengl.org/discussion_boards/ubb/smile.gif), then by all means, use the one you like best. Like I said before, it is a matter of taste.

knackered
06-06-2002, 03:51 AM
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.

AdrianD
06-06-2002, 05:58 AM
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 http://www.opengl.org/discussion_boards/ubb/wink.gif) 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... http://www.opengl.org/discussion_boards/ubb/wink.gif )

rIO
06-06-2002, 06:22 AM
I use OGL in my spare time coding, I prefer his simplier structure and I really don't have that bandwidth to get all the new D3D versions. I have nothing against D3D, and sometimes I whould like some more "automation" (or better, hidden procs calls) like D3D.
The funny thing is that I do 3d graphics programming (CAD/CAM) at work, of course we sell Win only software, and what API we are using ??
OpenGL ! Whant to know why ? Because most of big factories still prefer to keep a stable system, more than a very new hardware, so LOT of them are still using NT machines.
At the end I must greet Micrososft for making me not to use DX.
That's funny....

I bet noone ever told that to uncle Bill ;D


rIO.sK

knackered
06-06-2002, 06:23 AM
Mmm, that's a lot of reorganising. Did you not, at some point, consider centralising and abstracting your texture handling/drawing/shading etc.? This would ensure any rewriting is kept to a minimum. Obviously if you're going to litter your code with dx4 function calls, it's going to be a nightmare when the api changes...
Have you looked at the quake2 source code? It would be quite straightforward to convert it to use d3d rather than opengl.
Then there's 3ds max...it can run using 3 different api's - software, opengl and direct3d. Then there's my own software - it would be no trouble to add a Glide context to it.
Your negative experiences with direct3d are just a result of poor design decisions from the start. That sounds like I'm passing the buck, but it's just from my own experiences, sorry.

AdrianD
06-06-2002, 06:44 AM
i hate to depend on any particular API. So i designed my own abstaction layer in my rendering system.
I was supporting Glide,GDI(wireframe only for debugging), Direct3D, OpenGL and my own softwarerendering.(all of this API-drivers are in a separate dll)
I'm using this system since 5 years, and every feature that i added to my openGL "driver", i also added to my d3d "driver". So i had a really good chance to comapare the api's with each other....

richardve
06-06-2002, 08:37 AM
I've got 2 things to say about this OGL-D3D war:

The computer is a moron.

&

Use the force.


Yoda has spoken.

Jeffry J Brickley
06-06-2002, 09:42 AM
Okay, I am not going to try to end this war, I doubt it would convince anyone, but I have to say something. No matter how you fight it, your still comparing apples to oranges. It is both a matter of preference and a matter of economics as stated. If you are programming multi-platform, you either learn multiple ways of doing it, or run opengl and complain about the extensions, or accept them. If you are running stictly windows, sure direct3d is faster, gets updates out more often and guess what? It is not designed by commitee, so if it could NOT stay ahead of OpenGL, I would be surprised. Direct3D was designed, if my memory serves me right, to try to pull game designers off of bypassing windows and USE the windows interfaces. They preferred bypassing at that time (prior to DirectX 1.0)because of the speed gain. So direct3D had to be fast, it was part of a superset DirectX which provided full multimedia for games. Power, flexibility and NO CROSSPLATFORM for a good reason, Microsoft doesn't want someone writing for a Mac, or especially the evil child of Unix being Linux. They want everything Windows, so they don't want crossplatform compatibility. If you want speed, for windows and windows only, sure go Direct3D. I do both, Direct3D for fun (ugh), and OpenGL for a living -- because it IS cross platform. I work in a lot of environments (some even air conditioned hehehe), so I need OpenGL it's a lot better than keeping multiple code sets. I have platform specific functions AND a core set that is strictly OpenGL, it works and the reusable code portion in cross platform environments is about 95% which for my job is far more economical than having multiple code sets.

Now can we end this? they both really are good for their intended purpose.

knackered
06-06-2002, 09:47 AM
Roger, over and out.

AdrianD
06-06-2002, 09:53 AM
> Now can we end this? they both really are good for their intended purpose.

sure. no problem. use whatever you want for whatever you want... (even opengl for vioce chat systems http://www.opengl.org/discussion_boards/ubb/wink.gif )
as i said before, i don't expect from anyone to agree with my opinion. http://www.opengl.org/discussion_boards/ubb/smile.gif

zed
06-06-2002, 10:01 AM
conspricy time.
u know gamasutra have had various comparison articles over the years eg one comparing various physics api's a while ago, there was also to be one comparing the speed of d3d vs opengl with i quote 'surprising results' what happened to it?

Jeffry J Brickley
06-06-2002, 10:08 AM
Well, Nvidia U has a portion of the time for using GPU's for non graphics uses.... maybe they will cover it. http://www.opengl.org/discussion_boards/ubb/wink.gif

How about unplug the speakers, turn the volume WAAAAY up, cyclicly adjust system activity that creates noise to the nearby speaker and there you have it. *grin* No different than me doing speech on the old speaker on an Apple II+. Oops showing my age again....

Jeffry J Brickley
06-06-2002, 10:18 AM
Naw, never have believed in conspiracies... to hard to keep secrets.... now payoffs I believe in. http://www.opengl.org/discussion_boards/ubb/wink.gif

Actually, I doubt the results would suprise me. Sometimes simplicity pays off and OpenGL gains, sometimes Direct3D wins. As more and of the work is done strictly on the GPU and the CPU overhead becomes negligeable with faster processors, the two will grow together in comparison. *shrug* I try not to take sides too often. I use OpenGL out of necessity, and study Direct3D to keep up with the general 3D biz.

>> conspricy time.
u know gamasutra have had various comparison articles over the years eg one comparing various physics api's a while ago, there was also to be one comparing the speed of d3d vs opengl with i quote 'surprising results' what happened to it?

Jeffry J Brickley
06-06-2002, 11:10 AM
One last word then you can badmouth me for the rest of the day. http://www.opengl.org/discussion_boards/ubb/wink.gif http://www.opengl.org/discussion_boards/ubb/biggrin.gif

I am a firm believer in occasional misuse, I test code for other uses occasionally and sometimes find a fit. After all, if the Wright Brothers waited for the first aircraft part store to open before building an airplane... we'd still be grounded. http://www.opengl.org/discussion_boards/ubb/wink.gif

What was airplane fuel before there were airplanes? auto fuel. http://www.opengl.org/discussion_boards/ubb/biggrin.gif We've just improved on the product since then. http://www.opengl.org/discussion_boards/ubb/wink.gif

have fun one and all! on either side of the 3D fence. http://www.opengl.org/discussion_boards/ubb/biggrin.gif (or fences if you open up vendor issues)

>> sure. no problem. use whatever you want for whatever you want... (even opengl for vioce chat systems )

knackered
06-06-2002, 11:12 AM
Conspiracy theories are usually believed by people who want to believe in them. You're not doing much for the image of the average opengl user! http://www.opengl.org/discussion_boards/ubb/smile.gif

V-man
06-06-2002, 07:09 PM
Knack,

do you like D3D better because of GL's vendor specific extensions issue or is it the multimonitor issue?

Personally, I think that verifying if a feature is present is inescapable. Im not just talking about graphics here. You need to check if MMX is present, if SSE is present, 3DNow!, perhaps joystick, and other peices of hardware. The PC business is very dynamic, but I dont need to tell anybody that.
When it comes to 3D graphics APIs, you will always want to know if a feature is present, and more importantly if it runs fast. Any graphics API will have this version problem.

PS: I too dont like the vendor specific business and asked that IP be shared between vendors in the suggestions forum.

V-man

knackered
06-06-2002, 11:13 PM
I've nothing against checking if features are available - it's having to implement a feature in lots of different ways depending on the make of graphics card that makes opengl less elegant than direct3d. That's the only point I'm making, and the majority seem to agree, so I'm happy to have got it off my chest. http://www.opengl.org/discussion_boards/ubb/smile.gif

zed
06-07-2002, 01:25 AM
>>- it's having to implement a feature in lots of different ways depending on the make of graphics card that makes opengl less elegant than direct3d<<

define lots? as in an actual solid example http://www.opengl.org/discussion_boards/ubb/smile.gif
i have difficulty in seeing the difference between opengl + d3d, with d3d to see if a feature is supported u check capsbits with opengl u check the extension string (or gl version number).
i was gonna mention something (that ppl dont seem to mention) along the lines, with opengl the driver has to emulate something in the spec if the card cant do it in software (which for certain things ppl find unacceptable eg software stencil testing but anyways) with d3d u dont have the software emulation in the drivers. the feature will be ignored thus in these core cases opengl requires less paths than d3d.
example case
dot3 (useful for bumpmapping) in ANY (this is a key word) card that has opengl1.3 drivers if u ask for dot3 u will get dot3 with d3d8.1 with the same card if u ask for dot3 with the latest + gratest drivers u wont get dot3 IF the card doesnt support it (ie capsbits) ( u will get it if u ask for the reference drivers ie 100% software implementation by ms ) but this is very different this is asking for 100% software d3d implementation

btw im serious about the 'lots', ie put up or shut up - cause if have a feeling by lots u mean 3 vs 2 (for d3d)

Gorg i think u bet on france http://www.opengl.org/discussion_boards/ubb/smile.gif

Eric
06-07-2002, 01:49 AM
Originally posted by zed:
Gorg i think u bet on france http://www.opengl.org/discussion_boards/ubb/smile.gif

We are not out... yet... http://www.opengl.org/discussion_boards/ubb/wink.gif

KRONOS
06-07-2002, 02:07 AM
Like they say in my country: "You're making a storm out of a glass of water." (sort off, not very good translating).

Either way, you're comparing two diferent things. OpenGL is a graphics API. D3D is a WPI (windows program interface). Besides, why is it good to have a commom interface to everything in D3D? Why should we do things the way Microsoft wants to?! If they implement it slow, it will remain slow! An API isn't that. A WPI may be.

And why didn't they make D3D cross-platform? What are they affraid of? Why, oh why?!

And finally, did I heard someone said that D3D is faster than GL?! HAHAHAHAHAHAHAH http://www.opengl.org/discussion_boards/ubb/wink.gif Don't worry, everyone makes mistakes. They're exacly as fast. One isn't faster than the other.

LordKronos
06-07-2002, 02:38 AM
Originally posted by KRONOS:
And finally, did I heard someone said that D3D is faster than GL?! HAHAHAHAHAHAHAH http://www.opengl.org/discussion_boards/ubb/wink.gif Don't worry, everyone makes mistakes. They're exacly as fast. One isn't faster than the other.

In theory you are right. In practice, I think just about every company except nvidia has considerably better D3D drivers than they do OpenGL drivers.

The rest of this debate I dont even want to touch with a 10 foot pole.

knackered
06-07-2002, 04:52 AM
Jesus wept. You're like a pack of hounds. Why are you so emotionally attached to opengl?
I don't care which is faster, I care about having to worry about the implementation details of a specific piece of hardware.

Zed, it's a lot simpler to list the up-to-date functionality of opengl that *isn't* vendor specific - GL_ARB_texture_env_dot3.

BTW, England have done us proud!


[This message has been edited by knackered (edited 06-07-2002).]

dabeav
06-07-2002, 05:32 AM
In the world of Graphics Time = Money. I find that the setup for OpenGL is SOOOO much faster, even if you have to check for extensions. I mean in opengl, if you want to draw frikin triangle you define 3 points and draw the thing. In D3D, after 3 days of coding SETUP code, you finaly get the same results. Also with every update of D3D, you have to update your code, (alot). Thats why D3D is such a pain, its always changing. OpenGL got it right the first time, as you can see by OpenGL only being on version less than 2, and directx being on version (what is it now 8.1??) Yes I also understand DirectX has more bells and wistles, like sound input, etc. But ONLY WINDOWS CAN RUN IT. I use OpenGL, GLUT, OpenAL, Devil. And ya know what. They ALL have the SAME syntax, setup, and ease of use. And they all run on EVERYthing. Now I admit, the end result may be EXACTLY the same, (minus platform compatablity) but i just find OpenGL more intuitive, and easy to use. I could be wrong. But dont take my word for it, just ask microsoft, hell they couldnt even get DirectX to work with some of there OWN OS's. Now that is what I call an OBVIOUS flaw.

knackered
06-07-2002, 05:37 AM
I disagree - it's now faster to get a d3d application up and running than opengl, with vertex buffers giving you far more efficient data transfer than glvertex calls - and without the need for VAR, VOB or CVA tomfoolery.
I give up on this debate, it's getting a little boring - very few of you are giving objective analysis of the two api's, it's all 'rocks' and 'sucks ass'...

dabeav
06-07-2002, 06:09 AM
Well your analisys, rocks, or did it suck ass? lol. But any ways. I know, i have a major hard on for OpenGL, but thats just me. And right now you can make a good living simply developing for Windows. But Lindows is comming soon. Its A linux system that looks, feels, and smells just like windows (without the aftertast, and stablitity issues). And when this is releast, I think Linux will become a much bigger player in the market. Making way for OpenGL to rein. Only time will tell. Oh by the way, (opengl Rocks, and DirectX Sucks ass) sorry couldnt resist.

[This message has been edited by dabeav (edited 06-07-2002).]

V-man
06-07-2002, 06:17 AM
Its stupid to put down either API IMO. Each one has its strong points.

But in the end, you have to ask "What matters most". I think that MS got the ARB boys to move their ass and update GL before it looked like ancient history. At the same time, DX learned a few things from GL and improved.

Let`s keep improving. (specially GL http://www.opengl.org/discussion_boards/ubb/smile.gif)

V-man

AdrianD
06-07-2002, 06:24 AM
do you comparing d3d vertex buffers with glvertex calls ?
if you wont to be fair, you must compare them with vertex arrays, which are part of standard opengl specification since version 1.1.(VAR VAO & CVA are only extensions of this core functionality)

knackered
06-07-2002, 06:31 AM
I'm aware of that, adrian - the point I was answering was one of speed of coding something. Nobody uses glVertex to draw things in GL, everybody uses vertex arrays - my point is:-
zero = coding a GL vertex array - coding a d3d vertex buffer;
But with vanilla d3d vertex buffers you get the optimisations only possible in GL with VA/VOB/CVA extensions, for free, no additional effort. It's an interface that enables all these optimisations to be controlled by the people writing the drivers, at the expense of a little flexibility.
I agree that there are + and - for both API's, but there are people commenting in this thread that do not agree with that - something to do with MS trying to protect their business or something, but nobody criticises nvidia or ati for doing the same thing with their proprietry extensions.

AdrianD
06-07-2002, 08:18 AM
I'm think it's all about how both APIs adds new futures:
- In D3D there is ONE company which decides what will be supported.
- OpenGL can be extended by any hardware vendor. If this extensions get accepted by the programmes (=are used) this extensions became ARB extensions(= get standarized).

that's one of the reasons, why many people don't like d3d no matter how good or bad it is and react so emotional in this d3d-debatte: not everyone on this planet believes that m$ should decide, which feature we can use or not. And there are many ppl that don't like how m$ tries to control everything.... and this is the point, where all discussions start to get emotional. no matter what you are arguing.


And i agree with you about DX8. With version 8 directX became more useful then in any other previous version. i'm just don't using it anymore, because i'm bored with learnig a new D3D API every year... (and it costs me too much valuable time)

btw.: my first post in this thread was just a joke...

zed
06-07-2002, 10:32 AM
>>ut with vanilla d3d vertex buffers you get the optimisations only possible in GL with VA/VOB/CVA<<

test time
d3d vertex buffers compared to VAR/fence are?
A/ less powerful
B/ equalily powerful
C/ more powerful

SirKnight
06-07-2002, 11:23 AM
Sigh...I knew this was going to get into a api war of somekind. Come on guys what the hell? Surely there are better and more productive things to talk about.

-SirKnight

Nutty
06-07-2002, 12:44 PM
I completely agree with AdrianD.



test time
d3d vertex buffers compared to VAR/fence are?
A/ less powerful
B/ equalily powerful
C/ more powerful


The point is, VAR/fence is only on NV cards. With D3D vertex buffers, you get similar performance on _all_ cards that support the functionality, through 1 single interface. To do the same in OpenGL, you need to implement VAR on nv cards, and ATI's equivelent on ATI cards, etc etc..

Although the results might be better, as it's more native to the hardware, it complicates integrating different solutions into a single engine and takes more time.

Although the time taken to implement Vendor specific extensions is extremely trivial out of the entire time of a project.

I still prefer OpenGL, for all the reasons AdrianD stated, and others.

Nutty

Julien Cayzac
06-07-2002, 12:53 PM
Originally posted by SirKnight:
Sigh...I knew this was going to get into a api war of somekind.
Yup, those flamewars are quite boring. Especially when you know Glide rocks and GL and D3D suck ass........... http://www.opengl.org/discussion_boards/ubb/smile.gif)

Julien.

LordKronos
06-07-2002, 01:10 PM
Originally posted by zed:
test time
d3d vertex buffers compared to VAR/fence are?
A/ less powerful
B/ equalily powerful
C/ more powerful


The answer is C, more powerful.

From the vertex data aspect, they are equally powerful, that is, assuming the nvidia D3D driver writers did their job correctly and you lock the vertex buffers with the appropriate combination of the NOOVERWRITE and DISCARD flags.

From the index buffer standpoint, they are better in that your index buffers can be stored in vidmem also, which could potentially increase performance (although I cant recall for sure if the GeForce cards actually support this feature).

On the plus side, there is one simple mechanism for doing this all.

Shag
06-07-2002, 03:36 PM
Potentially the most Bollox thread I've read in ages ...

Come on - this is meant to be an OpenGL forum, at least in a loose sense.

knackered
06-08-2002, 03:01 AM
Well don't read it shag - do you have to read every single reply to every single thread?

zeckensack
06-08-2002, 07:16 AM
Originally posted by deepmind:
Yup, those flamewars are quite boring. Especially when you know Glide rocks and GL and D3D suck ass........... http://www.opengl.org/discussion_boards/ubb/smile.gif)

Julien.Gawd, Glide is flexible ...

You'd need at least ATi's fragment shaders to do all of that stuff pixel perfect and single-pass.

[This message has been edited by zeckensack (edited 06-08-2002).]