PDA

View Full Version : Just a few questions about the very beginning



Zdravko
02-18-2006, 08:17 AM
I am an OpenGL newbie here - with the following questions:
1. I read that specific functions in OpenGL can be executed only on a specific Video Card?
2. If so, how do I know what video card I need, in order to run an OpenGL application?
3. I am a C++ programmer and work under a simulation project, where an accurate 2d coordinate system is needed, that is options like zoom in/out, scale, rotate etc. Are these to be found and implemented easily in a 2d dimension? I also need a way to draw basic 2d shapes such as: rectangle, line, circle, and of course with their properties such as: fill color, line color, width etc. What OpenGL version do I need in order to have these features visualized ok?
4. I also have financial limit - the PC I will buy needs to be just efficient for some C++ + OpenGL programming. So far, no 3d abilities are needed, only speed. What graphic card can you recommend me?
5. I also search for a good IDE under Linux (GNOME desktop), which supports both C++ and OpenGL API. So far I've heard about Anjuta.
6. Further more - as I will do my application under the Linux environment - are there any specific to this platform headers, libraries etc that I need to be aware of?
Best regards

Zengar
02-18-2006, 12:35 PM
The OpenGL supports a flexible extension mechanism, that allows it to introduce new functionality with ease. Hovewer, this can lead to the portability problems as different hardware vendors often provide different extensions.
Luckily, popular and usefull extensions end up to be standartized and are included into the OpenGL core. So, for example, OpenGL 2.0 includes the mechanisms for programmable graphics pipelines.
Usually, you don't care much abou the extensions, if you don't write some very specific stuff.

A good graphics card for OpenGL developement would be a recent card from ATI or NVIDIA, with recent drivers.

OpenGL is a library for exposing the 3d-capabilites in a first place. If you want to do 2d, you'll be fine - just define your world to be 2-dimensional(draw a flat projection of it), effectively removing the z coordinate, but don't froget that you still work with a 3d API! You will still have to do everything with triangles. Shading, texturing etc. will work the same way as it does with actual 3d object. So, you will still need a recend 3d-card(musn't be very fast) if you want to use OpenGL.

Generally, 2d-emulation with OpenGL will be much faster as usual API's like GDI or X, as you use special dedigated hardware that is specialized on graphics processing. Also, it makes thing more easier, as you get automatical scaling, shading and tons of effects(you can even use shaders)

As you won't do advanced things, you could even stick to OpenGL 1.1 Depends of what you want to do...

On linux, you have to install a GLX driver for your graphics card, if you want hardware acceleration, otherwise use MESA. I only have experiance with NVIDIA, it went rather smoothly, I just had to run the installer and edit my xorg.conf

What preciselly do you meen by an IDE with OpenGL support? You can write OpenGL code even in a text editor.

Hope it helps...

songho
02-18-2006, 05:37 PM
I am an OpenGL newbie here - with the following questions:
1. I read that specific functions in OpenGL can be executed only on a specific Video Card?
2. If so, how do I know what video card I need, in order to run an OpenGL application?
I think you meant vendor specific extensions. But, I would like to avoid them for compatibilities. Instead, I would use ARB extensions, which are approved by the board. So you may have better chance all video cards support the extensions.

In order to know a certain extension supported, use glGetString(GL_EXTENSIONS). It returns all supported extensions as a string.


3. I am a C++ programmer and work under a simulation project, where an accurate 2d coordinate system is needed, that is options like zoom in/out, scale, rotate etc. Are these to be found and implemented easily in a 2d dimension? I also need a way to draw basic 2d shapes such as: rectangle, line, circle, and of course with their properties such as: fill color, line color, width etc. What OpenGL version do I need in order to have these features visualized ok?A short definition of OpenGL is a 2D and 3D graphics API. Yes, you can definitely use it for 2D application.


4. I also have financial limit - the PC I will buy needs to be just efficient for some C++ + OpenGL programming. So far, no 3d abilities are needed, only speed. What graphic card can you recommend me?If you don't need hardware acceleration, any card works okay.


5. I also search for a good IDE under Linux (GNOME desktop), which supports both C++ and OpenGL API. So far I've heard about Anjuta.I think Eclipse C/C++ IDE is more popular. And it is also platform independent.


6. Further more - as I will do my application under the Linux environment - are there any specific to this platform headers, libraries etc that I need to be aware of?
Best regardsYou may need glx.h and glxext.h. These are X-window specific headers.

Zdravko
02-18-2006, 09:34 PM
Thank you for the answers!

Hhhhh
02-28-2006, 07:09 PM
You might want to check out Code::Blocks IDE, it is multi-plaform, work perfectly with gcc and it even has OpenGL and SDL project templates.