OGL テクスチャ

 
 
 

| Render Tree の使い方

カテゴリ: リアルタイム > OpenGL

シェーダ ファミリ: リアルタイム

出力: リアルタイム

[OGL Texture]シェーダは、単一のテクスチャ イメージのイメージ ソース、投影方法などの属性を定義しますが、複数の[OGL Texture]ノードをまとめて使用して、より複雑なマルチテクスチャ エフェクトを作成することもできます。各テクスチャは指定のターゲットに設定されます。

一般

ユニフォーム名(Uniform Name)

この[OGL Texture]シェーダが、ユニフォームとしてサンプラ タイプ([sampler2D] など)を宣言しているプログラム可能なシェーダに接続されている場合は、シェーダ コードに定義されているユニフォーム変数の名前を入力します。

ターゲット(Target)

1 つの描画パスで複数のテクスチャリング操作を行うためにテクスチャ ステージを定義します。

各[OGL Texture]ノードは、固有のテクスチャ ターゲットにバインドする必要があります。テクスチャ ターゲットとは、テクスチャが設定されているレイヤです。これらのレイヤは、プログラム的にフラグメント シェーダを介して調整されます。利用できるテクスチャ ターゲットの数は、ご使用のハードウェアによって異なります。

イメージ(Image)

使用するイメージ クリップを定義します。[編集](Edit)をクリックすると開く[Image Clip]プロパティエディタで、現在使用されているイメージ クリップを修正できます。新しいクリップを取得するには、[新規]をクリックし、ファイルから新しいクリップを選択するか、またはソースからクリップを作成するかを指定します。イメージを操作する方法については、「イメージのソースとクリップを管理する」(「テクスチャリング」)を参照してください。

テクスチャ空間(Texture Space)

テクスチャ プロジェクションを選択できます。テクスチャ プロジェクションが定義されていない場合は、[新規](New)をクリックして作成できます。テクスチャ プロジェクションを定義済みの場合は、[編集](Edit)をクリックして編集できます。

テクスチャ プロジェクションを持つ複数のオブジェクトが同じマテリアルを共有している場合、特定のオブジェクトまたはシーンの全オブジェクトで使用されるテクスチャ プロジェクションを指定するためのオブジェクト選択リストが[テクスチャ空間]ウィジットに表示されます。

[編集](Edit): 選択したテクスチャ プロジェクションの[テクスチャ プロジェクション]プロパティ エディタを開きます。

[新規](New): 作成する新しいテクスチャプロジェクションを指定します。以下の中から選択できます。

  • [UV]: U 方向、V 方向に沿ってテクスチャを投影します。

  • [平面 XY](Planar XY): XY 座標のみにテクスチャを投影します。

  • [平面 XZ](Planar XZ): XZ 座標のみにテクスチャを投影します。

  • [平面 YZ](Planar YZ): YZ 座標のみにテクスチャを投影します。

  • [円柱状](Cylindrical): オブジェクトが円柱で包まれているかのようにテクスチャを投影します。

  • [球状](Spherical): 若干の歪みを加えてサーフェイス全体を球状にマッピングしながら、オブジェクトを包み込みます。

  • [空間的](Spatial): テクスチャはシーンの原点を中心点として投影されます。

  • [キュービック](Cubic): オブジェクトのポリゴンを立方体の面に割り当ててからデフォルトで各面にテクスチャを投影することにより、テクスチャをオブジェクトに適用します。3 次元投影のレイアウトは、[Texture Support]プロパティ エディタを使用して完全にカスタマイズ可能です。

  • [カメラ プロジェクション](Camera Projection): カメラのセンターを中心点としてテクスチャがマッピングされます この座標系では、カメラが「ワールド」の中心であり、そのアップ ベクトルの向きは Z 軸の負方向と同じです。その結果は、カメラから投影されたような画像となります。カメラの動きに応じてテクスチャも動き、スケーリング、回転、移動の影響を受けます。

  • [ユニーク UV(polymesh)](Unique Uvs (Polymesh)): 各ポリゴンの UV 座標を、その各テクスチャ片に割り当てます。これにより、2 つのポリゴンが互いに重なることはありません。

  • [アドバンス](Advanced): テクスチャ プロジェクションを明示的に定義するTextureWizardを開きます。

