Archive for the ‘graphics’ Category

Type and Mipmaps

Sunday, October 28th, 2007

A lot of times people tend to forget about the importance of type support. Some have poor font rendering, but most don’t support things like kerning or ligatures. Not supporting kerning is just unacceptable. We made sure we have great type support in E15, and we do. E15 can render TrueType, PostScript and OpenType, all with kerning, ligatures and for OpenType, unicode support. The font rendering is also nice thanks to CoreText and Quartz. Here are some screen captures.

While adding support to text, we discovered that our mipmaps weren’t working. We noticed a lot of scintillation effects from the texts drawn in the environment. We are using NPOT textures, and after a couple days of going back and forth about whether NPOT mipmaps were possible or not, we finally figured it all out. As long as ARB_texture_non_power_of_two extension is supported, NPOT mipmaps will work just like POT. The trick is to use GL_TEXTURE_2D and treat NPOT just like POT.The other problem which hopefully is fixed with the official release of Leopard is that our ATI X1900 does not support hardware mipmap generation. Instead, we have to call gluBuild2DMipmaps(). The NVIDIA 7300 however does support it.

What is oGFx?

Thursday, October 4th, 2007

More specifically, what does oGFx have to do with E15? oGFx is the graphics engine that powers E15.

There are a number of oGFx images in the E15 gallery that look less internet and more graphics centric. All of these images, along with the first video, are related to the web and E15 because they are the result of several experiments we’ve made to test the E15 graphics engine. Without a powerful graphics architecture, we’re left with little to inspire our future users.

oGFx sets up a 3D environment (an OpenGL context) where chunks of geometry can be dynamically generated and deleted through a Python script on the oGFx console. Dynamically generated textures can be mapped to the geometry using the same scripting environment. The content of these textures can be web content or canvas-based drawings.

Due to a variety of obstacles imposed by the nature of the web, oGFx is evolving faster (as a graphics engine) than what can be supported by E15 to manage web content. oGFx development is currently happening in lockstep with E15 development, but sometimes we like to share exciting new developments that are more purely graphics-based than content-based.

The following are some screenshots of the most recent oGFx development, where we ran a 10000 frame long loop of video on an array of 500 quads, interactively rearranging them in space and applying several blendings and image processing filters. We also show a tribute to an early animation technique, the Phenakistoscope from 1831, a source of inspiration for us and for others that have inspired us, like Jules Marey, Marcel Duchamp, Doc Edgerton, Toshio Iwai, the Visible Language Workshop, and the Aesthetics and Computation Group just to mention a few. All these are screenshots of something that is naturally interactive and in motion, so they are just meant to illustrate an aspect of the whole thing. We are working hard to reach a point where we can release pre-alpha versions of both our projects to the public.

The video extrusion over time:

Video tunnel with screen blending and edge detection:


The Phenakistoscope:

oGFx is a dynamic digital graphics project started by Kyle Buza and Luis Blackaller over the summer of 2007. More information about it can be found here and here.