Question about DirectX and OpenGL.

Started by
51 comments, last by solinear 21 years, 11 months ago
Yes, I know this topic is flamebait and I''m sure that some may respond without actually reading what I''m asking. I have spoken to many people who state that Direct3D is ahead of OpenGL and that OpenGL 2.0 will basically catch OpenGL up with where Direct3D is at right now. I personally think that this is crap because I see OpenGL games that have been out for 2 years looking better than most (read: all) Direct3D games that I see coming out right now and doing it at higher Frames/sec. As a result, I wonder if it''s a misconception. Why are there so many people out there saying that Direct3D is more powerful when those who make games that look really awesome and put out rediculous numbers of Frames/sec are doing it in OpenGL? Direct3D games look like ass in comparison and it is almost never used in first person shooter games, where graphics are easily one of the most important aspects of the game. I''m in the beginning stages of making a game and admittedly, I''m not working on the graphics engine. However, everyone who is working with me who doesn''t know OpenGL is saying that Direct3D is a better way to go (I will also state that they are not working on the graphics engine either) and that it (Direct3D) is more powerful than OpenGL. The one person who is working on the client who was better with Direct3D before we started is now an OpenGL convert (note: since I shipped him 3 OpenGL books and he started reading them), coming from stating that it would be easier in Direct3D (which he now states was completely wrong, or words to that effect) to now stating that Direct3D is a pain in the butt to do some of the same stuff. Why this misconception and if it''s not a misconception, then why are all the most advanced engines (Quake3, UT2, the next Doom game) all using OpenGL instead of Direct3D?
Advertisement
Direct3D vs. OpenGL: Which API to Use When, Where, and Why
by Promit Roy
Those who dance are considered insane by those who cannot hear the music.
Read that before... it still doesn''t really answer my questions though. It just seems to give credence to the idea that both groups are right about their choice (and wrong about the other).
*bump* Here it comes, another flamewar. Oh, well, i might as well get my opinion out before this thread is closed. I like them both. They each have their advantages (OGL: easier[supposedly], lots of online tuts, JC and Myopic use it so it must be good ; DX: Integrates with other DX components very well, vertex and pixel shaders, COM is cool[im gonna get flamed for this one], gets cleaner by the moment[practically]), and both are widely used(at least on windows). My only qualms are that i can''t figure out EXACTLY how OpenGl works(like those darn units) and my video card is currently having problems with DX8 (hoping to fix that soon though...). Well, there''s my opinion. Let the flaming begin! (if the mods don''t get to this threat first).


------------------------------
This pisses benjamin bunny off->If someone asks you "A penny for your thoughts" and you put your two cents in, do you get change?

------------------------------BASIC programmers don't die, they just GOSUB and don't return.
Oh, and to add to what i said before, OpenGL owes much of its popularity to people like John Carmack, NVIDIA, and NeHe. If it weren''t for people like them, and if it weren''t for John Carmack''s original decision to use OpenGL for Quake(since Direct3D sucked bigtime back then), OpenGL on Windows probably would have dies a quiet death in the Game development field last year with the advent of DirectX 8 (maybe even sooner).

------------------------------
This pisses benjamin bunny off->If someone asks you "A penny for your thoughts" and you put your two cents in, do you get change?

------------------------------BASIC programmers don't die, they just GOSUB and don't return.
This is probably a stupid question, but can you mix them? I mean they are just objects in the computer, so can I take OpenGL and use it for part of my engine, then add on parts that I want from Direct3D (like the much vaunted pixel shaders) to the engine?

BTW, to any mods that want to lock this: I''m not trying to start a flame war, I''m trying to get answers... go lock somebody else''s thread and let me ignore the flames that might come along.
You can not mix them except perhaps for libraries glu and d3dx. Direct3D is better for a novice because it has support functions unfound on opengl. For example, there is a 2D fill function that you can use to fill 2D and 1D attenuated per-pixel textures/maps with your own algo(circular for example) I''ve done this and it''s easy. That way you can make your own resolution attenuated maps. There are other useful functions in d3d. Opengl is pretty bare bones even with glu. Then again, if you''re going platform independent you will definitely want to work with opengl. Opengl2 will be interesting to watch and compare to dx9.1. Can''t wait for both to be released as well as new video cards that support those apis.
Now I know that if you want to get into the more advanced OpenGL functions that are outside the standard API, you can use calls that go straight to the driver of the video card. I''m thinking of a lot of the newer functions that are within the newer GeForce3 and 4 cards and the Radeon series. While they''re not OpenGL functions per se, they do work within in OpenGL and are largely the same thing in effect.
I should have mentioned that I was thinking of opengl 1.1 that is bare. The vendor extensions in effect provide the same services as those in d3d except for the d3dx library which is quite good. To me the d3d is a whole package deal in one place. I think that is it''s greatest strength. The one thing that bothers me is the blending unit syntax you must learn for ati and nvidia cards while d3d contains single syntax for both cards(any other as well). Knowing two architectures puts burden on developer. Opengl2 will probably cure this placing both cards under same roof if only for a minimal time before they''re back to extensions. Hopefully by then developers will have enough functionality in ogl2 to last them for some time. Like ogl1.1 had. The extensions really put me off as I only spend small percentage in gfx stuff and the rest in other aspects of game/tool development.
You can, and probably should, mix OGL with all of DX except D3D. You could get away with mixing OGL and D3D in the same application as long as you COMPLETELY shut down one system before trying to start the other system. A process that makes very little sense.

Something else to think of. The vast majority of what D3D has that OGL does not have is also not implemented on most graphics cards at this point. I started learning 3D graphics with DX and had a hell of a time. When I discovered OGL, it seemed to help me understand the other stuff a little easier.

Oh well,
Landsknecht
My sig used to be, "God was my co-pilot but we crashed in the mountains and I had to eat him..."
But folks whinned and I had to change it.

This topic is closed to new replies.

Advertisement