PDA

View Full Version : Installation HELL - Real Beginner needs help



g0g0
09-09-2004, 01:28 AM
Hello everybody,

I coded 3D things in DirectX9 (not an engine but some sympathic things for a beginner), but since i'm intersted by linux i think i must start OpenGL and stop DirectX.

It's really difficult to understand the installation procedure (for windows 2000) !

- I have the library OpenGL32.dll version 1.5
- My include files (GL SDK) are in version 1.2 (flag "#define GL_VERSION_1_2 1") (i found that on web i don't remember where)
- I would like to install version 2.0 to have the benefit of all last powerfull fonctionnalities.

GLSetup don't work because i have windows 2000.
My manufacturer's graphic card (nVidia for GeForce4 MX) don't mention the "GL drivers".

How can i do ?
In didn't find any help in http://www.opengl.org in "How to install OpenGL" and in "OpenGL getting started" because the SDK is in 1.2 version ?!!!

the "Windows OpenGL library" link for OPENGL95.EXE extracts headers in version 1.1 ! :-(

So if this is the official site of OpenGL,
why isn't it possible to get de 2.0 headers, librarys and DLLs ?

Thanks.

--------------------------

I'm a real beginner, but some things in OGL did hurt me !
- No structures for vertex data and index data, all is called by functions, so any common vertice of N faces is calculated N times.
- No structures for matrices, no material structures, no light structures.
- It seems i have to make my own calculations procedures !!! (mirror matrix, inverse matrix, dot product, and so on) ???
(In DirectX9 we have a bank of all theses functions, in 2D,3D matrix and quaternions).
- If i want to multiply the light vector by the inverse of my object matrix, i don't see how i can do that with the matrix stack.

I'm actually really afraid of GL structure lack and SDK installation, and i must repeat in my head permanently "doom III was made with OpenGL, so it must be powerfull, doom III was made with OpenGL, so it must be powerfull".... ;-)

Any help or informations will be really appreciated !!!

Thanks !

g0g0

mikael_aronsson
09-09-2004, 03:15 AM
Hi !

Your compiler should come with all the files you need, as you have used Direct3D I guess that you use MSVC ?, if so then you have the header and import library with it.

Microsoft do not want any one to use OpenGL on windows so they only give you OpenGL 1.1 support with their header file (and I do not think this will change in the future).

This forum has a number of entries on extensions and how to use them, seach for extensions, you can also have a peek at this website and the FAQ.

And as usual, do not compare DirectX with OpenGL, compare Direct3D with OpenGL, OpenGL is just a rendering engine, there are tons of libraries with all the extra goodies you might want.

So, just make sure you have the latest driver for your hardware, there is nothing else that needs to be installed.

There are headers available for almost all OpenGL extensions (there was a topic about this a few days ago on this forum).

I hope that helps a bit.

Feature wise I would say that Direct3D and OpenGL can doi pretty much the same thing, the difference is that OpenGL works on most platforms, DirectX has of course the extra stuff for sound, mouse and so on, but this can be done with OpenGL to with SDL or any of the other choices you have.

Mikael

Relic
09-09-2004, 03:23 AM
Uh, oh. Relax!

- I have the library OpenGL32.dll version 1.5
No, W2K comes with an OpenGL32.dll from MS inside the system32 folder containing a SW OpenGL 1.1 implementation. Don't touch this file. The graphics drivers comes with a hardware implementation inside an Installable Client Driver (ICD) which is currently at 1.5.

- My include files (GL SDK) are in version 1.2 (flag "#define GL_VERSION_1_2 1") (i found that on web i don't remember where)
Headers and extension specs are at http://oss.sgi.com/projects/ogl-sample/registry/

- I would like to install version 2.0 to have the benefit of all last powerfull fonctionnalities.
There is no implementation for the OepnGL spec 2.0 shipping from anyone. The spec is only a day old. You need to use the extensions which are currently existing.
You need to request function pointers with wglGetProcAddress for any function which is not in the OpenGL 1.1 list of Microsoft's DLL anyway.
There are convenient libraries to do that. Download the NV SDK from developer.nvidia.com

The WGL equivalent for Linux is GLX, not sure how it's done there.

GLSetup don't work because i have windows 2000.
I have never seen any use in something like GLsetup.

My manufacturer's graphic card (nVidia for GeForce4 MX) don't mention the "GL drivers".
They are part of the graphics driver install package. Get drivers from here
http://www.nvidia.com/content/drivers/drivers.asp

How can i do ?
In didn't find any help in http://www.opengl.org in "How to install OpenGL" and in "OpenGL getting started" because the SDK is in 1.2 version ?!!!
W2K comes with OpenGL installed in the OS. The graphics driver adds hardware support and newer functionality in form of the ICD.

the "Windows OpenGL library" link for OPENGL95.EXE extracts headers in version 1.1 ! :-(
Don't use anything for W9x under W2K. Don't touch OpenGL32.dll or related DLLs.

So if this is the official site of OpenGL,
why isn't it possible to get de 2.0 headers, librarys and DLLs ?

Because it's too new.

I'm a real beginner, but some things in OGL did hurt me !
- No structures for vertex data and index data, all is called by functions, so any common vertice of N faces is calculated N times.

Search for vertex arrays, vertex buffer objects extension, glDrawElements, glDrawRangeElements, glMultiDrawElements, etc.

- No structures for matrices, no material structures, no light structures.
OpenGL is an API, not an SDK.

- It seems i have to make my own calculations procedures !!! (mirror matrix, inverse matrix, dot product, and so on) ???
(In DirectX9 we have a bank of all theses functions, in 2D,3D matrix and quaternions).
I think there are math libraries in the NV SDK.

- If i want to multiply the light vector by the inverse of my object matrix, i don't see how i can do that with the matrix stack.
For model space lighting? Right.
Maybe back off and start using OpenGL's lighting model in the beginning.

OpenGL is the most flexible and platform independent 3D API available. You can go from samples drawing a simple triangle with a few calls to full blown CAD systems, and Doom III of course. Unfortunately this felxibility calls for a steep learning curve.
Find the redbook.pdf, the OpenGL Programming Guide and read it!

g0g0
09-09-2004, 04:00 AM
Thank you very much to Relic and Mikael !!! :D

The structure was clearly explained, thanks !
(Relations between the driver version and the headers thus the extensions. So each new functionnality is defined in a header extension, it's clear !)
(and i presume that version 2.0 will include the majority of extensions in standard...)

Thank you for all the links, and for the reference to the "redbook", i'll read it !
(12.000 pages you say ? ;) ... )

So I'll search for math libraries, for any-picture-format loading libraries, for 3D objet loading libraries... to start really things other than a cube.

And ok ok i'll don't touch any or my GL files in my system !!! :)

Thank you !

I go work on it !