Stack o' Blender Patches


patches-31863.zip


Bone Color

Fixes object mode armature display but breaks armature ghost colors, useful for imageEmpty.patch


Image Empty

Found on the patch tracker

Lets empties be displayed as images and also bones can use images as custom bone shapes


Easing

Robert Penner easing equasions for f-curve interpolation
"BACK"
-- Back easing: overshooting cubic easing
"BOUNCE"
-- Bounce easing: exponentially decaying parabolic bounce
"CIRC"
-- Circular easing
"CUBIC"
-- Cubic easing
"ELASTIC"
-- Elastic easing: exponentially decaying sine wave
"EXPO"
-- Exponential easing
"QUAD"
-- Quadratic easing
"QUART"
-- Quartic easing
"QUINT"
-- Quintic easing
"SINE"
-- Sinusoidal easing

Normal Map Node

Texture image to normal map conversion node


Scene Callback

Scene.callback_add() & Scene.callback_remove()

Initial patch which adds a "FRAME_CHANGE" event type which calls a python object on frame change

handle = C.scene.callback_add(print, ('hello, world',), 'FRAME_CHANGE')
C.scene.callback_remove(handle)


Scene Render Callback

Expands (and depends) on the previous patch.

Adds "PRE_RENDER" & "POST_RENDER" events types.


Object Call

Expermental patch that add a __call__() method to Objects.


Nodetree

Python API for nodes

nodetree.nodes.new('type', group, id) group & id are optional
nodetree.nodes.delete(node)

nodetree.links.new(NodeSocket in, NodeSocket out)
nodetree.links.delete(NodeLink)

nodetree.group()
nodetree.ungroup(Node)

nodetree.type

NodeSocket.name
NodeSocket.min
NodeSocket.max
NodeSocket.type

NodeLink.node_in
NodeLink.node_out
NodeLink.socket_in
NodeLink.socket_out


Compbuf

Python wrapper for Composite Image Buffers -- used for the Dyno patch


Buffer

Experimental image Py_buffer method

buffer = memoryview(image)
color = buffer[0]


Dyno

Experimental dynamic node which abuses the callback_add() method.

import bpy def callfn(inbuf, outbuf): size = inbuf.size for x in range(0, size[0]): for y in range(0, size[1]): pixel = inbuf.get_pixel(x, y) r = pixel[0] g = pixel[1] b = pixel[2] a = pixel[3] outbuf.set_pixel(x, y, (r, g, 0.0, a)) dyno = bpy.context.scene.nodetree.nodes['Dyno'] handle = dyno.callback_add(callfn, ())


Libplugin

Port of libplugin for Blender

Plugins work but unused for now


Radial Menu

Matt Ebb's radial menu -- currently doesn't do anything