Live data from Hacker News

Direct3D to OpenGL abstraction layer

github.com

41–50 of 111 posts

Re: Direct3D to OpenGL abstraction layer

#41
post #13

Not sure here but don't all major engines already support OpenGL ootb ? Basically any engine thats runs on PS3/PS4 does like UnrealEngine, Cryengine, idTech, Unity and most indie/open source engines are OpenGL anyway. All engines that target Android/iOS are OpenGL too. Even for things like XNA which was Xbox/DirectX only there is MonoGame to port it to *nix platforms easily. So if you have rolled your own DirectX-onl…

Not DirectX only per se but DirectX first and OpenGL later.

I think a lot of games featured in Humble Bundles used to be that way. A lot of games used to be (and some still are) initially only released on Windows with Mac/Linux ports released later.

Re: Direct3D to OpenGL abstraction layer

#42
post #13

Not sure here but don't all major engines already support OpenGL ootb ? Basically any engine thats runs on PS3/PS4 does like UnrealEngine, Cryengine, idTech, Unity and most indie/open source engines are OpenGL anyway. All engines that target Android/iOS are OpenGL too. Even for things like XNA which was Xbox/DirectX only there is MonoGame to port it to *nix platforms easily. So if you have rolled your own DirectX-onl…

PS3/PS4 commercial games do not use OpenGL and never have. This myth needs to die. http://scalibq.wordpress.com/2010/05/15/sony%E2%80%99s-plays...

"the advantage of a console: hardware is fixed". YEP! Why use an abstraction layer when you can just code to the metal.

Re: Direct3D to OpenGL abstraction layer

#43
post #21

Earlier quoted context omitted.

Note that I said in many areas. Not all. A history lesson of why many actually prefer the Windows stack can be read here: http://programmers.stackexchange.com/a/88055/51669

And you did not say which areas and why it is behind in them. I see multicore support in another comment, and maybe things related to geometry shaders. What else am I missing?

Geometry shaders are in OpenGL 3.2. Almost any complaints about "OpenGL is missing X feature" ignore the existence of the entire 4.0 generation as well.

Which is kind of understandable - I use Mesa as my "assumed" OGL level, and it just hit 3.3. So you absolutely can't assume anything from the 4 line.

Though I still couldn't use geometry shaders as an assumption, because as recently as Sandy Bridge Intel GPUs didn't support it. Add on if you want to port to mobile you need to refactor to GLES2.

Re: Direct3D to OpenGL abstraction layer

#44
post #7

Earlier quoted context omitted.

Wine is a bit different, I'm not 100% sure but it's more like a reimplementation of native calls than anything. But yeah, this is awesome. As a side note, developers who want to make games run on OSX and Linux should just stop targeting DirectX. This is good for already-existing games and port them over, but in 2014 if you're still writing games in DirectX, you're most likely doing it wrong.

In addition with OpenGL you can access the latest features even on Windows XP. Saving you from writing separate DX9/10/11 renderpaths. But this lib is for those countless DX9 games already in existence. Valve is making SteamOS ports as easy as possible.

You still have to write an absurd amount of spaghetti code around testing GL extensions that are available. Especially when you consider the Intel IGPUs from the last 5 years - the first gen is only 2.1, second gen 3.1, and Ivy Bridge and above is 4.3. But besides those the Nvidia / AMD parts have supported 3.3 and above since 2006.

Of course, if you are targeting Windows XP... you got to think back a lot further than that. In some ways theres some elegance in how you can write GLES2 shader code and have it run everywhere, including on mobile, and just check extensions for everything else you use.

Re: Direct3D to OpenGL abstraction layer

#46

This is huge, really huge for anyone who write DirectX games and want to make them run on OSX/Linux. This is basically what a part of Wine do, am I wrong?

Not really, DirectX and OpenGL are abstractions to the graphic cards so you don't have to program directly on them (specially considering how they differ between vendors). If you allow me to use a very loose analogy it would be like ODBC for graphics cards. Wine is a reimplementation of the WinAPI on Linux, so Windows applications can use the same functions in WinAPI even if they are on Linux. Also, most AAA engines…

You know, CPUs don't have problems using radically different architectures under one ISA (compare Pentium 2 to a core i7 or Kaveri part). The ISA evolves over time and newer instructions become more prevalent, but I never understood why graphics hardware couldn't coalesce around an extensions based ISA for hardware in general.

Re: Direct3D to OpenGL abstraction layer

#49

Earlier quoted context omitted.

PS3/PS4 commercial games do not use OpenGL and never have. This myth needs to die. http://scalibq.wordpress.com/2010/05/15/sony%E2%80%99s-plays...

"the advantage of a console: hardware is fixed". YEP! Why use an abstraction layer when you can just code to the metal.

Time? Do you write all your applications in assembly?

Re: Direct3D to OpenGL abstraction layer

#50
post #38
post #34

Earlier quoted context omitted.

Somehow the FOSS crowd seems to propagate this myth that only Microsoft has vendor specific graphics APIs and the rest of the world runs on OpenGL. Never understood how it got born.

It was probably born out of the fact that this is the truth for PC gaming, where Microsoft uses DirectX and "all" the other platforms use OpenGL. For a long time, console game development was obscure and unaccessible (and to a large extent, this is still the case), so aspiring game developers had somewhat of a tunnel vision when it came to game platforms.

> It was probably born out of the fact that this is the truth for PC gaming, where Microsoft uses DirectX and "all" the other platforms use OpenGL.

Except Acorn, Atari, Amiga, Mac OS (<= 9) never had real OpenGL support as well.

Post reply on HN