ボーダー(Border)

テクスチャ イメージのボーダー(境界)カラーを設定します。

ボーダーは、オブジェクトの特定部分にテクスチャを固定したいときに使用します。残りの部分のカラーが乱れることはありません。ボーダーを使用してテクスチャを固定すると、オブジェクトのテクスチャで覆われていない部分はボーダー カラーを使用します。

変調(Modulation)

ディフューズ ライティング属性がどのようにテクスチャ カラーに影響するかを決定します。既定のテクスチャ環境は[変調](GL_MODULATE)で、テクスチャ カラーと原色(ライティング カラー)を掛け合わせます。

選択可能なテクスチャ変調モードは、以下のとおりです。

  • [変調](Modulate): [C = Cf*Ct, A = Af * At]

  • [デカール](Decal): [C = Cf(1-At) + CtAt, A = Af]

  • [ブレンド](Blend): [C = Cf(1-Ct) + CcCt, A = AfAt]

  • [置換](Replace): [C = Ct, A = At]

  • [追加](Add): [C = Cf+Ct, A = Af + At]

(f = フラグメント、t = テクスチャ、c = GL_TEXTURE_ENV_COLOR)

オブジェクトのシェーディングと変調が実行される順番は、次の通りです。

  1. 固定機能シェーディング ノード、頂点カラー、またはプログラム可能な頂点シェーダのいずれかによりオブジェクトがシェーディングされます。

  2. 次に、ターゲット 0 に設定されたテクスチャが、前のシェーディングの上で変調されます。

  3. ターゲット 1 に設定されたテクスチャが、ターゲット 0 に設定されたテクスチャの上で変調されます。

  4. この処理は、ご使用のハードウエア上で利用できるテクスチャ ターゲットの最大数に達するまで続きます。

圧縮(Compression)

テクスチャ圧縮のオン/オフを切り替えます。

テクスチャの品質があまり重要でない場合(たとえば、テクスチャが離れていたり、既に多くのノイズがあるなど)は、[圧縮](Compression)を有効にしてテクスチャ メモリを節約します。これで、テクスチャが S3TC フォーマットに変換されるため、ビデオ メモリ上で約 4: 1 に圧縮できます。

フォーマット(Format)

イメージ フォーマットを指定します。通常は[RGB/RGBA]を使用しますが、必要に応じて[DSDT(赤/緑)]や[DSDT(赤/青)]を指定できます。たとえば、NV2x ベースのビデオカードでバンプ反射命令を使用するためにテクスチャを DSDT 形式に変換する必要がある場合があります。

フィルタ

マグニフィケーションフィルタ(Magnification Filter)

カメラに近いテクスチャを滑らかにするときに使用する最適化タイプを決定します。[マグニフィケーションフィルタ]は、テクセルが大きい(つまり、適用範囲が 1 ピクセル領域を超える)場合の、テクスチャのフィルタリング方法をコントロールします。

縮小フィルタ(Minification Filter)

カメラから離れたテクスチャを滑らかにするときに使用する最適化タイプを決定します。[縮小フィルタ]は、テクセルが小さい(つまり、その適用範囲が画面の 1 ピクセルに収まる)場合の、テクスチャのフィルタリング方法をコントロールします。

ミップマップ LOD バイアス(Mipmap LOD Bias)

[縮小フィルタ]でミップマッピングを使用する場合は、テクスチャがカメラから離れるときに LOD バイアスがディテール レベルを上下に変化させ、テクスチャのぶれやアーティファクトを軽減します。

異方性フィルタリングレベル(Anisotropic Filtering Level)

異方性フィルタリングにより、メモリをあまり消費せずにカメラから離れたテクスチャのディテール レベルを向上させることができます。

異方性フィルタリングを使用して、よりくっきりした縮小フィルタを取得できます。この操作を実行するには、[縮小フィルタ](Minification Filter)[リニア](Linear)に設定し、[異方性フィルタリングレベル](Anisotropic Filtering Level)を大きくします。

Render Tree の使い方

このシェーダを使用すると、テクスチャをリアルタイム シェーダ ツリーに追加できます。他の任意のリアルタイム シェーダに出力できます。イメージ クリップ ノードの入力を受け取り、他のリアルタイム シェーダからの入力を 1 つ受け取ることができます。