Directional Blur Node
authorJuho Vepsalainen <bebraw@gmail.com>
Thu, 27 Dec 2007 14:19:11 +0000 (14:19 +0000)
committerJuho Vepsalainen <bebraw@gmail.com>
Thu, 27 Dec 2007 14:19:11 +0000 (14:19 +0000)
commit8ddc48d32f011b0c5af5c191a94188e3f29c3776
tree5d1c3195bbdb7badf7964ca1d1419b78a8050393
parent28805c626fffdc70736e26dccb2ef37816c4bc76
Directional Blur Node
Directional Blur node allows the users to do various blur operations on the input
image. It essentially offers three different kind of ways of blurring in one node.
It is possible to blur using a certain direction, spin and zoom. These three ways
can be used in conjunction.

The node contains following controls:
*Iterations, Wrap
*Center: X, Y
*Distance, Angle
*Spin
*Zoom

Iterations is used to determine the smoothness of the result. The more iterations,
the smoother result. Low values are good for preview.

Wrap means that the image is wrapped as if it was tiled on both x and y directions.
To see better what this means, try it with spin for instance.

Center values (X and Y) determine the location which is used as a pivot point for
the operations. It is center (0.5) of the image by default.

Distance and angle are used to adjust directional blur. The result can be described
as a sweep that varies based on given distance (bigger distance, longer sweep) and
angle. Angle is given in degrees.

Spin produces rotating blur based on given angle. Yet again it is in degrees. Also
negative values work.

Zoom causes the image to be zoomed towards set center point (Center values).

Thanks to Alfredo de Greef (eeshlo) for contribution.

Possible development ideas:
*Make an algorithm to extend image in case spin is used. Extend would temporarily
change the size of the canvas of the input image. Canvas would be filled based on
colors on the edges of the input image. After the blur operation has been done,
the image would be cropped back to normal size. The advantage of this would be nicer
result of spin (no problems with image size) on a computational cost.
*Make values animatable. This is something that is better solved on more general
level. ("everything is animatable" paradigm)
*Provide an option to calculate automatic value for iterations. A good value that
produces a smooth result could be calculated based on direction deltas. This would be
useful in conjuction of animatable values.
source/blender/blenkernel/BKE_node.h
source/blender/blenkernel/BKE_utildefines.h
source/blender/blenkernel/intern/node.c
source/blender/makesdna/DNA_node_types.h
source/blender/nodes/CMP_node.h
source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c [new file with mode: 0644]
source/blender/src/drawnode.c