
On Tue, Jun 9, 2009 at 6:02 AM, Carlos Rafael Giani < e0325834@student.tuwien.ac.at> wrote:
joel wrote:
Wasn't that stuff like Ogre3d do somehow. That's ages i didn't dip into these so take this question as a real naive one for the sake of the argument.
Examples are: - pixel formats supported by one API but not by the other (Direct3D: YUV textures, OpenGL: latc compression, at least I'm not aware of a D3D equivalent) - buffers: OpenGL Buffer Objects and Direct3D Buffers work differently, and allow for different semantics - render-to-texture differs significantly between the two (OpenGL FBOs allow have many more features than their D3D equivalents) - Direct3D10 unifies all types of buffers, OpenGL 3 doesnt - Render-To-Texture in D3D understands (0,0) as being the upper left corner, in D3D it is the lower left one - Direct3D shaders and OpenGL ones have different, incompatible approaches (D3D knows no shader linking for example) - Direct3D uses vertex declarations, OpenGL uses pointers (which actually are offsets when buffer objects are used) ....
This is a small excerpt of the differences. There are more subtle ones, such as locking flags for memory mapping allowing more fine-grained data transfers in D3D.
How about HLSL (High Level Shader Language)? This is a massive difference between the two.