画像とテクスチャのベストプラクティス¶
大きなテクスチャと画像をレンダリングする際に必要となるメモリ帯域幅が原因で、アプリケーションの速度が低下することがあります。以下のヒントを参考に、最適な画像とテクスチャを作成して使用することで、アプリケーションのパフォーマンスを改善できます。
アプリケーションのパフォーマンスを最適化する最も簡単な方法は、小さなデータサイズを使って画像のディテールの量を削減することです。データサイズの調整 を参照してください。
Kanzi は、テクスチャで使用する画像の圧縮用に、Adaptive Scalable Texture Compression (ASTC)、Ericsson Texture Compression (ETC)、Block Compression (BCn)、PNG 圧縮をサポートしています。テクスチャを圧縮する (Compressing textures) を参照してください。
ユーザーがマルチコアプロセッサを備えた環境で Kanzi アプリケーションを実行すると、Kanzi は自動的に複数のCPUコアを使用して、kzbファイル内のGPUリソースをRAMにロードします。
Kanzi は、アプリケーションで使用するコアの数を設定することができます。リソースを並列でロードする を参照してください。
大きなテクスチャからダウンスケールされたサブレベルのセットを作成するためにミップマップを使用します。ミップマップはGPUメモリの使用量を3分の1増加させますが、テクスチャ全体をサンプリングする必要がない場合にパフォーマンスを向上させます。テクスチャ付きノードをスケーリングする際には、パフォーマンスを向上させるためにミップマップを使用してください。
ミップマップ (Mipmap) の使用 を参照してください。
テクスチャフィルタリングを適用して、品質またはパフォーマンスを向上させます。この方法は、アプリケーションの動作を事前に把握している場合に非常に効果的です。テクスチャ (Texture) のフィルタリング を参照してください。
タイルアトラスを使用して、実行時にアプリケーションが行わなければならないテクスチャスイッチの数を減らすことで、アプリケーションのフレームレートを向上させます。
タイルアトラスを使用する を参照してください。
すべてのテクスチャで Mipmap Mode プロパティが少なくとも Nearest に設定されていることを確認してください。Mipmap Mode の値 Base は、非常に小さいテクスチャ (例えば 4 x 4 ピクセル以下) にのみ使用してください。
単色のみのテクスチャのサイズを 4 x 4 ピクセル以下にし、Texture Settings プロパティを設定します。
Minification Filter から Nearest へ
Magnification Filter から Nearest へ
Mipmap Mode から Base へ
Text Block を使用する場合、Kanzi はフォントとフォントサイズの組み合わせごとにグリフキャッシュテクスチャを作成します。グリフキャッシュテクスチャがいっぱいになったとき、または Kanzi アプリケーションのパフォーマンスを最適化するために、グリフキャッシュテクスチャのサイズを調整するために、高さと幅を設定できます。
グリフキャッシュテクスチャのサイズ を参照してください。
Kanzi アプリケーションが無効なICCプロファイルを含むpng画像を使用する場合、Kanzi はアプリケーションの実行時にログに警告を出力します。すべてのpng画像からICCプロファイルを削除するには、Project > Properties で Remove ICC Profile From PNG Images プロパティを有効にします。
このプロパティを有効にすると、Kanzi は kzb ファイルのエクスポート中にプロジェクト内の png 画像から ICC プロファイルを削除します。
glTFアセットのテクスチャやマテリアルで使用されるすべての画像リソースに、Ignore Embedded Color Profile プロパティが有効になっていることを確認してください。
このプロパティ Kanzi Studio を有効にすると、
png、jpg、または exr 画像ファイルから ICC プロファイルを削除します。
画像に対してガンマ補正を行いません。
Kanzi Studio プロジェクトに glTF または glb アセットをインポートすると、Kanzi Studio はそのアセットで使用される画像リソースの Ignore Embedded Color Profile プロパティを自動的に有効にします。
ASTC、ETC2、JPEG、または PNG フォーマットを使用するすべての画像リソースで、sRGB Content プロパティが正しく設定されていることを確認してください。
画像にsRGBカラ情報が含まれている場合、sRGB Content プロパティを有効に設定します。これはデフォルトの設定です。
sRGBカラー情報を含む画像の sRGB Content プロパティを無効にすると、Kanzi がその画像を使用するテクスチャを予想以上に明るくレンダリングすることがあります。
画像に法線、粗さ、またはオクルージョンマップなどの非カラー情報が含まれている場合は、sRGB Content プロパティを無効に設定してください。
非色情報を含むテクスチャはリニアフォーマットで保存されます。sRGB Content プロパティを無効にすることで、Kanzi を設定し、カラースペース変換を行わずにイメージデータをシェーダーに直接渡します。
透明性を含むすべての画像リソースに、Linear Premultiply プロパティが正しく設定されていることを確認してください。Kanzi がアルファチャンネルをプリマルチプライ処理する場合は、次のようにします。
リニアカラースペースでは、Linear Premultiply プロパティを有効に設定します。
これはデフォルト値であり、sRGB画像で最もアーティファクトが少なくなります。
画像のカラースペースは通常sRGBで、Linear Premultiply プロパティを無効に設定します。
これにより、標準のカラーワークフロー向けに作成された画像で、より良い結果が得られる場合があります。
サードパーティツールでの画像の準備 を参照してください。
関連項目¶
テクスチャを圧縮する (Compressing textures)