← All ideas
  • Published 2 Apr 2016

Cycles Cache/Blur node

EDIT: Title says it all But by nature Cycles can't blur texture (I think) and there is no automatic caching

To make some advanced procedural shader, ability to blur a texture is mandatory, it open the door to but not only: Bluring Edge detect sharpening bump from grid/brick etc...

Like said above by nature (pathtracer) Cycles can't blur the outuput of a nodetree, so to make some shader in a similar way to substance designer, texture need to be pre-proceeded

One of the strength of Cycles is the ability to use 3D data and it's something to keep, so doing the blur in the 2D texture node tree or in the compositor is not an option, at least to me.

the solution I think could be the simplest (perhaps Python only) to implement and the more reliable would be an automatic render to texture node with the following parameters/slots

RGB input A input

blur X/Y values (relative) U/V ranges (Umin/Umax, Vmin-Vmax) imagePath parameter for caching sample number a use cache checkbox animated checkbox frame range (min-max) each N frame out of range behavior (hold, cycle,loop) color depth list box (8-16-32) Object or group UVmap chooser

RGB output A output

Limitation: Like baking some node setup will only work for one object, unless there is an option to cache one map Per Object or to use Groupe of object sharing the same UV layout.

Usage If present in a node setup, when user press F12, Cycles should just bake the map at the point where this node is present, check the "use cache" checkbox, keep the picture in memory, write it to disk and then start rendering like if the node was an image texture node.

Hope it make sense.

100%

Development Status: Open

Upvote 12 Downvote 0
kevin
2 Apr 2016

3 Comments

beer.baron

The problem with this idea is that Cycles shaders work on color values, which could come from any sort of computation and could be driven by any sort of texture coordinate, so this could not be pre-baked in many cases, which would lead to a confusing and inconsistent system.

Like I mentioned in other similar proposals, I think the solution is to make the compositor work as a "texture composer". This way, it is clear that what is being worked on is 2D image data and neighborhood operations like Blur are efficient. The output textures can then be used in shader nodes. It would also be possible to create parametric textures with this system - you just couldn't drive the paramaters with values computed in the shader .

Such a system is a low-hanging fruit from an implementation standpoint, as almost all the required functionality is already there - it just needs to be wired together differently.

kevin Author

The big difference, is that shader allow you to play with UV and geometry in 3D space, it's not 2D until baked, it's really powerfull , already working and baking is working great but it's just a pain to do it manually for AO, blurring etc.... Also it's a poweruser feature, people should understand what they are doing.

kevin Author

proposal edited

Blur setup are done by distorting UV, it need a lot of sample and is not suitable in displace or bump.