← All ideas
  • Published 19 Jul 2021

Shader Nodes: Rasterize and Blur nodes

So this is something ive been thinking bout for a long time, blurring textures in the shader editor is hard, and the noise texture with high scale method works but it doesnt work well with color ramp and stuff, i understand that a blur node would be very heavy on the pc but i think we need something like it soon. A rasterize node would also be useful to pixelated textures without baking them into files

This idea was marked as a duplicate of Blur Node .
75%

Development Status: Open

Upvote 6 Downvote 2
ronish1
19 Jul 2021

7 Comments

You can build both of those nodes already in the shader editor if you know what you're doing. Not only that, having knowledge of the shader editor will help you create more interesting textures anyways. If you know how to do them, then you can also make a directional blur. And the noise texture with a high scale has been made obsolete by the White noise node. rat If you want to save the blurred texture and use that, then you can simply plug it into the material output directly and bake emission. If you want a node that bakes textures for you more easily inside the shader nodetree, then you should probably say that instead.

1
lucas12

I wonder if the people suggesting the white noise on the UV method (which gets linked every time someone asks this) has actually tried using it for anything. This is what happens when you mess with the UVs instead of having an actual blur node:

i.postimg.cc/c1byvhrp/wrong-uvs.png

mindinsomnia

You can recreate both of these with some clever noding in the shader editor. For example, Blurring a UV mapped texture can be achieved by taking multiple samples of your texture and randomising your UV coordinates for each sample with the white noise texture.

If you create a node group for this, you can just save it in a separate file. Then add the shader node group to your default startup file for Blender and it's available any time you need to blur a texture.

ad_kapoff

The UV distortion method doesnt create a true blurred version of the image that could for example be used with a brightness node to reduse the radius of a mask or something similar. It creates a "dithered" (or rather distorted) version of the image without any gradient trasitions.

mindinsomnia

Blurring an image is just taking samples of the neighbours and averagingthem. You can easily do the same in a shader by just doing more than one texture lookup, just with different offsets. If you like you can do a grid of 7x7 lookups, calculate the pixel offsets for each one, add up the results, divide by 49, scale the distance of the offsets by whatever pixel radius you want. It's a lot of nodes but it's perfectly doable, and then you have a 'blur' node.

zuorion

"rasterize node would also be useful to pixelated textures without baking them into files"

You are saing that it would be useful to bake textures into files without baking them into files? wtf?

ktdfly

AFAIU blur node is one of reasons why sample based compositor T53790 was abandoned. Not only it gets heavy computationally, it can also introduce heavy noise.

Brecht:

Imagine a blur -> color ramp -> blur node setup. The color ramp outputs wrong results in initial iterations, and those then become part of the second blur node's progressive results.
Technically speaking this still gives you a consistent estimator (and no longer an unbiased estimator). Practically speaking, I imagine the convergence rate will be poor and memory usage will be high.

Anyway, you can implement a blur/rasterize nodes for a texture yourself by manipulating UV coordinates.