Sdfgeoff's node shaders and other experiments

Howdy guys. When I get inundated with programming and design work, I like to spend a little while playing with blenders node shaders to unleash my creative side. In this thread I’ll post images and blends of what I come up with.

These very often do not look realistic, and are more artistic. I make no claims for good performance.

Latest Images:


Energy Tentacles (animated):
They are an animated flat plane, so probably best for sidescrollers. I can’t think of a good way to get this effect in 3D.
Based on this analysis.
Blend: Energy Tentacles.blend (695 KB)


1 Like

Nuclear Explosion (animated):

Starts off as a small bright explosion and grows to a pillar of black smoke before fading out. Uses a novel method of changing colors using a lookup in a texture.
Uses UV scrolling to create a nice flow effect as it grows.
Only looks good from below the level of the torus.
Also based off a post off the same link as the first post (he does lots of nice stuff).
Blend: AnimatedColorRampExample.blend (745 KB)


love the fade :eyebrowlift:

Cool. I was going to do these after reading that same blog the other day.
Glad you beat me too it. :smiley:

A random 2D filter I whipped up:

It’s a combination of edge-detect and thresholding. Originally I designed the system to convey information in 1 bit of information per pixel, but I decided to re-add the colour to add more variation.
FilterTest.blend (982 KB)


Technicolour mist. Done by rendering the depth-buffer to a texture and putting it in a node shader. Yes, this could be done in a 2D filter.
Mist.blend (564 KB)


Cool. Depth buffer gonna be very useful for other things too.

Deteriorating painted concrete walls.
These use no object-specific maps. The level of deterioration is controlled by the vertex colour. It is combined with a texture to give higher resolution edges to the chips.

Only a single texture is used here. It is one of my favourite noise types due to it’s versitility.

ConcreteWall.blend (1.29 MB)


nice great job

Real time reflective water:

WaterDemoi.blend (702 KB)

Uses ImageMirror to do the reflections, and a node texture to map it to the plane with distortion. The plane copies the ‘players’ position, so the water moves with you - so with some tricks should appear infinite.


Volumetric Mist:
Brute force volumetric mist using lots of transparent planes. I suspect the only reason I can run it is the GTX970 pushing it all along.
I’d be interested to get some performance feedback.
Mist.blend (1.04 MB)


Mist runs at 5 FPS on GT 610.
The water runs at solid 60 FPS, though.

Here is improved version with fresnel.


WaterDemoi.blend (704 KB)

I get 51 to 49 for framerate for mist on a laptop i use.

Your laptop is 10 times more powerful than my PC :smiley:

1 Like

Don’t feel bad the hewllet packard desktop i use gets 10 for framerate.And what is strange about it is
the hewllet packard laptop gets waymore.Like five times more.

1 Like

how did you make the water’s reflection high resolutioned??
I know the capsize is broken…

The water is great!
Another way to get a UV scroll is to use a object color as a vector, but there the trade off is you need an extra material for capturing object color.

Capsize works fine on my computer (with blender 2.77)


And a little trick I learned the other day is that if you use “normal” as in input rather than “color” you don’t need the corrective vector:


NOOOO im using 2.76b

The water’s resolution is currently just floating. I think by default it is 512x512? Not too sure really.

Thanks for that node trick. Makes a lot of sense now I think about it.

I’ll update my blender and see if that fixes capsize (I’m on 2.77, but I’m sure there is a newer one somewhere)

On a side note: I figured out that you can pass however much information you like into a node shader by manually addressing pixels. For instance if you create the vector (0,0) and pass it into the mapping of a texture, you extract the pixel value at (0,0). You can set that pixel value in python.

1 Like

Ah yes. I know theres something on the api for dealing with textures. I’ll try that out tonight.