Advertisement

Why we have a lot of 3d graphic APIs?

Started by September 10, 2018 01:00 PM
25 comments, last by swiftcoder 6 years, 4 months ago
3 hours ago, Hodgman said:
5 hours ago, lawnjelly said:

My personal preference would be for some stable higher level APIs that 'translate' down to the some more changing lower level APIs that are also accessible

OpenGL should really transition into this!

I'll also take this opportunity to plug Direct3D11On12. While it's not (yet) open-source, it is otherwise basically what you asked for, a stable higher-level API which translates to a lower level API which is also accessible.

It is generally a good thing to have multiple API's.  There is a reason we used to not allow monopolies in America.

Competition between the API's is what drives efficiency and features, and there aren't so many relevant API's as of now.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Advertisement

Yeah, it still amazes me that there is no OpenGL SDK out there, which makes it a nightmare for people new to OpenGL.

You have to download fifteen different libraries from all over the internet, build them, and pray that the tutorials you are following will still work and are relevant to the said libraries.

Khronos seems to write the standard but give no one the tools to actually use it.

As someone who writes programs primarily for desktop, I figure it isn't worth the hassle supporting OSX or Linux. 95% of the bother for 5% or the market. No thanks...

2 hours ago, DarkRonin said:

Yeah, it still amazes me that there is no OpenGL SDK out there, which makes it a nightmare for people new to OpenGL.

I think there's lib/header files in all major OSes (although on Windows, it dates back to pre-OpenGL2 and have to load everything from extensions --- if I recall correctly). What else do we need for an SDK ?

http://9tawan.net/en/

23 minutes ago, mr_tawan said:

I think there's lib/header files in all major OSes (although on Windows, it dates back to pre-OpenGL2 and have to load everything from extensions --- if I recall correctly). What else do we need for an SDK ?

Pre OpenGL2?

Isn't that like saying 'you have DirectX 7, what more do you want?'

Look at the Windows SDK's. If an update comes out for DirectX, we get it straight away in one nice stable package. We don't need to go and source packages from all over the place.

As opposed to OpenGL where we have to fight with SDL, GLUT, GLEW, and who knows what else.

1 hour ago, DarkRonin said:

Pre OpenGL2?

Isn't that like saying 'you have DirectX 7, what more do you want?'

Look at the Windows SDK's. If an update comes out for DirectX, we get it straight away in one nice stable package. We don't need to go and source packages from all over the place.

As opposed to OpenGL where we have to fight with SDL, GLUT, GLEW, and who knows what else.

Hmm... OK. I think I'll check if the current SDK if they have updates the header files or not. May be we could open an issue for MS so they updates the header files for newer version.

http://9tawan.net/en/

Advertisement
5 hours ago, DarkRonin said:

As someone who writes programs primarily for desktop, I figure it isn't worth the hassle supporting OSX or Linux. 95% of the bother for 5% or the market. No thanks...

Disagree, i could say adding another platform is more likely adding 5% of work for that, but then having 95% less competition on those platforms :) (I remember some indies said they only survived because they did support OSX and Linux, for example Frictional Games.)

2 hours ago, DarkRonin said:

As opposed to OpenGL where we have to fight with SDL, GLUT, GLEW, and who knows what else.

I disagree with this as well. I've never used one of those libs - they are not necessary even if you target multiple platforms. It is not hard to create GL contexts, load extensions or handle user input yourself by using a handful of OS functions. Less trouble than keeping those libs updated or replacing them when they die.

For me GL always was easier to use than DirectX in this regard, because it did NOT require to download a big SDK, update it and so forth. You only download a small number of header files from Khronos and the implementation comes with graphics drivers. That's fine and i cant's see any issue there. GL really has other problems about the API itself. (I remember a time when i neither had hard disk space nor download speed for DirectX SDK, seriously :D )

Just to point out that's very subjective. Nowadays there's nothing left i like about GL myself anymore. (With the exception you can still use glVertex() to get some quick visuals without a need for 3000 lines of code, shaders or a lib just to draw a line.)

 

 

9 hours ago, JoeJ said:

For me GL always was easier to use than DirectX in this regard, because it did NOT require to download a big SDK, update it and so forth. You only download a small number of header files from Khronos and the implementation comes with graphics drivers. That's fine and i cant's see any issue there. GL really has other problems about the API itself. (I remember a time when i neither had hard disk space nor download speed for DirectX SDK, seriously :D )

If that is the case they don't make the headers easy to find.

I have been staring at https://www.opengl.org/sdk/ for years, thinking 'where is it?'.

49 minutes ago, DarkRonin said:

If that is the case they don't make the headers easy to find.

I have been staring at https://www.opengl.org/sdk/ for years, thinking 'where is it?'.

https://stackoverflow.com/questions/3933027/how-to-get-the-gl-library-headers

https://www.khronos.org/registry/OpenGL/index_gl.php

That said, I'd use a helper library (glad) instead, cause on Windows newer Versions need manual function loading:

https://github.com/Dav1dde/glad

https://glad.dav1d.de/

1 hour ago, wintertime said:

See what I mean? No links from OpenGL itself. You can see what I mean for people who are new to OpenGL, how easy it is to be turned away from it.

 

Quote

If you're on Windows, they are installed with the platform SDK (or Visual Studio). However the header files are only compatible with OpenGL 1.1. You need to create function pointers for new functionality it later versions. Can you please clarify what version of OpenGL you're trying to use.

Again, what a nightmare to the OpenGL newcomer.

 

 

I'm all for giving OpenGL a go, but there is no two set of tutorials (or references) out there that agree on how to go about it.

Look at DirectX 11 on the other hand (I'm no fanboy, just using it as an example). Every reference out there says you need to include "d3d11.h" and link "d3d11.lib" and you can go and use DX11 to your hearts content.

 

OpenGL is just plain confusing to set up, from the standpoint of someone completely new to it, with no help from opengl.com at all. They don't do themselves any favours.

 

This topic is closed to new replies.

Advertisement