Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

l99057j

Dont flame me!

This topic is 5789 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok, no matter how much I say I''m not trying to start a flame war I''m afriad I''m about to. I have been using DirectX for some time now and think I have a pretty good grasp of 3D concepts and what is going on behind the scenes, etc. But before I delve any deeper into DX I have one question that keeps popping up. Why not OpenGL? It seems to be just as widely respected as DX, and plus its cross-platform. The only reason I''ve heard thus far is that because OpenGL is "committee driven" that it may not implement new features exposed by graphics cards as quickly as DX. So, for those of you that have used both... which do you prefer (I assume DX since this is the DX forum) and WHY? Again, this is not a pissing contest between DX and OpenGL. But if I''m going to invest a significant amount of time learning something I want to be sure it is the right technology.

Share this post


Link to post
Share on other sites
Advertisement
Just by the nature of even asking "which should I learn" you''re still playing with fire. Danger:highly flamable.


quote:
Why not OpenGL? It seems to be just as widely respected as DX, and plus its cross-platform.


Cross platform amongst "computer" type platforms. If you need to support Windows PC, Linux, Macintosh, SGI, with the same code then OpenGL may be a better choice than D3D.

Do be aware that much of the other code in say game applications is still platform dependent so don''t expect it to be as easy as ANSI C where you write what you want and do a simple recompile to get multiple versions. [Though things like Glut, OpenAL etc help somewhat].


quote:
The only reason I''ve heard thus far is that because OpenGL is "committee driven" that it may not implement new features exposed by graphics cards as quickly as DX


Almost.

The OpenGL ARB (Architecture Review Board) decide on features which make it into the "official", pure OpenGL. Since there are many companies involved in the ARB and many opinions, it can be slow for some features to make it into the standard. [Remember OpenGL is more of a standard than a specific thing].

However to counteract the time it takes for new features to appear, OpenGL has an extension mechanism whereby extensions can be added to the API. There are two common categories are general extensions which work across a number of pieces of hardware, but haven''t yet been authorised by the ARB and specific extensions which only work on specific chips.

Checking to see whether a graphics card supports a particular extension is a analogous to checking caps flags in D3D.

Contrary to popular misconception, D3D does have an equivilent of the ARB and it isn''t just formed of Microsoft people. New D3D features are planned and reviewed by a combination of MS, all the PC hardware manufacturers and a few representatives from the games and other industries.
One big difference though is that D3D sets out to support all the features on a particular set of hardware which the hardware people say will be released within a set timeframe. Only the subset of those features which is of most use to developers will actually make it into the API. The D3D caps checking mechanism is then used to determine which of these features is available.

The advantages of OpenGLs extensions is that features thought up after the API was defined can be added at a later date, and hardware manufacturers can expose chip specific features.
This can be a disadvantage for the same reasons! - you spend more time checking for extensions, and having manufacturer specific extensions means that those companies deliberately expose and encourage people to use features which only work on their range of chips... Extensions kind of go against the "platform independent" ideal.


Be aware that on the Windows PC, device driver quality has a big part to play in which API will work best.

PC D3D drivers go from reasonable to pretty good .
PC OpenGL drivers go from terrible to excellent .

i.e. a D3D app will run reasonably on ALL Windows PC hardware and well on some. An OpenGL app will run well on most PCs, brilliantly on some and not at all on others. [Matrox, 3Dfx and PowerVR drivers tend to have quite a bad reputation amongst many OpenGL people, 3DLabs, ATI and nVidia have a much better reputation].


quote:
But if I''m going to invest a significant amount of time learning something I want to be sure it is the right technology.


The whole point, and what the conclusions of any flame war would be is that BOTH are the "right" technology. Which is right for YOU depends entirely on YOU , YOUR tastes, and which platforms/hardware YOU want to support.

Some similar decisions people are faced with in life:

Coke or Pepsi, which is better.

Spanish or French, which is better to learn to speak [if you''re in France, then French is probably more suitable -- i.e. akin to which platforms you need to support]





--
Simon O''Connor
Creative Asylum Ltd
www.creative-asylum.com

Share this post


