« <Media>Units | Main | OpenGL explorations »
February 16, 2005
JOGL -> Java OpenGL
In tandem with the development work I've been doing with CoreImage, I've also been learning more about the non-shader bits of OpenGL. I bought a book on the java bindings for OpenGL (JOGL) and have started working through the examples.
It's quite topical for me, since I recently wrote a Cocoa application that takes audio samples and applies transformations to them, graphing the time-series data before and after transformation. (I'm using the app to help me develop audio DSP algorithms.)
It turns out that OpenGL has primitives for doing coordinate transforms, graphing equations, connecting vertices, and all sorts of stuff I was doing by hand inside an Objective-C NSView subclass. I had been considering rewriting the app to use ObjC for the controller and java for the models and subviews, but JOGL seems like it could give me a quantum leap in "lickability" of my sample graphs.
I don't want to jump right in and start refactoring without a clear path for where I'm going, but I'm going to write a couple standalone JOGL apps and see if it can do what I'm looking for. I'm keeping an open mind as well, trying out samples that do 3d pie charts, ray tracing, etc. I've always wanted a good excuse to learn OpenGL and now I have it. I figured it would be easier to learn OpenGL using java bindings for it versus using Apple's Cocoa OpenGL wrappers or writing straight C/C++ code.
I've been working with Java on a near-daily basis for the past six months, but my positive experiences there will have to wait for a future entry. Suffice to say that I'm excited to be using JOGL and learning more about industrial-strength graphics rendering, and I'm looking forward to putting this knowledge to good use on future software projects I work on. There are several graphing and visualization features that I've had on the drawing board for a while, but now I have the tools that will let me implement them. Pretty exciting stuff.
Posted by djb at February 16, 2005 10:27 PM