OpenGL - Web 2. 0 Style

Monday, December 3. 2007
OpenGL
Today I stumbled over a new-to-me project on OpenGL.org: An OpenGL canvas plugin for Mozilla Firefox! The plugin called Canvas 3D only works in the new Firefix 3 line and provides an OpenGL context to Javascript.

In my eyes this opens the doors to many new exciting Web applications (if Javascript turns out to be fast enough), ranging from simple Model Viewers to some advanced online-editors. I wish I could find some time to explore some of the possibilities!

Finally: New Magnum Developer Release

Thursday, December 7. 2006
OpenGL
As I already promised in this blog and in some emails to various people, I prepared a new developer release 0.4 of my framework "Magnum". It already contains a lot of changes and supports SCons for building it.

I also packed another archieve containing all data sets that are used for the demos - unfortunately you really need it in order to build the framework and all examples using the build scripts.

Among the changes are:
  • SCons as build system.

  • A much better directory structure.

  • Much more pure virtual interface classes.

  • XML parser and DOM-like document model.

  • HTTP Server functionality.

  • The skeleton of a meta-compiler for reflection and more.

  • Lots of other changes that even are not documented in the changelog

I am also thinking about publishing a copy of my subversion repository online, so you can follow the development and access the most current version - but I am not sure about that and I currently don't have enough time to set up a replication mechanism.

VBOs or Display Lists

Tuesday, April 11. 2006
OpenGL
Today, there was the question if VBOs are really as fast as display lists in OpenGL. Normally one would expect that VBOs should be at least as good as the old methods, but it seems that depending on the batch size and on the number of batches, the opposite might be true. I found a page with a small tool for measuring performance. At least on NVidia cards, VBOs do not seem to be the ideal solution for static geometry, whereas on ATI ther performance of VBOs should be almost equal to display lists.

So maybe I have to include another render path in Magnum using display lists...

A new Direction for OpenGL

Friday, March 24. 2006
OpenGL
Today i found a very interesting article about the future of OpenGL on OpenGL.org. The article describes ATI and NVidia thinking about the direction that OpenGL should take in its next releases (they also talk about the new features in OpenGL 2.1, but the proposed direction is far more interesting).

Their idea resembles the original goals of OpenGL 2.0 which propsed a new and clean approach offering backward compatibility only with an additional software layer. Unfortunately this idea was dropped in favor of backward compatibility. Now ATI and NVidia come up with essentially the same idea, the main difference is that they now call it OpenGL 3.0.

Among the features is a new object model (no integer handles any more that placed some special burden upon the drivers - they claim that up to 5% of driver processing time was spent for look-ups), programmable raster operations (stencil, depth and blendmodes will be shaders then), new state objects which will replace the glPush and glPop semantics and the removal of many obsolete features (including display lists wich should be replaced by VBOs).

But I guess we won't see OpenGL 3.0 very soon, if ever at all.

New OpenGL Extensions

Monday, January 30. 2006
OpenGL
Silently, without a headline on OpenGL.org, five new extensions have been completed and added to the OpenGL Extension Registry:

  • EXT_framebuffer_blit. This extensions allows to copy a region from one framebuffer object into another framebuffer object ("blitting"). It is especially useful with the next extension, which in turn would be useless without this one.

  • EXT_framebuffer_multisample. This extension finally allows to create multisampled frame buffer objects. As a direct usage of the frame buffer objects as textures or backbuffers is not possible, it heavily depends on the previous extension.

  • WGL_3DL_stereo_control. Some stuff for controlling 3d stereographic shutter glasses.

  • EXT_stencil_clear_tag. This seems to be a rather esoteric extension for saving bandwidth on the low end generation of PCIe cards that use main memory as a gaphics card resource.

  • EXT_texture_sRGB. This extension adds a new texture format for representing the non-linear sRGB colour space. Maybe this extension is useful for hardware accelerated image processing - I really don't know much about its usage.


As you can see, the two probably most valuable extensions (at least for high quality realtime 3d graphics) are EXT_framebuffer_blit and EXT_framebuffer_multisample.

New release of Magnum

Friday, January 27. 2006
OpenGL
A new version of Magnum has been finished and is available for download. Currently only the new framework has been published, but the newly created small 3d model viewer will follow soon.

This release of Magnum contains the following changes:

  • A totally reworked media module which allows streaming and playpack of ogg vorbis files.

  • A simple HTTP client.

  • A simple 3d model viewer.

  • A new PhongShader class.

  • Lots of bugfixes, especially concerning memory managment.


And some more good news: Since I made a release-script for Magnum today, a release is much simpler yet, thus you can expect faster updates from now on (of course if I have enough new features and/or bugfixes worth a release).

New Version of Magnum out

Monday, January 2. 2006
OpenGL

It's already some months since the last demo for Magnum has been published. Unfortunately a real new demo is not ready yet (I am even not working on any), but the library has been extended by many new features including

  • Transparency support

  • Picking

  • New input methods for VR devices like the P5 Glove

  • Camera Layers

  • many bugfixes and improvements


Most of the work is behind the scenes, but the biggest new feature probably is picking, which is not only implemented in the model classes, but also in the scene3d universe class which enables effcient culling of nodes that cannot be hit by the pick-ray.

You can download the newest version of Magnum here and the newest test can be found here.

New OpenGL Extension: EXT_packed_depth_stencil

Thursday, October 27. 2005
OpenGL
A new OpenGL specification for an extension has been finished by the "ARB superbuffers workgroup". The new extension called EXT_packed_depth_stencil is about a hardware-native format that handeles the depth-buffer and stencil buffer in one interleaved buffer. This extension allows to read from/write to such an combined depth/stencil buffer with one function call instead of two plus no conversion of the data is needed any more, which in turn should speed up such operations. Plus this new packed data format can be used together with the EXT_framebuffer_object extension which allows an application to render directly to a texture.

Currently I don't need this extension myself, but it is important to all those people out there who wanted to render to a texture using the stencil buffer - this was not possible on many consumer level graphics cards due to the lack of an appropriate render target format.