Pedro Leite

words – an empty shell, a lack of meaning

KDE 4.0

So today is the great release of KDE 4.0. And by the way, KDE 4.0 is meant to run on almost every platform including windows.

So what I did was to download the installer for windows and play a little with it. Below is Dolphin on Windows (the screenshot could be more exciting, but I’m kinda late for work).

Dolphin on Windows

January 11, 2008 Posted by | interesting, kde, me, open source, portable, release, screenshot, windows | Leave a comment

GLUCo 0.1.1

This release fixes a compilation problem under Windows. You can grab the code at the project site.

July 29, 2007 Posted by | gluco, linux, open source, opengl, portable, release, windows | Leave a comment

GLUCo Progress

So, I already started to work on GLUCo and I’m getting things pretty well defined. I’m using old ideas of mine to make a window manager over glut, where the developer can create as many windows he/she needs. To write such manager, I’ll use the Glib library for data types an algorithms. Of course I won’t use the full support that Glib can give, so I am thinking whether use Glib is or is not a good idea. The immediate impact could be: C++ applications don’t need Glib for algorithms, since they have STL. Anyway, I’ll use Glib and later decide its fate.

July 27, 2007 Posted by | development, gluco, linux, opengl, portable, windows | Leave a comment

OpenStereo 0.1.0

Today, I decided to release the first version of OpenStereo under the LGPL v2 license (maybe I’ll consider the LGPL v3 after reading it ;). OpenStereo was my graduation thesis, or graduation conclusion work, if this suits you well and now is my open source project. It was presented on October 2006, but only now I decided to release it, even it meant to be an open source project.

Starting from 0.1.0, the OpenStereo library provides multi-platform support for development of real time stereoscopic applications. It’s based on a plugin subsystem, which abstracts the underlying graphics system. At the current time, only OpenGL applications are supported, but one plugin subsystem’s advantage is that a DirectX plugin can be written, enabling DirectX applications to be developed with and/or ported to OpenStereo. Of course, this is a future work. What I have on 0.1.0 is, though, a fragile not so well defined architecture, once it appears more like a plugin subsystem, than a stereoscopic library. Indeed, the libSL only does a good plugin management, but as time goes by, such architecture will evolve into a more robust one. Fortunately, it works! Applications can be more immersible than ever, all of this without requiring the user to buy expensive graphics cards or equipment like HMD glasses (indeed it’s necessary that the user have, at least, a red-blue anaglyph glass).

For a quick preview of what OpenStereo can do, let’s take the NeHe’s Lesson 26. This lesson teaches how to create “EXTREMELLY realistic reflections”, as the text states. The following screenshot shows the application running in 3D mode, the way it was meant to be:

NeHe's Lesson 26

First of all, some modifications were made on the code, so the application code can be compiled on both Windows and Linux environments. OpenStereo was embedded on the code to gather the function that draws the scene, thus allowing left and right pairs image generation (OpenStereo uses the anaglyph method to generate stereoscopic output). Camera values were correctly configured, including support to update eye separation and anaglyph method values with keyboard. After all these modifications (simple ones), the final result can be seen on the following screenshot:

NeHe's Lesson 26 ported to OpenStereo

Any application that uses OpenStereo will suffer from a performance penalty, mainly because OpenStereo needs to 1) render the scene twice, generating the left and right images and 2) fuse and present them to the screen. The fusion part generally depends on the selected plugin (this might be OpenStereo’s job and not plugin’s one).

The OpenStereo source code comes along with three plugins: one that fuses the images at the CPU level, gathering left and right images through glReadPixels; one that fuses images using the Cg Toolkit library (this dependency will be soon removed, using only OpenGL 2.0 and the ARB extensions to apply a pixel shader) at the GPU level, where the left and right images are gathered through glTexCopySubImage2D; and finally one that uses the same fusion process defined by the previous plugin, only that the scene is rendered directly into a framebuffer object, through the framebuffer object extension.

Some work must be done to ensure that the architecture will generate the stereoscopic output at the library level, not at the plugin level. Also, new plugins to DirectX (or this could be done on the architecture?) must be developed, providing support for a wide range of applications and platforms (hardware and software).

The OpenStereo source code will soon (this week) be available at OpenStereo’s Google Code project site.

July 26, 2007 Posted by | directx, linux, nehe, open source, opengl, openstereo, portable, release, screenshot, stereoscopy, windows | Leave a comment