This thread will slowly grow to become the FAQ for the OpenGL forum. Moderators and admins can edit this thread to add or remove or change questions and answers.
If you have a question which is not contained in this FAQ, feel free to post it in this forum and the moderators will add it to this FAQ if someone answers it properly.
- Isn't DirectX better than OpenGL?
- What is/How do I implement a certain feature in OpenGL or where can i find good resources on that topic ?
- What is VSYNC (Vertical Syncronization) and how do I turn it off in OpenGL?
- Which is better: Normal glTriangle3f() calls or Vertex Arrays?
- What is the difference between vertex arrays and vertex buffers?
Q1: Isn't DirectX better than OpenGL?
This is a question asked in many different forms. Sometimes not even a question. The simple answer is that neither is better overall. They have different features and parts, but neither is better or worse. You'll need to find this out for yourself.
Q2 : What is/How do I implement a certain feature in OpenGL or where can i find good resources on that topic?
The number one resource for you is google. Try finding information through google first. This might answer many questions you have much more complete than any of the people around here could do in one post. Also you learn much quicker if you find out about things yourself instead of asking for a ready solution. If you can't find what you want you are of course encouraged to ask your OpenGL related questions here. In fact, if you can't find any resources about your topic on the web you might want to post a suggestion for a tutorial or an article here: Article & Tutorial Suggestions.
Because devmaster.net is trying to present original and unique content we always appreciate such suggestions.
Q3: What is VSYNC (Vertical Syncronization) and how do I turn it off in OpenGL? The refresh rate of the monitor is the number of times the monitor "refreshes" the screen in one second. Most monitors have a refresh rate of 85 Hz (Hz is a unit which is equivalent to 1/second). It is kind of similar to frames per second. When VSYNC is on, your OpenGL application will not draw faster than the monitor can handle. So if your refresh rate is 85 Hz, you won't be able to have more than 85 frames per second. However, when disabling it, you remove that limit/restriction off, and your OpenGL application will draw as fast as it can (basically you get more than 85 frames per second). However, there is a tradeoff; when disabling vsync, you get tearing or jerkness, which means motion is not smooth. This is because your application is drawing faster than the monitor can handle. Having vsync on will produce very smooth effects. When debugging, you can have it off to test the performance of your program (or even do benchmarking). For the final release of your product/application, have vsync ON always to create maximum visual quality.
To disable VSYNC in OpenGL, you will have to use extensions. Therefore, your OpenGL driver must support it. Check this thread for details.
Q4: Which is better: Normal glTriangle3f() calls or Vertex Arrays?
Vertex arrays are usually faster since they require little function-call overhead. That is, using vertex arrays, only one call for drawing on object is required.
However, for glTriangle3f, you will be required to call it multiple times, which could present some performance costs. See this thread for another explaination.
Q5: What is the difference between vertex arrays and vertex buffers?
Check this thread.