レンダーターゲットテクスチャ (Render Target Texture) を使用する

Render Target Texture を使用して、コンテンツをテクスチャにレンダリングしたり、アプリケーションの一部にのみアンチエイリアスを適用したりできます。レンダリングターゲットテクスチャは、他のテクスチャと同様に使用できます。たとえば、Texture Brush で使用したり、Image ノードの画像として使用したりできます。

アンチエイリアスの適用 と テクスチャ (Textures) を参照してください。

例えば、Kanzi アプリケーションに複数のシーンがある場合、レンダーターゲットテクスチャを使用して、他のシーンのコンテンツを現在のシーンに表示することができます。

コンテンツをテクスチャにレンダリングする

コンテンツをテクスチャにレンダリングするには:

  1. Library Alt を押しながら右クリック Materials and Textures で、Render Target Texture を選択します。

    ../../_images/create-render-target-texture.png
  2. Node Tree で、テクスチャにレンダリングしたいコンテンツを持つ2Dノードを作成または選択します。

    例えば、テクスチャにレンダリングしたいコンテンツを含む Viewport 2D ノードを選択します。

    ../../_images/prefab-for-render-target-texture.png
  3. Node Tree で、前のステップで作成または選択したノードを選択し、Properties で追加して設定します。

    • 選択したノードのコンテンツをレンダリングしたい Render Target Texture に Render Target を設定します。

    • Off-Screen Rendering とプロパティを有効にします。

    ../../_images/layer-render-target-property.png
  4. (オプション) To set Kanzi to render the content to the texture only once, in the Properties add the Caching Mode property and set it to Enabled.

    この方法で、Kanzi を設定してノードをキャッシュし、キャッシュ画像からノードをレンダリングし続けます。たとえば、アプリケーションの起動時に一度だけレンダーターゲットテクスチャを作成するために、キャッシュを有効にしたいノードに対して Kanzi を設定します。2Dノードのキャッシング を参照してください。

    ../../_images/caching-mode-enabled.png
  5. 最初のステップで作成した Render Target Texture を、2番目のステップで作成したノードのコンテンツを表示したいノードに適用します。

    Render Target Texture を Texture Brush で使用するか、Image ノードの画像として使用できます。

    例:

    1. Node Tree Alt を押しながら右クリック で Empty Node 2D を選択します。

    2. Node Tree で Empty Node 2D ノードを選択し、Properties で Background Brush プロパティを追加し、ドロップダウンメニューで + Texture Brush を選択します。

      ../../_images/select-create-texture-brush.png
    3. Background Brush プロパティの横にある image0 をクリックし、最初のステップで作成した Empty Node 2D に表示したい Render Target Texture に Texture Brush の Brush Texture プロパティを設定します。

      ../../_images/image-property-render-target-texture.png
    4. Node Tree で Empty Node 2D を選択し、Properties で Layout Width と Layout Height プロパティを追加して設定し、Render Target Texture のコンテンツを表示したいサイズにします。

  6. (オプション) で、Library の中から Render Target Texture を選択します。

    Properties では、Render Target の Height と Width を設定することができます。また、Automatic 設定を使用して、使用されるノードのサイズに基づいて Render Target のサイズを設定することもできます。このプロパティは、レンダーパスではまだ使用できません。

    ../../_images/render-target-automatic-size.png

    Texture Settings プロパティを使用してテクスチャフィルタリングを制御します。まず、Mipmap Mode プロパティを使用したいミップマップモードに設定します。次に、Minification Filter と Magnification Filter プロパティを Linear に設定します。ミップマップを使用するとメモリ使用量が増加することに注意してください。

    通常、最初はテクスチャフィルタリングを以下のように設定するのが適切です。

    • Minification Filter から Linear へ

    • Magnification Filter から Linear へ

    • Mipmap Mode から Nearest へ。テクスチャが縮小されていないと確信している場合は Base を選択し、それ以外の場合は Nearest から始めてください。例えば、Render Target Texture のデフォルト値は Base です。この設定では、テクスチャにはミップマップレベルがなく、ベースレベルが常にサンプリングされます。ミップマップ (Mipmap) の使用 を参照してください。

    ../../_images/texture-settings-properties.png

    一部のテクスチャフォーマットは、OpenGL ES バージョン 2.0 より高いバージョンで利用可能です。OpenGL ES バージョンを設定するには、メインメニューで Project > Properties を選択し、Properties で Target Graphics API プロパティを設定します。

    ../../_images/project-properties.png ../../_images/target-graphics-api-opengl-es-30.png

    例えば、Target Graphics API プロパティを OpenGL ES 3.0 に設定し、HDR および浮動小数点画像を .dds 形式でインポートし、テクスチャのカラーフォーマットを設定します。Kanzi でOpenGL ES 3.0+を使用する を参照してください。

    Mipmap Mode

    Nearest サンプル

    Linear サンプル

    Base

    サンプル数:1

    テクスチャ内の最も近いピクセルを使用します。この組み合わせはポイントサンプルと等しいです。すべての組み合わせの中で最も粗い結果を返し、縮小されたときにエイリアシングを引き起こす可能性があります。

    このコンビネーションを使用すると、テクスチャを拡大するときに非常にシャープな結果が得られます。

    サンプル数:4

    テクスチャ内の最も近い 4 ピクセルの間で補間します。

    グラデーションを拡大するにはこのコンビネーションを使用します。一方、縮小には使用しないでください。

    Nearest

    サンプル数:1

    テクスチャキャッシングを助け、エイリアシングを減少させます。しかし、テクスチャが平坦な表面で使用されるときに、鋭い遷移を生じることがあります。

    良好なパフォーマンスを必要とするターゲットプラットフォームで、より高い品質を提供する余裕がない場合には、このコンビネーションを使用します。

    このコンビネーションが通常、最も高速です。

    サンプル数:4

    2 つのミップマップレベルから 2 つのサンプルを取り、それらのサンプル間で補間します。

    このコンビネーションは、新規作成時に使用します。

    このコンビネーションは通常、品質とパフォーマンスのバランスが最も取れています。

    縮小されないことがわかっている場合は、Mipmap Mode を Base に設定できます。

    Linear

    サンプル数:2

    2 つのミップマップレベルから 1 つのサンプルを取り、それらのサンプル間で補間します。

    このコンビネーションは特殊効果に使用します。例えば、リムライト効果を実装するために使用します。

    サンプル数:8

    2 つのミップマップレベルから 4 つのサンプルを取り、それらのサンプル間で補間します。

    最高品質が必要な場合、結果を簡単にレンダリングできる能力がプラットフォームあれば、このコンビネーションを使用します。

    このコンビネーションでは、パフォーマンス上の悪影響が最も大きくなります。

Render Target Texture プロパティタイプ

レンダーターゲットテクスチャの利用可能なプロパティタイプのリストについては、レンダーターゲットテクスチャ (Render Target Texture) および テクスチャ (Texture) を参照してください。

関連項目

アンチエイリアスの適用

2Dノードのキャッシング

単一テクスチャの使用

キューブマップテクスチャ (Cube-map Texture) を使用する