Doc:JA/2.6/Manual/Game Engine/Logic/Actuators/2D Filters

提供: wiki
< Doc:JA‎ | 2.6‎ | Manual‎ | Game Engine‎ | Logic‎ | Actuators
2018年6月29日 (金) 05:47時点におけるYamyam (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

2D Filter アクチュエータ

2D Filterはイメージフィルタのアクチュエータです。最終的にレンダリングイメージに対して適用されます(FPSゲームのサンプル画像を提供してくれた人々に感謝)。

2D Filter の種類

次のフィルターが用意されています
2D Filters
Custom Filter
Invert
Sepia
Gray Scale
Prewitt
Sobel
Laplacian
Erosion
Dilation
Sharpen
Blur
Motion Blur
Remove Filter
Disable Filter
Enable Filter
どのフィルターもパラメータはひとつだけです
Pass Number
フィルターを使うパス番号
フィルターの詳細については以下の説明をご覧ください。

Motion Blur

(モーションブラー)

Motion Blur を使って動きの表現をするには、以前のフレームの情報が必要です。図"2D Filters: Gmae Logic"はBlenderのウィンドウに表示されたロジックブリックです。

2D Filters: Motion Blur.
2D Filters: Game Logic.

フィルタを有効にするには:

  1. 適切なセンサとコントローラを追加する。
  2. 2D Filterアクチュエータを追加する。
  3. ドロップダウンリストからMotion Blurを選択する。
  4. Value(モーションブラーの度合い)

フィルタを無効にするには:

  1. 適切なセンサとコントローラを追加する。
  2. 2D Filterアクチュエータを追加する。
  3. ドロップダウンリストからMotion Blurを選択する。
  4. Enableボタンを押して無効モードにする。

Pythonコントローラを使ってモーションブラーを有効にすることもできます:

from bge import render
render.enableMotionBlur(0.85)

無効にするには:

from bge import render
render.disableMotionBlur()
註釈
グラフィックハードウェアとOpneGLがアキュムレーションバッファをサポートしている必要があります (glAccum関数)。


Built-In 2D Filters

(組み込みの2次元フィルター)

2D Filterアクチュエータで見ることができるフィルタはすべて同じアーキテクチャを用いています。すべての内蔵フィルタは最終的なイメージを生成するためにフラグメントシェーダを使います。よって、ハードウェアがシェーダをサポートしている必要があります。

2D Filters: Motion Blur.
2D Filters: Sepia.
2D Filters: Sobel.

BlurSharpenDilationErosionLaplacianSobel
PrewittGray ScaleSepiaInvertが内蔵フィルタとして使えます。これらのフィルタはいくつかのパスで使用できます。

フィルタを使うには:

  1. 適切なセンサとアクチュエータを作成する。
  2. 2D Filterアクチュエータを作成する。
  3. 使用するフィルタ、たとえばBlurを選択する。
  4. フィルタを適用するパスの番号を指定する。

特定のパスでフィルタを削除するには:

  1. 適切なセンサとアクチュエータを作成する。
  2. 2D Filterアクチュエータを作成する。
  3. Remove Filterを選択する。
  4. フィルタを削除するパスの番号を指定する。

特定のパスでフィルタを無効にするには:

  1. 適切なセンサとアクチュエータを作成する。
  2. 2D Filterアクチュエータを作成する。
  3. Disable Filterを選択する。
  4. フィルタを無効にするパスの番号を指定する。

特定のパスでフィルタを有効にするには:

  1. 適切なセンサとアクチュエータを作成する。
  2. 2D Filterアクチュエータを作成する。
  3. Enable Filterを選択する。
  4. フィルタを無効にするパスの番号を指定する。


Custom Filters

(カスタムフィルター)

2D Filters: Custom Filter.

カスタムフィルタによって、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);
}