| |
You are here: Experts > 3D Graphics/Virtual Reality > OpenGL
Expert: Olaf Piesche
Date: 8/15/2004
Subject: OpenGL
Question 1.Whats the difference between OpenGL and DirectX
2. Although I have 64.0 MB Graphic Card, but I cant use "Motion Blur" while using OpenGL. How can I solve My problems?
thanx
Answer 1. Loaded question.
OpenGL and DirectX are not directly comparable. DirectX encompasses
APIs (see http://en.wikipedia.org/wiki/API) like DirectInput, DirectShow and Direct3D. Direct3D is Microsoft's 3D API, which could be compared to OpenGL as in it's a 3D API.
Both OpenGL and Direct3D expose the features of modern 3D hardware to programmers. Basically, they provide higher-level functionality to wrap low-level functions like vertex processing, texturing or lighting, which are often implemented in video hardware and exposed through the driver. In other words, the video hardware has certain functionality that the driver for the specific video card knows how to use. OpenGL or Direct3D are APIs that provide easy ways to access this functionality:
OpenGL / Direct3D
|
Driver
|
Hardware
However, keep in mind that the actual implementation of the OpenGL and Direct3D functions can be considered part of the driver itself.
In general principle, both are just different ways to access the functionality of the video hardware.
There are many differences between Direct3D and OpenGL. I personally found OpenGL more consistent and easier to learn and use. OpenGL is administered by the OpenGL ARB (Architecture Review Board), a consortium of hardware and software vendors (for example ATI, NVIDIA, Apple, 3DLabs, IBM, among others). The ARB meets several times annually to discuss new features and decide on their implementation into OpenGL.
New features are usually introduced to OpenGL as 'extensions'. While the OpenGL core (the minimum functionality that is specified by the OpenGL version) holds proven and widely adopted functionality, companies have the possibility of introducing optional extensions into their OpenGL drivers, and exposing new functionality, for example in the latest video cards, to developers. Developers of video games, for example, can query the driver for support of a certain extension (in different terms, the functionality that this extension specifies), and use the API functions the driver provides for this functionality.
If an extensions is widely used, the ARB usually modifies it to address issues it might have, and promotes it to ARB status. Once this happens, extensions are normally very quickly integrated by other hardware vendors into their own drivers. If an ARB extension exposes mature functionality that is widely used, it can be promoted to core functionality (integrated into the minimum OpenGL specification of the current version).
Extensions have the advantage of exposing new hardware features very early to developers, but the disadvantage that they can be supported by a certain video card or not. This can make supporting the latest features a little more complicated, but makes OpenGL a more flexible base for developing across multiple platforms while squeezing the maximum of performance and functionality out of a certain piece of hardware.
Direct3D on the other hand, is administered only by Microsoft. It has a very stable specification, because only one entity (Microsoft) determines the features to be incorporated. There is no extension mechanism, so once a feature set is defined and a Direct3D version released, no new functionality can be added until the next release.
Because OpenGL is an open specification, many companies are involoved in defining its specification. OpenGL is a platform independent specification (OpenGL drivers for all major video cards exist for pretty much any computer platform imaginable). Through this, OpenGL is used for the majority of scientific visualisation and opens a possibility for running the same graphics code without major changes on multiple operating systems.
2. What "Motion Blur" are you talking about? In a specific game or application? What is the application and the circumstances? Please describe in more detail.
Add to this Answer
Ask a Question
|
|