Good question. We don’t provide standard shaders that do this, but I’ve taken the time to whip some up (we’ll probably include in future versions). The basic issue as you point out is that jit.gl.slab doesn’t support multiple outputs. We accomplish that by using four jit.gl.slab objects which each grab a single plane, mapping it to all four planes for a monochrome output. jit.gl.slab does support multiple inputs, so then we can recombine these multiple monochrome input planes to make a single RGBA output matrix.
I’ve uploaded a zip file with example patches and shaders to do this.
A note for the advanced user (beginning users can safely ignore the following without worrying about all the technical jargon):
You could in theory optimize these shaders to pack monochrome information in the color planes, reducing texture size by a factor of 4, using techniques demonstrated in the UYVY and GRGB example shaders. I’ve avoided this for these examples as it further complicates both the shader and potentially any intermediate operation which if anything more than a plane independent pointwise operator will have to take this spatial packing in the planar color vector into account.
Hope this is of use.
Mar 19, 2010 at 5:46pm #176398