Link to post
Share on other sites
OpenGL SUCKZZZ!
D3D RULZZZZ!
*lol*
I was just kidding.
I have been working with DirectX for a while now but have also tried OpenGL a few times.
I do not exactly have a reason for staying with DX and not moving to OpenGL.
If you want an easy answer:
1. I do not want to learn again all the basics again (though this is a minor matter)
2. In my opinion there are more good books on DX (at least I found more )
3. The strangest reason of mine is that I have an awkward feeling when thinking of doing something complex with OpenGL.
Although this is rubbish I cannot imagine how to do complicated things with OpenGL. Perhaps because it is more simple to learn and to use than DX.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I plan to never support anything other than the Windows and the X-Box operating systems/platforms. Why?

Goto Wal-Mart, goto Electronics Boutique. What OSs do they sell software for?

I really love this work and it would tear me apart if I were forced into another field. Developing for systems where the only people who will see my work are a small target audience will not support me in my creative efforts.

"Cash is the fuel for everyone."-Carnal Forge

Share this post


Link to post
Share on other sites
Use the one thats suits your needs or the one you like. If you want to make your game etc cross platform then I would say use OGL to start with (unless you want to rewrite you engine to use DirectX).

If you learn DirectX and you find you need OGL for something then you can always learn it or vise versa.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I''m always amazed at these stupid posts. Design your game engine correctly and you won''t need to choose between the two. A good game engine will encapsulate the needed code, and provide cross platform capability without being reliant on code you have no control over such as DirectX or OpenGL. If your asking what you should learn your answer is 3d theory! Why? because if you know the theory you can use either API effectively.

Bottom line write a rendering library for directx and opengl. Add that into your game engine and unless you want to support the newest API version you''ll never have to touch DirectX or OpenGL specific code again! Q: So what should you learn? A: How to code a good game engine without having to consistantly deal with DirectX or OpenGL specific code!

Share this post


Link to post
Share on other sites
Hi

I few years ago I begun with 3d, and so I tryed D3D, OGL, and writng my own software renderer at the same time. (All with a lot of trial and error). DX just happens to work the most early. Right now I am verry happy with it, and when I look at an OpenGL program I don''t like the style with all that shitty functions, However I want to learn ogl, because dx totaly sucks in a window (non fullscreen mode) because you have te release everything, and than recreate everything when the window is resized. I''ve heard this is much easier in ogl. But for me ogl doesn''t work. Whatever I try, the ChoosePixelFormat always returns an error.

Btw I don''t think using ogl or dx makes much difference, it is only used for drawing the polygons, and they both do their job well, and a program that only renders some polygons is written in a few hours. the main hard part of writing an engine is de lighting, fysics, collision, ai etc.

Share this post


Link to post
Share on other sites
quote:
I'm always amazed at these stupid posts.


I'm always amazed at the superiority complex some people get when others dare to try and expand their knowledge by asking a question.

quote:
A good game engine will encapsulate the needed code...


Agreed. But since most of us cannot learn two APIs concurrently, either due to lack of time or money (books do cost money you know), it seems prudent to focus on the one that will benefit you the most out of the gate. Of course you always have to choose the one that is best for your project, as others here have stated. But if you don't ask what the pros and cons of each are how can you possibly make that assesment?

quote:
what you should learn your answer is 3d theory!


Again, agreed. But did I say anything that led you to believe I was not or had not already learned 3D theory? It is time to put that theory into practice and if there were any obvious reasons to favor one technology over the other I simply wanted to know them.

My thanks to those of you who actually spent the time to write a useful answer to my post. I think I'm going to stick with DX right now just because that is where I'm most comfortable. But I am using ANSI compliant code and encapsulating all DirectX specific functions in classes so that I have the option of adding OpenGL support later.

P.S. I'm not sure if the comment about not bumping was directed to me specifically or not but just in case... I didn't do it. Anything I do on the board is done under my username, not anonymously.



[edited by - l99057j on September 11, 2002 4:35:50 PM]

[edited by - l99057j on September 11, 2002 4:36:11 PM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
It was me, I bumped it so it would be seen on the main page and maybe someone would respond to my reply. Please don''t be brash with any of these other fine gentlemen for my mistake. I understand your comment probably was directed at me, but this post is to make that clear.

Thanks...

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!