Filter 2D Actuator¶
2D Filter s are image filtering actuators, that apply on final render of objects.
Filter 2D Type
Select the type of 2D Filter required.
- Custom Filter
- Invert
- Sepia
- Gray Scale
- Prewitt
- Sobel
- Laplacian
- Erosion
- Dilation
- Sharpen
- Blur
- Motion Blur
- Remove Filter
- Disable Filter
- Enable Filter
Only one parameter is required for all filters:
- Pass Number
- The pass number for which this filter is to be used.
Details of the filters are given in the descriptive text below.
Motion Blur¶
Motion Blur is a 2D Filter that needs previous rendering information to produce motion effect on objects. Below you can see Motion Blur filter in Blender window, along with its logic bricks:
You can enable Motion Blur filter using a Python controller:
from bge import render
render.enableMotionBlur(0.85)
And disable it:
from bge import render
render.disableMotionBlur()
Note
Your graphic hardware and OpenGL driver must support accumulation buffer (glAccum
function).
Built-In 2D Filters¶
All 2D filters you can see in 2D Filter actuator have the same architecture, all built-in filters use fragment shader to produce final render view, so your hardware must support shaders.
- Blur, Sharpen, Dilation, Erosion, Laplacian, Sobel, Prewitt, Gray Scale, Sepia and Invert
- Are built-in filters. These filters can be set to be available in some passes.
To use a filter you should:
- Create appropriate sensor(s) and controller(s).
- Create a 2D Filter actuator.
- Select your filter, for example Blur.
- Set the pass number that the filter will be applied.
To remove a filter on a specific pass:
- Create appropriate sensor(s) and controller(s).
- Create a 2D Filter actuator.
- Select Remove Filter.
- Set the pass number you want to remove the filter from it.
To disable a filter on a specific pass:
- Create appropriate sensor(s) and controller(s).
- Create a 2D Filter actuator.
- Select Disable Filter.
- Set the pass number you want to disable the filter on it.
To enable a filter on a specific pass:
- Create appropriate sensor(s) and controller(s)
- Create a 2D Filter actuator.
- Select Enable Filter.
- Set the pass number you want to enable the filter on it.
Custom Filters¶
Custom filters give you the ability to define your own 2D filter using GLSL. Its usage is the same as built-in filters, but you must select Custom Filter in 2D Filter actuator, then write shader program into the Text Editor, and then place shader script name on actuator.
Blue Sepia Example:
uniform sampler2D bgl_RenderedTexture;
void main(void)
{
vec4 texcolor = texture2D(bgl_RenderedTexture, gl_TexCoord[0].st);
float gray = dot(texcolor.rgb, vec3(0.299, 0.587, 0.114));
gl_FragColor = vec4(gray * vec3(0.8, 1.0, 1.2), texcolor.a);
}