Heya aspiring leet OGL coders,
The recent spike in OGL chatter on these boards coincided with the end of a phase of an old pet project of mine. Some of you may still remember from old discussions a home-brewed OGL testbed framework of mine - NTSH-JASS. Well, I dusted up the old framework a tad recently as I needed a similar tool on my job - i.e. something much lighter than a full-blown production engine, but still allowing for streamlined shader prototyping, and open-sourced.
So, the framework's status quo today is (loosely):
So, in case you think it could be of use to you - here's the repo (under mercurial - a kick-ass SCM). Good luck.
ps: I'll do a proper ES 2.0 version soon (tm).
update: done. screenshot from the GL ES2 testbed app, run on an actual SoC hw:
(I have no idea whom to credit for the model - I stumbled upon it on the internetz and thought it was pretty, so if somebody knows the origins of it - shout)
Dragons_Slayer's great Scrooge McDuck model from the 256x256x256 thread:
The recent spike in OGL chatter on these boards coincided with the end of a phase of an old pet project of mine. Some of you may still remember from old discussions a home-brewed OGL testbed framework of mine - NTSH-JASS. Well, I dusted up the old framework a tad recently as I needed a similar tool on my job - i.e. something much lighter than a full-blown production engine, but still allowing for streamlined shader prototyping, and open-sourced.
So, the framework's status quo today is (loosely):
- desktop OGL 3.x core profile -compliant code - no legacy pipeline stuff. Even though not true ES 2.0, code is *extremely* ES 2.0 friendly, except it targets the desktop.
- Extremely lightweight - very simple abstraction layer on top of OGL.
- Simple yet efficient scene graph abstraction - *not* a spatial hierarchy, but a scene-graph backend designed for draw batching control. You can slap you spatial hierarchy over it.
- GLSL vertex and fragment shader -based flexible material system; actually, the material system is so flexible it practically does not exist. No, I'm not pulling your leg here - the material content and semantics are entirely a matter of agreement between client and shaders - the framework just provides a synchronization protocol between these two parties. As I mentioned, I needed a rapid shader prototyping environment.
- The shader-client agreement extends to the vertex buffers - fully customizable vertex formats - your meshes do not have to fit a mold - they can feed your vertex shaders whatever you want.
- Still, the framework offers reading (and some writing) of pre-established mesh formats - currently 3DS (partially read) and two custom formats - a simplistic ASCII one (read & write) and a full-featured production-quality one (read).
- The framework is designed to give rich feedback information to the developer. Missing a shader parameter? You will be notified, in-you-face. Screwed up with the OGL state? You will be yield at.
- The debug build of the framework is even harsher than that - asserts galore!
- The release build has no fat or clutter - everything in the pipeline is production-quality lean - from the VBO implementation, to the shader support mechanism. I also needed to be able to measure the performance of shaders.
- Project comes with a sample application - the actual testbed - it's entirely in main.cpp. A few GLSL shaders are also rolling around, mainly for mesh inspection/utility purposes.
- Project builds (and actually is known to work) under OSX (10.4-10.6) and linux (with a sane OGL/ES/EGL driver, of course). The 3rd party libraries used are: GLUT, GLEW (needed only under linux), and Lib3ds. And that's all.
- The framework is published on google code, under an MIT license, simply because google code does not offer a more permissive license. In practice the framework is public domain. You can use it in any way you see fit. Modify it, gut it, turn it inside-out. Use it in a commercial project. Don't publish your modifications - I don't really care. This is a 'hey, you might find this useful' freebie from me to you.
- As such the project currently offers no documentation - if something is not clear from the headers and comments - check the cpp file. If something is not clear in the cpp file - sleep on it and read it again on the next day.
So, in case you think it could be of use to you - here's the repo (under mercurial - a kick-ass SCM). Good luck.
ps: I'll do a proper ES 2.0 version soon (tm).
update: done. screenshot from the GL ES2 testbed app, run on an actual SoC hw:
(I have no idea whom to credit for the model - I stumbled upon it on the internetz and thought it was pretty, so if somebody knows the origins of it - shout)
Dragons_Slayer's great Scrooge McDuck model from the 256x256x256 thread:
Last edited by a moderator: