@Kartoffel: Very nice and useful, though Hummel already did this some years (?) ago with his bacterium.
I've had a look at the source and it's pretty simple and fast but could even be a little faster:

float zProj = pow(abs(dot(input.Normal, float3(0.f, 1.f, 0.f))), ProjectionPower);
is obviously the same as
float zProj = pow(abs(input.Normal.y), ProjectionPower);
which can be shortened to
float zProj = input.Normal.y*input.Normal.y;
as ProjectionPower = 2 apparently gives the best results (the same goes for zProjx/y, of course).

EDIT: Thanks for sharing!

Last edited by Superku; 11/21/12 21:31.

"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends