PDA

View Full Version : Please help...



joshualimm
05-13-2001, 04:03 AM
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:

1)OpenGL
2)DirectX
3)Power Render(?)
4)Fly3D(?)

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.

ffish
05-13-2001, 04:21 AM
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.

Have fun! http://www.opengl.org/discussion_boards/ubb/smile.gif

joshualimm
05-13-2001, 10:10 PM
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. http://www.opengl.org/discussion_boards/ubb/smile.gif )

Thanks for your time and patience.

ffish
05-13-2001, 10:40 PM
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 http://www.opengl.org/discussion_boards/ubb/smile.gif

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

[This message has been edited by ffish (edited 05-14-2001).]

joshualimm
05-14-2001, 01:11 AM
Well, I don't really care if anyone is bias. http://www.opengl.org/discussion_boards/ubb/smile.gif 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. http://www.opengl.org/discussion_boards/ubb/smile.gif Thanks!!

DaViper
05-14-2001, 02:41 AM
http://shiva.missouri.edu:88/SGI_Developer/OpenGL_PG/
this is about OpenGL 1.1 http://toolbox.sgi.com/TasteOfDT/documents/OpenGL/
some more information about OpenGL

hope that helps

Chris

joshualimm
05-14-2001, 02:58 AM
Well, that was rather helpful, and a real lot to read too. http://www.opengl.org/discussion_boards/ubb/smile.gif But then, I was hoping for a simpler answer. Something like:

fog
static shadow
multiple texture
avi support

or anything that OpenGL supports. By the way, I want to ask: Does OpenGL supports avi, jpg, wav and mp3s?

Bob
05-14-2001, 03:05 AM
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.

richardve
05-14-2001, 03:23 AM
By the way, I want to ask: Does OpenGL supports avi, jpg, wav and mp3s?

Hehe.. http://www.opengl.org/discussion_boards/ubb/smile.gif OpenGL is a Graphics Library, not a sound, movie or image library http://www.opengl.org/discussion_boards/ubb/smile.gif

