Looking at Shaders
I’ve been looking at OpenGL shaders this week. I have a vizRT box to play on which is a broadcast 3D graphics box that we use in the Sport and News areas. The latest version, v3 has the ability to add some shaders but the cost is quite high when you have to multiply by the number of machines that we have. So I though that I’d have another look at writing plugins. The last time that I did it was back on the Silicon Graphics machines. They have long been superceded by the PC versions so it has been quite a while.
The viz machine gives the facility to create your own shaders but getting the interface correct is not documented very well. This has generally been the case with Viz, but they are getting better. I had a quick look at getting a simple interface created and succeeded with the help of Mikey in VizRT Israel. He’s a busy man, so I should feel lucky. A simple Blur filter was first to come. Nothing special there but it showed that I had the project setup correctly in Visual Studio, and linked to the correct parts.
The book I have been reading is Ron Fosner’s “Real Time Shader Programming” which is more aimed at DirectX than OpenGL, but it covers the basics well. It goes through the detail of the pipeline pretty well. He also refers to the earlier book by Moller and Haines, “Real-Time Rendering” which I must have a look at.
Inspiration is from the Render Monkey software from the AMD site. This has a simple interface that can be used by both programmers and designers. I can see that it would be easy to setup a shader for a designer to be able to sit and tweak interactively. It is easy for a programmer to create sliders and colour pickers to input into the pipeline. Very useful indeed. The program comes with numerous examples and it must be these that I try and duplicate next on the viz machine. If I can get the parameters across then I should be able to use the same frag and vert files to get the same effect. ShaderGen is another tool from 3DLabs that offers similar but not quite so refined tools to preview shaders and will show what your hardware can do.
Just need a bit more time….