I was once a Dark Basic user, and now, I am thinking about moving up to more advance 3D graphic programming. I wonder if anyone can help me with what should I do next. I am thinking of taking up C++ and a 3D engine, but don’t really know which to take up:
Forgive me, but I’m VERY new to C++. I got myself a few C++ Books, such as Teach yourself C++, Sam’s, and a few more. Please help me. Thanks.
OpenGL should be easier to learn than DX but obviously we’re all biased here. It’s also portable if you program on different platforms. Although there are free game engines out there, you would learn the most from developing a game engine yourself, like most people here do. The problem is, 3D graphics programming using OpenGL requires fairly advanced C/C++, geometry and linear algebra knowledge. If you are really keen, I’d suggest you get comfortable with C first, then a bit of OpenGL, then C++ and more OpenGL. OpenGL is a C API anyway, so you don’t need C++ at first, and it is definitely harder to learn. Maths is an important skill for a better understanding of the 3D graphics world. The more you learn of the above skills, the more you’ll gain from applying them to 3D graphics.
I see. But which is more powerful? OpenGL? or DX? I’ve heard quite a lot about DX(you know, features such as shadowing, fogging…blah blah), but not really a lot about Opengl. Recently, on a post on DB, someone introduced me to OpenGL, so I thought that I could give it a try. But then, let’s just assume that I want to be a game programmer, will OpenGL provides me with the power I need to create a commercial game? (Once again, just assuming. )
Thanks for your time and patience.
It was posted on http://www.opengl.org a while ago that with new nVidia hardware (GF3), which DX8 is completely supported on in hardware, OpenGL with extensions is more feature-rich than DX8. It is also often said that an OpenGL app can be made to run faster than the equivalent DX program. So you get the best of both worlds! But again, beware what we say since we are all biased
The reason you hear a lot more about DX than OpenGL is because most games are developed using DX. There are a lot of reasons why that is so but just remember we have the world’s best game team on our side, Carmack & co. If they think OpenGL is alright, it must be OK, right?
[This message has been edited by ffish (edited 05-14-2001).]
Well, I don’t really care if anyone is bias. I just want to find out more about OpenGL. You see, when I checked out DX’s web site, I read their message board, and it seemed like DX’s codes are always changing. I was SOOOO close to buying a DX 7 book, when I heard that DX 8 is not the same as DX 7.
Can you pls tell me the features of OpenGL? I would really like to know what OpenGL offers. I am still at a junction right now, and I don’t want to take a wrong turn. Thanks!!
Well, that was rather helpful, and a real lot to read too. But then, I was hoping for a simpler answer. Something like:
or anything that OpenGL supports. By the way, I want to ask: Does OpenGL supports avi, jpg, wav and mp3s?
OpenGL does not have support for any file format what so ever. If you want to use a certain fileformat, you either have to code a loader yourself, or use a third party library.
By the way, I want to ask: Does OpenGL supports avi, jpg, wav and mp3s?
Hehe… OpenGL is a Graphics Library, not a sound, movie or image library
You can use OpenAL or DirectSound for sound and OpenIL for image loading (or FreeImage )
Wow! That sounds kinda hard. How do I create one anyway, say for mp3? I am not at all familiar with creating file loaders. Can anyone explain it to me? Say, a simple *.doc document? Thanks again.
I guess I COULD use some third parties libs. But then, I better learn creating one myself, OR I won’t learn anything. Hey, are there any good books on creating a game or game engine with OpenGL? I am really getting interested in OpenGL right now!
you would first need to know the format of the file. wotsit.org is an excellent website, offering documents explaining the file formats for 100s of files, including 3D files (*.3ds, *.o) from there, you can write a class to encapsulate the work of parsing the file. good luck
Sounds really cool, and looks cool too. I’m checking the site now.
I program on nVidia hardware. No flame wars please, fellow posters They have great developer support and a couple of their developers are regular contributors to these boards.
There are many great demos on their site (http://www.nvidia.com/developer) for you to have a look at, both in DX and OpenGL. Most of the demos should be able to be ported to either API. Bear in mind that if a company like nVidia develops hardware to support a particular functionality in DX or OpenGL, they are mad if they don’t then expose the same functionality in the other API. That’s why you’ll find that both APIs are almost on an equal footing.
As I mentioned above, apparently OpenGL on nVidia hardware is slightly more feature-rich at the moment, but that may change back and forth over time.
Regardless of feature support, I think that if you do choose OpenGL as your API, you’ve made the right choice.
Ok, I think I am starting to get it…OpenGL is a graphic library and works only for graphics, right? As for music, sounds, movies, I have to create my own libs, right? Well, sounds kinda challenging!
Anyway, what DOES OpenGL provides then? What kind of 3D file format? Any fogging? Any lights? Static shadows? Reflection? Tecture scrolling? Or do I have to code my own library too? Thanks.
By the way, I have been to wotsit.org, and still…I don’t really understand what they’re saying. But I will worry about that later. Wish me luck!
Alright, I suddenly thought of this question: Can I combine both DirectDraw+directsound+Direct3D + OpenGL+OpenIL+OpenWhatever? I had finally found a web site with a listing of a LOT of 3D Engines, and most of them read “OpenGL and DirectX support”. So is it possible for me to use both DX and OpenGL?
OpenGL doesn’t provide any type of file loading support whatsoever. That includes various 3d file formats. There are many that are very easy to code for, though.
You can do anything in OpenGL that you can do in DirectX, and often more. (If you’ve got a good card with good OpenGL drivers like nVidia cards.)
A lot of things like shadows aren’t automatic, but so far as I’ve seen, they aren’t automatic in DirectX either.
The engines that support both OpenGL and DirectX mean that you can use either one, not that it uses them both at the same time. Some cards might have better DirectX support than OpenGL support so it can be beneficial to provide a way to render with either. nVidia cards render better with OpenGL, in my experience.
This is the way I do it:
-> OpenGL for 3D (of course!!)
-> MCI objects for mid and wav playing
-> My own functions to load/save bmp and load 3ds files
-> Windows msg for keyboard input
However, the web offers you thousands of free libraries that can do all.
I think that you hear more about DX because it isn’t only a 3D api but DirectWhatever…
[This message has been edited by Teofuzz (edited 05-14-2001).]
Well, that’s too bad, eh? But I guess I can live through it, once I’ve got the gist of it.
But will you guys help? You know, I’m really short of sources and help on how to start. In fact, I don’t quite understand what OpenGL or how it’ll help me with game creation.
Here’s a question I have asked previously, What book will you suggest me to get? I hope to being able to fully understand OpenGL, you know. Thanks.