Finally got it to work!
So, here’s Borg and Blob surfaces rendered in a GPU-accelerated GLSL raycaster shader:
As you can see, there’s a certain graininess to the render. This I actually quite like. It can be smoothed-out by decreasing the step-length that each ray is incremented by, but this slows down render times exponentially.
Obviously, there’s no lighting calculation being done, and I’m not working out normals at all. I quite like the ghostly quality you get from this simple opacity-accumulation-style render though.
Thanks once again to Peter Trier for sharing his method, and I’d also like to thank Viktor N. Latypov for his encouragement on this project.
Here’s a clip of the shader at work on a Blob surface. I’ve added some colour to the rendering by mixing-in the ray XYZ-position as RGB colour, to add a bit of interest to the volume.
..and the Borg surface:
And this time, modulating the ray’s start position with live video input:
oh my! looks very good! will you be publishing your code on this one?
Thanks Rob.
My code is mostly Peter’s, in fact. Most of the work was in setting up QC and tweaking the shader code to work with an surface equation, rather than a pre-rendered 3D texture.
I’d like to optimise the code a bit more, but I’ll eventually release the whole QTZ into the wild.
Would be nice to produce a QC plugin to render 3D textures, too, with some extra options. That’s a little way in the future, though.
a|x
Hi Alex, thats is some beautiful and cool images. Glad you could use the tutorial.
Keep it up.
Hi Peter!
Good to see you here. Thanks again for the code- I’ve been trying to do this for a while now, and am happy with the way it’s turned out.
Now to find more isosurfaces to render, I think 😀
Cheers,
a|x