Archive for May 21st, 2008

21
May
08

Accidental Niceness

I was experimenting with a adding surface texture to the Paraboloid Spread shader, and pushed one of the parameters further than I usually would. The result was really cool!

What’s actually happening is that I’ve added a repeating pattern to the surface of each individual mesh strip. There’s a control for the size of each texture ’tile’, and in this case, I’ve set this all the way up to 1.0. This stretches the tile image (in this case a blurry circle) to fill the whole area of the mesh, blurring it in the process. Setting the mesh blending mode to Add melds the meshes together, giving this fiery, explosion-like effect.

The fifth pic there was the result of another happy accident, when I set the tiling surface pattern for the mesh to an image input, but neglected to connect anything to it, resulting in a really nice glitchy noise-type effect, that flashes on and off in a really cool way.

21
May
08

Kineme SuperGLSLGrid

I’ve been helping test an exciting new Quartz Composer plugin for Christopher Wright of Kineme.net.

The concept is very simple:
What it does, is allow you to set uniform variables in a GLSL shader on a per-mesh basis. Usually, uniforms are identical for every mesh inside a GLSL Shader patch, but with this plugin, you can do all kinds of cool stuff- for example, you can create 64 separate meshes, with individual Color, Scale and Position properties. This is how I managed to create the ‘Pseudospreads’ screenshots.

Currently, there’s only one ‘Super’ plugin- a VBO-based grid, similar to the builtin GLSL Grid patch. The plan is to eventually add other primitives (Sphere, Cube, Cylinder, Cone etc.).

It’s still in beta at the moment, but so far it seems very stable. As soon as it’s publicly available, I’ll post a link to it, and also post some of my experimental QTZs that make use of it.

21
May
08

Pseudospreads, Steinbach Screw

21
May
08

Pseudospreads, Helicoid

21
May
08

Pseudospreads, Paraboloid

Same technique, different surface formula: