Tuesday, September 11, 2007

Quick and Fast Image Processing in World Wind - via Pixel Shaders



After a brief foray into GLSL shaders and suffering a beat back from the not so good GL support on my laptop graphics card I went back to HLSL and .NET World Wind hoping to implement some simple image processing via pixel shaders and expose the shader parameters via the QuadtileSet properties GUI, much like in NVIDIA FxComposer.

It must be noted that with little hard drive space limits and high bandwidth it is possible to have full-resolution imagery in World Wind as zipped dds, png or even tiff tiles. These can then be processed via a pixel shader to perform a range of enhancements. Spatial operations such as sharpen, blur or unsharp-mask will require reverse texture coordinate lookup and Pixel Shader Model 2.0, but a lot of high speed in your graphics card enhancement of imagery is possible.

I tested out an old shader from Stephan demonstrating multitexturing and started on one for dynamic some brightness-contrast enhancements on a per imagery layer basis.

3 comments:

Bull_[UK] said...

Sweet, is this going to be in 1.4.1? I'd like a simple RGB/HSL control, and some cool blur/smooth/sharpen features al la photoshop would be nice, we will kick GE's butt.

what_nick said...

I did RGB/HSL today as well as arbitrary convolution, allwoing sharpen,blur,edge-detect etc. The convolutions are for Pixel Shader 2.0 only so may not run on older(>1 yr) hardware.

Stan Ngure said...

nice blog dude, for once it has opened.