You can use OpenAL (http://www.openal.org) or DirectSound for sound and OpenIL (http://www.openil.org) for image loading (or FreeImage (http://www.6ixsoft.com) )

joshualimm
05-14-2001, 03:26 AM
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. http://www.opengl.org/discussion_boards/ubb/smile.gif

joshualimm
05-14-2001, 03:30 AM
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! http://www.opengl.org/discussion_boards/ubb/smile.gif

coredump
05-14-2001, 03:33 AM
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 http://www.opengl.org/discussion_boards/ubb/smile.gif

b

joshualimm
05-14-2001, 03:37 AM
Sounds really cool, and looks cool too. I'm checking the site now. http://www.opengl.org/discussion_boards/ubb/smile.gif

ffish
05-14-2001, 03:38 AM
I program on nVidia hardware. No flame wars please, fellow posters http://www.opengl.org/discussion_boards/ubb/smile.gif 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.

Good luck!

joshualimm
05-14-2001, 03:46 AM
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. http://www.opengl.org/discussion_boards/ubb/smile.gif Wish me luck!

joshualimm
05-14-2001, 04:14 AM
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?

Deiussum
05-14-2001, 05:42 AM
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.

Deiussum
05-14-2001, 05:44 AM
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.

Teofuzz
05-14-2001, 11:06 AM
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...
tFz

[This message has been edited by Teofuzz (edited 05-14-2001).]

joshualimm
05-14-2001, 09:12 PM
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. http://www.opengl.org/discussion_boards/ubb/smile.gif

ffish
05-14-2001, 09:55 PM
Do a search of this board and maybe the advanced board for the topic "red book", "blue book" or "OpenGL Super Bible". I've never read the last one but the first 2 are great. The red book is online too, in older versions. If you want some general graphics books, here are some good ones:

Game Programming Gems edited by Mark DeLoura.

Real-Time Rendering by Tomas Moeller and Eric Haines.

Computer Graphics: Principles and Practice by Foley et al.

Advanced Animation and Rendering Techniques by Watt and Watt.

Texturing and Modelling by Ebert et al.

That should keep you busy for a while! They're in no particular order of importance. Rather, each addresses different areas of 3D graphics that is in itself important. If you had all of them (like I do http://www.opengl.org/discussion_boards/ubb/smile.gif ), your graphics library would be _mostly_ complete.

joshualimm
05-14-2001, 10:28 PM
ok, ok. I am busy now. I'm taking a look at Jef molo-whatever's web site right now reading his tutorials. Hey, I did tried looking for the red book, but most of the post was: go searching in your bookstore, go buy it...blah blah. http://www.opengl.org/discussion_boards/ubb/frown.gif

But then, at least I found a useful link. http://www.opengl.org/discussion_boards/ubb/smile.gif

ffish
05-14-2001, 10:34 PM
<sigh> I just couldn't be bothered typing out the name since everyone knows it as the red book: Woo, M., Neider, J., Davis, T. & Shreiner D. (OpenGL Architecture Review Board) 1999 OpenGL Programming Guide Third Edition: The Official Guide to Learning OpenGL, Version 1.2, Addison-Wesley, Massachusetts.

See how long it is? http://www.opengl.org/discussion_boards/ubb/smile.gif It's called the red book because of the cover (duh!). You can probably look at the cover at Amazon or any other book sellers' website along with links to the blue book (OpenGL Reference Manual).

Hope that helps.

joshualimm
05-14-2001, 10:44 PM
ok, I found the links for the Red Book, Blue Book and the OpenGL bible, only that the links no longer exist. [sob!] I am trying my luck at amazon now. http://www.opengl.org/discussion_boards/ubb/frown.gif

zed
05-15-2001, 12:28 AM
both opengl + d3d support
fog
multiple texture

neither opengl or d3d support
static shadow
avi support

joshualimm
05-15-2001, 01:06 AM
Thanks for the info. I'll keep that in mind. By the way, I have found the "red book" already. The intro was pretty interesting. http://www.opengl.org/discussion_boards/ubb/smile.gif I guess I will get the book. But just before, what does the book teach or cover? All of OpenGL? Or just partly?If so, what other books can I refer to? Blue book? Thanks. http://www.opengl.org/discussion_boards/ubb/smile.gif

Update:
I found a book on creating a 3D game engine. I wonder what you think of it. Should I get it? http://www.amazon.com/exec/obidos/ASIN/1558605932/ref=pd_sbs_b_4/107-0887579-7001320


[This message has been edited by joshualimm (edited 05-15-2001).]

anthony
05-15-2001, 01:17 AM
My suggestion is you learn a liitle more about C++ first. Reading the 'Thinking in C++' books vols 1 & 2 is a good start.

Once you know a little more about the language you'll be able to make the judgment for yourself. If you were using db, you will find C++ a big step, and it can be easy to get disheartened. So learn the basics of C++ first, code structure, objects, librarys, containers, etc...

Tip: Most important, learn about & use the assert command constantly, C++ is not interpreted language and as such debugging can be less helpful during runtime. The assert command goes along way to solving this (when used correctly) and will save you
time and time again.

joshualimm
05-15-2001, 01:33 AM
Ok, I guess you're right. But I have already bought Sam's teach yourself C++ in ** days. Can't I stick to that?

By the way, yeah, moving from DB to C++ is a very big leap. I like DB a lot, but looking back, DB just cannot give me the power which I want. So I turned to C++. http://www.opengl.org/discussion_boards/ubb/smile.gif

Eric
05-15-2001, 01:47 AM
As a side note regarding the APIs: OpenGL is an alternative to Direct3D, not DirectX. Direct3D is part of DirectX, which also features DirectInput, DirectSound, ...........

If you want an alternative to DirectSound, you might consider OpenAL (although I never managed to get it to work under NT...).

AFAIK, there is no alternative to DirectInput (although you can use straight Win32 API calls as well !) but you can use OpenGL for 3D, OpenAL for sound and DirectInput for controls...

Regards.

Eric