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

アプリケーションのパフォーマンスを向上させるために、特定のポイント以降で静的になるか、めったに変更されない2Dノードのレンダリングをキャッシュすることができます。この方法を使用して、複雑なノードのレンダリングを高速化します。

2Dノードのキャッシュを有効にすると、そのノードは自分自身のためにキャッシュ画像を生成し、自分自身をそれにレンダリングし、今後のフレームでは自分自身を再びレンダリングする代わりに生成されたキャッシュ画像を使用します。

以下の操作を行うことができます。

3Dコンテンツのレンダリングをキャッシュするには、キャッシュしたい3Dコンテンツを含む Scene ノードの親 Viewport 2D ノードでキャッシングを設定します。

キャッシングはGPUメモリを消費するため、デフォルトで無効になっています。ノードのキャッシングが無効になっている場合、Kanzi はそのノードを通常通りレンダリングし、レンダリングキャッシュに関連するすべてのリソースを解放します。

自動レンダリングキャッシュ更新の使用

レンダリングが高コストで、レンダリングが頻繁に変わらない複雑なノードには、自動レンダリングキャッシュ更新を使用してください。Kanzi を設定して、2Dノードをキャッシュし、そのノードまたはその子孫ノードのレンダリングが変わり、キャッシュ画像がそのノードを正しく表さなくなったときにレンダリングキャッシュを自動的に更新することができます。例えば、ノードのサイズや形状が変わった場合です。

ヒント

レンダリングがあまり変わらない複雑なノードで、子ノードのレンダリングが頻繁に変わる場合に自動キャッシュ更新を有効にしたいときは、それらの子ノードを別のノードに移動してください。

2Dノードのレンダリングキャッシュを自動的に更新するように Kanzi を設定するには、Node Tree でノードを選択し、Properties で Render Target > Caching Mode プロパティを追加し、それを Automatic に設定します。

この方法で、Kanzi を設定して、次回ノードをレンダリングする際にノードをキャッシュし、ノードまたはその子孫のレンダリングの変更を検出しないようにします。

自動レンダリングキャッシュ更新を有効にすると、Kanzi はレンダリング中にノードまたはその子孫ノードの変更を継続的にチェックします。

  • ノードが静的である場合、Kanzi はキャッシュ画像を再作成するか、既存で有効なキャッシュ画像を使用してノードをレンダリングします。

  • ノードのレンダリングが変更された場合、Kanzi はキャッシュ画像を無効にし、キャッシュせずにノードを通常通りレンダリングします。

../../_images/caching-mode-automatic.png

レンダリングキャッシュの更新を手動で制御する

When you know exactly when the render cache of a 2D node needs updating, you can control the cache updates manually. You can enable caching for a node and set Kanzi to update the render cache when the node or any of its descendants change. For example, use the Set Property action or a binding to invalidate the render cache that you want Kanzi to update.

レンダリングキャッシュの更新を手動で制御するには:

  1. Node Tree でキャッシュしたいノードを選択し、Properties で Render Target > Caching Mode プロパティを追加し、Enabled に設定します。

    この方法で、Kanzi を設定して、次回そのノードをレンダリングする際にノードをキャッシュし、キャッシュを無効にするまでキャッシュからノードをレンダリングし続けます。

    Kanzi がすでにノードをキャッシュしている場合、キャッシュは自動的に更新されません。

    ../../_images/caching-mode-enabled.png
  2. Kanzi をレンダリングキャッシュを更新するように設定するには、更新したいノードのレンダリングキャッシュで Cache Valid プロパティを無効にして、レンダリングキャッシュを無効にします。

    ノードまたはその子孫のいずれかが変更され、次回そのノードをレンダリングする際に Kanzi がレンダリングキャッシュを更新するようにしたい場合は、キャッシュの無効化を設定します。

    例えば、ノードを変更するトリガーで、Set Property アクションを作成し、Cache Valid プロパティを無効にします。

    注釈

    レンダリングキャッシュを無効にしても、ノードによって割り当てられたリソースは解放されません。

    レンダリングキャッシュに関連付けられたリソースを解放するには、Caching Mode プロパティを Disabled に設定します。

関連項目

レンダリングのベストプラクティス

レイアウトのレンダリングを最適化する

効率的なレンダリングのためのノードの設定

Sorting Filter でオーバードローを防ぐ

部分的に透過的なノードをレンダリングする

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

アプリケーションのパフォーマンスのトラブルシューティング