Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: OpenGL 3.3+ open source 3D engine?

Hybrid View

  1. #1
    Intern Contributor
    Join Date
    Mar 2010
    Location
    Winston-Salem, NC
    Posts
    62

    OpenGL 3.3+ open source 3D engine?

    I'm trying to locate open source 3D engines on Linux that use "modern" OpenGL 3.3+ with MIT / BSD / zlib licenses. Here's what I'm aware of:

    Ogre has a new 3.3 renderer that seems to be a work in progress. Forum entries seem to indicate that "modern" shader architecture stuff for both OpenGL and DX11 are unfinished. I haven't tried to build the sources yet to know where things are really at today. MIT license.

    G3D has OpenGL 3.3 but only for Windows and OS X. They used to have Linux support but discontinued it due to too many distros to deal with. A recent mailing list post says they want to reinstate the support. BSD license.

    ClanLib seems to support 3.3..4.3 but may not build on Linux. Haven't checked it out yet. Zlib license.

    Irrlicht claims OpenGL 3.x on their features page but I couldn't find concrete evidence of it poking at it further. Zlib license.

    Cube 2 looks like OpenGL 2.x. Someone's working on something called Tesseract which might have more "dynamic lighting" capabilities, but it's unclear that this means 3.x+. Couldn't pin it down. Zlib license.

    Additions and corrections welcome.

  2. #2
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    985
    To my experience there isn't any open source 3D engine that uses "modern" OpenGL, but I'd be happy to be proven wrong.

    Don't forget that just by restricting your API use to core OpenGL functions only doesn't mean that you do things in the "modern" or "proper" way. A naive port of a GL 1.x/2.x engine to 3.x/4.x would not mean they take any advantage of what the "modern" API provides.

    I think the bare minimum do "modernize" an engine is to do the followings:
    1. Conditional rendering support (if the engine relies on occlusion queries, which many engines do, it should use conditional rendering as much as possible to avoid CPU-GPU sync points)
    2. GPU based skeletal animation (many engines still use CPU side skinning, despite the technology for GPU based animation is there for a decade now)
    3. Instancing support (especially for particles, vegetation and other similar stuff)
    4. Uniform buffer support (remove all glUniform* calls, despite they are still in core, allows also for batching)
    5. Texture array support (use them as much as possible, batch draw commands together)

    The most important take away here is to batch. GL 3.x+ provides dozens of different tech to support this, unfortunately they go unused 99% of the time.

    Sorry if I went a bit off-topic, but I wanted to note these, and I would be interested too if anybody knows more recent news about open source 3D engines that I'm aware of (seriously, I'm pretty out-of-date).
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  3. #3
    Intern Contributor
    Join Date
    Mar 2010
    Location
    Winston-Salem, NC
    Posts
    62
    From reading the Ogre forums it's clear to me that they want to do it. However, it's equally clear to me that they've been dragging their feet on DX11 for years, with "work in progress" for an awfully long time. Strategically, I'm not thrilled about hitching my wagon to Ogre, because providing an API that paves over both DX11+ and OGL 3.3+ capabilities will be an ongoing source of complication. As in the past, I expect the development of the OpenGL and Linux side of things will languish fairly often. Unless the Linux commercial game market really takes off, now that Valve has deployed Steam there. Even then, Ogre being both strong and modern on Linux is something I wouldn't expect for 1..2 years. Anyone "more up" on Ogre is welcome to jump in with a different point of view, but I've been watching that community for a long time.

    ClanLib and G3D are OpenGL only engines / libraries, which strategically is a better position to work from. I don't know yet if they're making "good" use of 3.3+ as you point out. Nor if ClanLib is solid on Linux, nor if G3D is easy to get up and running on Linux once again.

    Lacking other suggestions I'll be running through evaluations of these 3 engines in short order. It's a pity to be on the eve of some kind of Linux "commercial game awakening," and to find that the open source projects simply aren't ready for it.

  4. #4
    Senior Member OpenGL Guru
    Join Date
    May 2009
    Posts
    4,948
    Necessity is the mother of invention, and there hasn't been much need for open-source game engines. And any "Linux 'commercial game awakening,'" won't change that. The number of people who have need of a game engine is simply not large enough to allow a large number of open source game engines to exist. Especially when there are cheap, functional alternative engines available.

    Remember: most of the new sort of indie games can be built on Flash or something like Unity or Corona. Why bother with C++ when you can just throw some 2D thing together in a scripting language?

  5. #5
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    985
    Alfonse, I somewhat disagree with you. If the only open source projects out there would be only the ones that there is need for, then we would have way less of them. A lot of people do open source projects just for fun and that's the beauty of it.
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  6. #6
    Intern Contributor
    Join Date
    Mar 2010
    Location
    Winston-Salem, NC
    Posts
    62
    Open Scene Graph claims OGL 3.x and 4.x support, but has some kind of weird LGPL based hybrid license. It's C++ based and they consider subclassing to be outside of the scope of the license, so that sounds usable if not my ideal MIT / BSD / zlib preference. They were an early CMake adopter and had a conscientious buildmaster back in the day. I'll see what it can do.

    EDIT: the CMake build system is solid, as expected. It appears to be one of those naive compatibility ports, or else just leaves the programmer to worry about 3.3+. You activate GL3 context support by providing your own GL3/gl3.h somewhere, then flipping a number of CMake variables that turn off fixed function pipelines and the like. No mention of GL4 or glcorearb.h. No modern shader files to exercise 3.3+. Since this is not a default capability of the build, and there's only 1 GL3 code example, I doubt very much this is getting any exercise. Rather, there's some structure in place to do GL3+ stuff if you intend to do it entirely yourself, and YMMV.

    The hybrid LGPL-derived license has an exception which allows the shipment of statically linked binaries, so that eliminates one of the major objections to using the LGPL in commercial work.
    Last edited by Brandon J. Van Every; 03-01-2013 at 06:59 AM.

  7. #7
    Intern Contributor
    Join Date
    Mar 2010
    Location
    Winston-Salem, NC
    Posts
    62
    Quote Originally Posted by Alfonse Reinheart View Post
    Necessity is the mother of invention, and there hasn't been much need for open-source game engines.
    Historically very true. For quite awhile, DX11 hardly existed on anyone's deployed HW, and modern OpenGLs didn't really exist in the wild. So yes, in that era I understood why the Ogre developers dragged their feet. I think the tide turned with DX11 some time ago though, so in that instance, it's more the inertia of open source, their tendency to not get gruntwork done. The DX11 foot dragging compounds OpenGL foot dragging because they believe they want to make a grand unified API covering both, and judging by the forums they don't seem to be ever getting it done.

    Anyways of the 3 engines I named, the lesser known G3D and ClanLib didn't build on my Linux box, so now I'll be focusing on what Ogre is currently capable of. If all of them require gruntwork, I'd sooner do Ogre gruntwork unless that proves to be a bad call for other reasons. Ogre manages to sustain a critical mass of developer interest despite its foot dragging.

    And any "Linux 'commercial game awakening,'" won't change that.
    I think it will in time. But the critical mass of perceived need in open source may not arrive for 1..2 years yet.

    The number of people who have need of a game engine is simply not large enough to allow a large number of open source game engines to exist. Especially when there are cheap, functional alternative engines available.
    But what would you suggest as "cheap" and based on modern desktop OpenGL 3.3+ for a Linux developer? Assume "hardcore" 3d game development, not this wimpy "look at my smartphone" stuff.

    Remember: most of the new sort of indie games can be built on Flash or something like Unity or Corona. Why bother with C++ when you can just throw some 2D thing together in a scripting language?
    I agree that a lot of the gaming money grab has been driven by mobile devices of rather modest specs, especially on iOS, and possibly more recently on Android although I haven't been paying attention. Personally I hate those devices. OpenGL ES 2.x is sufficient for such games, but not the kind of game development I personally want to do.
    Last edited by Brandon J. Van Every; 02-28-2013 at 07:37 AM.

  8. #8
    Newbie Newbie
    Join Date
    May 2013
    Posts
    2
    Quote Originally Posted by Brandon J. Van Every View Post
    I'm trying to locate open source 3D engines on Linux that use "modern" OpenGL 3.3+ with MIT / BSD / zlib licenses.
    Linderdaum Engine is OpenGL 3.3+ Core based and runs pretty nice on Windows (as on Windows, MacOS, Android and BlackBerry 10). OpenGL ES 2 is also there.

  9. #9
    Intern Contributor
    Join Date
    Mar 2010
    Location
    Winston-Salem, NC
    Posts
    62
    Unfortunately Linderdaum doesn't have the licensing I was interested in. It's free for non-commercial use, and available for commercial use at an unspecified price.

  10. #10
    Newbie Newbie
    Join Date
    May 2013
    Posts
    2
    Quote Originally Posted by Brandon J. Van Every View Post
    It's free for non-commercial use, and available for commercial use at an unspecified price.
    Lol Have you tried to reach them via mail?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •