Forays into Shake
back to home page
Apple Shake is an industry standard video compositing program. This is my page of Shake macros. Add the macros to your Shake include folder, and they will appear in the User tab within Shake.

Macros for Shake 2.5 and newer:
PG_Macros, a set of assorted macros.
PGVec_Macros, a set of vector processing macros.
Download PG_Macros, my assorted set of macros: Zip : StuffIt

Macros in this set:
PG_Aberration. Applies chromatic aberration, an effect of a camera lens. Choose the amount and center of the effect.
PG_ColorSample. Fills the output image with the color of the chosen pixel from the input image.
PG_FlareElement. A single element of a lens flare. Moves the element automatically based on the specified location of the light. Use several to build your own lens flare.
PG_HalfSpace. Lets you split the image in half at any position and angle. Useful for garbage matting and wipe transitions.
PG_MotionBlur. Similar to Photoshop's motion blur, also known as a directional blur.
PG_IMotionBlur. Motion blur based on a grayscale image. Works the same way as IBlur.
PG_Overlay. The same effect as Photoshop's overlay blend mode. Renders more than twice as fast as the Overlay macro from
PG_ReverseOver. Attempts to create a foreground image and corresponding alpha mask, given a composite and background image. It can be useful for completely removing a color from an image, or for generating a difference matte.
PG_ZSeparateFG. Separates a foreground image and mask based on a depth image. Tries to remove some background color from the edge of the foreground using the PG_ReverseOver macro.
PG_ZBlurStep. Blurs the background and foreground separately, using the ZSeparateFG macro. Provides depth of field effect without the foreground halo that IBlur often has.
Download PGVec_Macros, my set of vector processing macros: Zip : StuffIt

Macros in this set:
PG_NMap2Normal. Converts a normal map render to a floating point normal vector image. It assumes all the pixels in the input image have values between 0 and 1, and it expands them to the range -1 to 1.
PG_NMapSphere. Renders a normal map of an orthographic sphere. Use it to play with lighting in shake if you don't have a normal map on hand. You can choose the resolution of the sphere. Apply a PG_NMap2Normal node to convert it to a normal vector image.
PG_TextureMap. Maps a texture image onto a texture coordinates image.
PG_VecAdd. Adds the specified vector to every pixel in a vector image.
PG_VecCrossProduct. Calculates the cross product of the vectors in the corresponding pixels of 2 images.
PG_VecDepth2Position. Generates position vectors for every pixel based on a depth pass. You have to provide the distance of the near plane (distance where the depth pass is black), the far plane (distance where it is white), and the camera's horizontal field of view.
PG_VecDotProduct. Calculates the dot product of the pixels in two vector images. It is useful for generating lighting in Shake. Just take the dot product of normal vectors generated by PG_NMap2Normal and a vector generated by PG_VecLonLat to create a directional light.
PG_VecLonLat. Lets you choose a vector by specifying longitude and latitude angles. Fills the image with the vector.
PG_VecNormalize. Normalizes all the vectors in an image.
PG_VecPointLight. Generates diffuse lighting, simulating a point light at the origin of the coordinate system. You can change the origin by creating a position vector image with PG_VecDepth2Position and adding the light position to it with PG_VecAdd.
PG_VecPosition2Normal. Converts a position vector image to a normal vector image by using the difference vectors between each pixel and its neighbors.
PG_VecReflect. Reflects the vector at each pixel around the vector in the corresponding pixel of another image. The output is normalized. This is useful for creating a specular reflection normal vector image.