Should I switch to Open GL?

Started by
49 comments, last by GameDev.net 17 years, 7 months ago
Hi, well I have been programming in Direct X for about a year now, I have about 2 or 3 books specific to direct 3D, and at this point, I dont think its for me. I really didnt want to switch to Open GL, because I'm a total fan of the way Direct X is object oriented, but I need something that is easier to program, understand, learn, and produce results, Direct X is just consuming to much time to understand, and produce results. I have absolutely 0 books on the subject of Open GL rendering, but have examined code, and it seems to be easier, to me atleast. So all of you reading this, do you think that I should switch to Open GL, or stick with Direct X. I don't care if Open GL, or Direct X is your absolute favorite thing, and you would gladly give up your first born to stay with it, I want an honest answer about what you think I should do.
Advertisement
openGL isn't really any simpler than DirectX. In my experience the only really confusing part about the APIs comes about if you don't know how rendering works or if you don't know the ins and outs of Linear Algebra. i.e. it's not really the API that's confusing but it's the concepts of rendering itself that's the confusing part.

What in particular is confusing you about DirextX?

-me
You should realize that DirectX != Direct3D. DirectX is the total package of objects and functions that will make your life easier. OpenGL can't be compared to DirectX, it compares to Direct3D. The difference between them is not that big. You can use Direct3D without DirectX, or you can OpenGL. Also keep in mind that OpenGL doesn't provide the ease of use that DirectX does. Loading meshes, fonts etc, you need to program yourself, while DirectX provides this functionality.

I myself use OpenGL, but expect it to be more work to get something complicated running then in DirectX. (I am still working on my mesh importer, while in DirectX importing .x files can be done in only a few lines of code).

Greetings.
Check out the tutorials at NeHe's, if you think its easier, switch, if not, stay, down the line, they do the same things.

By the way, its not obvious whether or not you know this, but you don't compare DirectX to OpenGL, you compare Direct3D to OpenGL.
Quote:Original post by Limitz
I myself use OpenGL, but expect it to be more work to get something complicated running then in DirectX. (I am still working on my mesh importer, while in DirectX importing .x files can be done in only a few lines of code).


I somewhat disagree, if you're using any other format other than .x, you still have to write an importer, COM initialization of D3D objects is IMO a lot more tedious than initializing an OpenGL context, and keeping track of whether you still have control over devices is something I much rather not have to worry about.
Yeah, yeah, yeah, I know Direct X does not equal Direct 3D, and not to compare Direct X, to Open Gl, simple mistake, so my bad. I will learn the basics of Open GL, and see witch ones works better for me.

Edit:

@pali- No "specific" part of direct X is confusing me, its more or less, everything about the api, it just pisses me off some times, I dont know if you can understand this, but I hate having to constantly refer to a book, online tutorial, or other source code, to complete something extreamly simple, that I have already done in the past. Most of the time, its just one measily function, or object I forgot to use, or properly initialize, but still, anoying. Eh, sorry if that makes no sence, I have the concepts down (very down if u ask me :P ), but aperently you are right, I dont understand the underlying systems, or w/e very well.
Or alternatively just implement the same thing in opengl and d3d and see which one do you like more :)
Beware of the Mighty Hamster!
good advice :D.
Id say go with openGL, mainly because direct3d has become foo bar'd with the direct39.0 versions. Now differnt (monthly) versions have to be downloaded to the clients machine. I used 8.1 for a while and visited the most recent version 9.0 a couple of days ago and was totally not happy.

I downloading the latest 9.0 sdk from MS. Lets just say, that any tutorial off the web that is labeled for 9.0 does not work because of this stupid problem of having (I assume)the static/DLL correctly dated versions for D3DX (the original reason I never got aroudn to using 9.0). It defeats the whole purpose of the direct3d com architecture of being backwards compatable with previous versions.

Basic point is, I downloaded directx 9.0 SDK and I could not run random directx 9.0 apps that I found off teh web. This is BS in my opinion, and is enough reason to not use the API. (BTW: im a pretty die hard windows fan, but direct3d 9.0 just is not user friendly, which is the whole point of windows)

so yeah, move away from directx, because they are mutilating it. Maybe when 10 come out, but then, it probably isnt backwards compatable with half the card people will have.

So yeah, OpenGL all the way... wow, i thought Id never be saying that (not that theres anythign wrong with opengl). Because al the directX you learned, is no longer easily ran by your potential clients.
Quote:Original post by Anonymous Poster
Id say go with openGL, mainly because direct3d has become foo bar'd with the direct39.0 versions. Now differnt (monthly) versions have to be downloaded to the clients machine. I used 8.1 for a while and visited the most recent version 9.0 a couple of days ago and was totally not happy.

I downloading the latest 9.0 sdk from MS. Lets just say, that any tutorial off the web that is labeled for 9.0 does not work because of this stupid problem of having (I assume)the static/DLL correctly dated versions for D3DX (the original reason I never got aroudn to using 9.0). It defeats the whole purpose of the direct3d com architecture of being backwards compatable with previous versions.

Basic point is, I downloaded directx 9.0 SDK and I could not run random directx 9.0 apps that I found off teh web. This is BS in my opinion, and is enough reason to not use the API. (BTW: im a pretty die hard windows fan, but direct3d 9.0 just is not user friendly, which is the whole point of windows)

so yeah, move away from directx, because they are mutilating it. Maybe when 10 come out, but then, it probably isnt backwards compatable with half the card people will have.


That has absolutely nothing to do with Direct3D. The DLL problem has to do with Direct3DX, which you don't have to use.

Quote:Original post by Anonymous Poster
So yeah, OpenGL all the way... wow, i thought Id never be saying that (not that theres anythign wrong with opengl). Because al the directX you learned, is no longer easily ran by your potential clients.


That's wrong too, since the API comes with an installer which can easily be included in your download or installer.

Also, AFAIK the DLL problem is being handled in Direct3D10, but that's just heresay from a friend.

As to the OP, go with what the other's have said and find out which one you like/can use better.

This topic is closed to new replies.

Advertisement