What happened to OpenGL?
by Kyrah Abattoir · in Torque 3D Professional · 02/16/2011 (7:02 am) · 17 replies
A looong time ago when i asked about OpenGL in TGEA i was told that the devs where focusing on having things stable on DirectX before considering about making TGEA compatible with OpenGL.
Well now TGEA became Torque3D, is there still no plans for supporting OpenGL?
Well now TGEA became Torque3D, is there still no plans for supporting OpenGL?
About the author
3D artist, programmer, game designer, jack of all trades, master of none.
#2
02/16/2011 (8:01 am)
Although OpenGL on OS X with Torque has lagged a bit, it is there. Actually tried a Mac awhile back and to be honest OpenGl just doesn't compare to DirectX performance or quality.
#3
OpenGL on Windows is a whole other matter. If you won the GPU lottery (i.e. picked NVidia), everything *might* be fine. But anything else usually performs better with the native 3D graphics system. DX on Windows, GL on Mac. It's the way things are.
02/16/2011 (8:21 am)
That would be Apple's graphics drivers, and not the fault of OpenGL. GL on Linux has no issues when compared to other platforms in other engines. Apple have been focusing on improving their awful, terrible, hastily cobbled-together drivers since Valve called them out, and they've improved. Still lagging behind in features, but improved a lot in speed.OpenGL on Windows is a whole other matter. If you won the GPU lottery (i.e. picked NVidia), everything *might* be fine. But anything else usually performs better with the native 3D graphics system. DX on Windows, GL on Mac. It's the way things are.
#4
02/16/2011 (10:37 am)
Yeah but ATI/AMD being completely incompetent when it comes to anything else than DirectX doesn't mean openGL is a no go, DirectX being windows only it's kinda limiting for indy developpers.
#5
It runs on Windows (in Direct3D), and Mac (in OpenGL). You shouldn't need to care unless you're trying to do things the engine doesn't directly support (a lot of which can be done with the GFX interface)
You shouldn't be writing OpenGL or Direct3D code, you should be working with the game engine, in its API (the GFX layer) for pretty much everything, and you get the nice cross platform D3D/OpenGL support on their appropriate platforms.
02/16/2011 (11:00 am)
Should the engine's choice of graphics API matter as the indy developer though?It runs on Windows (in Direct3D), and Mac (in OpenGL). You shouldn't need to care unless you're trying to do things the engine doesn't directly support (a lot of which can be done with the GFX interface)
You shouldn't be writing OpenGL or Direct3D code, you should be working with the game engine, in its API (the GFX layer) for pretty much everything, and you get the nice cross platform D3D/OpenGL support on their appropriate platforms.
#6
If I were to make a game from scratch, to run on both Windows and OSX, I'd rather go to through the work of making the Windows version DX-only and use OpenGL only for the Mac version than having to deal with writing a single OpenGL back-end that has to support four different driver stacks (Intel, AMD, Nvidia and Apple).
02/16/2011 (12:33 pm)
To this very day, you will run into bugs and weirdness in both Intel and AMD Windows OpenGL drivers. DirectX support is far more stable, that cannot be contested (and even then you can run into oddities in the not-so-well-defined areas of the API).If I were to make a game from scratch, to run on both Windows and OSX, I'd rather go to through the work of making the Windows version DX-only and use OpenGL only for the Mac version than having to deal with writing a single OpenGL back-end that has to support four different driver stacks (Intel, AMD, Nvidia and Apple).
#7
Currently it seems nobody sees the problem unless you use SecondLife or java 3D games.
02/16/2011 (12:37 pm)
Yeah but if there was more openGL only apps it would force the two bad students of the pack (Intel/AMD) to get their stuff working.Currently it seems nobody sees the problem unless you use SecondLife or java 3D games.
#8
Anyway, I'm pretty close getting T3D OpenGL on Windows done as you can see by my current progress: dottools.net/downloads/imgs/t3d/.
I will be posting at least two resources once I'm done for T3D OpenGL on Win32 and T3D fully working on Linux. I figured I should comment on this thread so that you'll at least know somebody is working on the OpenGL support. :)
02/16/2011 (2:41 pm)
I assume you don't hang out on maxgaming's IRC #garagegames channel, but I have made it my own personal goal to get Torque 3D OpenGL working on Windows and T3D also working on Linux. Thanks to the efforts by Fyodor Osokin and others, the hard work for T3D on Linux is pretty much done for me, and all I have to do is get the GFX working as far as Linux is concerned. Even got T3D dedicated server compiled using gcc-4.4 and running under Debian 6.0 Squeeze without much trouble (just a few header file modifications for C++ template changes).Anyway, I'm pretty close getting T3D OpenGL on Windows done as you can see by my current progress: dottools.net/downloads/imgs/t3d/.
I will be posting at least two resources once I'm done for T3D OpenGL on Win32 and T3D fully working on Linux. I figured I should comment on this thread so that you'll at least know somebody is working on the OpenGL support. :)
#9
02/16/2011 (3:00 pm)
This is great news!
#10
I agree in practice with Bryan. To me, it is completely unimportant how the graphics are presented to the end user. You will not find a Windows machine that doesn't run DirectX (though you will find several that won't support T3D due to wimpy hardware). You have the same situation with Mac and OpenGL. As long as my customers can play my games I'm pretty unconcerned with how it all happens.
02/16/2011 (9:20 pm)
I agree in principle that OpenGL support in Windows would be nice. More options is a good thing.I agree in practice with Bryan. To me, it is completely unimportant how the graphics are presented to the end user. You will not find a Windows machine that doesn't run DirectX (though you will find several that won't support T3D due to wimpy hardware). You have the same situation with Mac and OpenGL. As long as my customers can play my games I'm pretty unconcerned with how it all happens.
#11
04/08/2011 (11:14 am)
Yeah in principle Richard, Direct3D is windows only, but the more Direct3D specific the engine gets, the less likely it is to have one day a running linux version. because developpers have "better things to do" than converting a D3D engine to GL.
#12
@Nathan - which approach did you use? And, I see your file t3d1.1b3_modernLinuxFix-20110303.patch - is this for the renderer or for the dedicated server?
My only gripe with OpenGL is that it's committee-controlled. This causes horrible delays in feature support that you don't see in proprietary solutions. It's unfortunate, because then each manufacturer has to implement extensions to support their new hardware features, and this leads back to the days of writing a rendering pipeline for each brand of graphics card you want to support (only 2 major paths right now, but hey). I think Microsoft was a member at one time, but they're not now - I wonder why....
How well does DirectX perform under Wine? I know that defeats the purpose, just wondering....
04/08/2011 (1:33 pm)
I wonder if it would be terribly difficult to wrap SDL's renderer for use with T3D. I like SDL, but I haven't done much Linux programming so I'm not very familiar with it. Then again, perhaps a dust-off of the old TGE renderer might be easier. Or maybe there's a way to borrow the Apple OpenGL renderer for Linux. I do not know. @Nathan - which approach did you use? And, I see your file t3d1.1b3_modernLinuxFix-20110303.patch - is this for the renderer or for the dedicated server?
My only gripe with OpenGL is that it's committee-controlled. This causes horrible delays in feature support that you don't see in proprietary solutions. It's unfortunate, because then each manufacturer has to implement extensions to support their new hardware features, and this leads back to the days of writing a rendering pipeline for each brand of graphics card you want to support (only 2 major paths right now, but hey). I think Microsoft was a member at one time, but they're not now - I wonder why....
How well does DirectX perform under Wine? I know that defeats the purpose, just wondering....
#13
Can we really release a game that looks different and performs differently on different platforms?
04/08/2011 (6:06 pm)
Personally for an engine that is meant to support multiple platforms I see having multiple rendering modules as a waste of time compared to just having OpenGL as the primary focus.Can we really release a game that looks different and performs differently on different platforms?
#14
@Edward: Can we release a game that performs really well always on one platform, and performs like crap forever on another?
04/08/2011 (7:31 pm)
SDL isn't a renderer. It's a canvas kit, getting you cross-platform support for very basic windowing (fullscreen, windowed, mouse input, mouse enter/leave, click close), and a foundation to start outputting OpenGL.@Edward: Can we release a game that performs really well always on one platform, and performs like crap forever on another?
#15
OpenGL in Windows (and until *very* recently, OSX) is very nice when you:
1) Restrict yourself to OpenGL 2.0/2.1.
2) Write your code for a single GPU.
Anything beyond that is a major headache (aka: dealing with floating-point render targets, large shaders, etc). There are posts on this forum about the crazy bugs the guys faced getting T3D to work in OSX, where OpenGL is the *only* graphics API. Even Unity 3D, the paragon of cross platform, uses D3D in Windows.
04/10/2011 (8:33 am)
Just FYI: The PC version of Rage uses Direct3D. Carmak gave up on OpenGL in Windows.Quote:Can we really release a game that looks different and performs differently on different platforms?You're saying we should downgrade T3D on Windows on the principle of getting it to run on OpenGL?
OpenGL in Windows (and until *very* recently, OSX) is very nice when you:
1) Restrict yourself to OpenGL 2.0/2.1.
2) Write your code for a single GPU.
Anything beyond that is a major headache (aka: dealing with floating-point render targets, large shaders, etc). There are posts on this forum about the crazy bugs the guys faced getting T3D to work in OSX, where OpenGL is the *only* graphics API. Even Unity 3D, the paragon of cross platform, uses D3D in Windows.
#16
04/10/2011 (7:48 pm)
@Ronny - Ah, like I said, I'm not real familiar with SDL. I just remembered having access to OpenGL through it. I appreciate the info.
#17
04/14/2011 (7:35 am)
A big problem is that the shaders are not compatible. If you are planning a cross-platform game, and you develop your game on Windoze using HLSL shaders, many of them won't work in OpenGL.
Employee Michael Perry
ZombieShortbus