From BlenderWiki
2D Filter アクチュエータ
2D Filters are image filtering actuators, that apply on final render of objects. Thanks Social et.al. for FPS_Template.
はイメージフィルタのアクチュエータです。最終的にレンダリングイメージに対して適用されます(FPSゲームのサンプル画像を提供してくれた人々に感謝)。
Motion Blur
Motion Blurを使って動きの表現をするには、以前のフレームの情報が必要です。図"2D Filters: Gmae LOgic"はBlenderのウィンドウに表示されたロジックブリックです。
フィルタを有効にするには:
- 適切なセンサとコントローラを追加する。
- 2D Filterアクチュエータを追加する。
- ドロップダウンリストからMotion Blurを選択する。
- Value(モーションブラーの度合い)
フィルタを無効にするには:
- 適切なセンサとコントローラを追加する。
- 2D Filterアクチュエータを追加する。
- ドロップダウンリストからMotion Blurを選択する。
- Enableボタンを押して無効モードにする。
Pythonコントローラを使ってモーションブラーを有効にすることもできます:
from bge import render render.enableMotionBlur(0.85)
無効にするには:
from bge import render render.disableMotionBlur()
Note
グラフィックハードウェアとOpneGLが亜急務レーションバッファをサポートしている必要があります (
glAccum関数)。 |
Built-In 2D Filters
2D Filterアクチュエータで見ることができるフィルタはすべて同じアーキテクチャを用いています。すべての内蔵フィルタは最終的なイメージを生成するためにフラグメントシェーダを使います。よって、ハードウェアがシェーダをサポートしている必要があります。
Blur、Sharpen、Dilation、Erosion、Laplacian、Sobel、Prewitt、Gray Scale、Sepia、Invertが内蔵フィルタとして使えます。これらのフィルタはいくつかのパスで使用できます。
フィルタを使うには:
- 適切なセンサとアクチュエータを作成する。
- 2D Filterアクチュエータを作成する。
- 使用するフィルタ、たとえばBlurを選択する。
- フィルタを適用するパスの番号を指定する。
特定のパスでフィルタを削除するには:
- 適切なセンサとアクチュエータを作成する。
- 2D Filterアクチュエータを作成する。
- Remove Filterを選択する。
- フィルタを削除するパスの番号を指定する。
特定のパスでフィルタを無効にするには:
- 適切なセンサとアクチュエータを作成する。
- 2D Filterアクチュエータを作成する。
- Disable Filterを選択する。
- フィルタを無効にするパスの番号を指定する。
特定のパスでフィルタを有効にするには:
- 適切なセンサとアクチュエータを作成する。
- 2D Filterアクチュエータを作成する。
- Enable Filterを選択する。
- フィルタを無効にするパスの番号を指定する。
Custom Filters
カスタムフィルタによって、GLSLを使って好きな2Dフィルタを定義することができます。使い方は内蔵フィルタと同じですが、2D FilterアクチュエータでCustom Filterを選択する必要があります。そしてテキストエディタでシェーダプログラムを書き、アクチュエータにスクリプト名を設定します。
青セピアの例:
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);
}