テクスチャ (Textures)¶
テクスチャを使用して、Image ノード内のコンテンツを表示し、テクスチャ付きマテリアルの外観を設定し、Texture Brush ブラシ内のコンテンツを表示します。一般的な画像ファイル形式からテクスチャを作成できます。
イメージ (Images) を参照してください。
Kanzi Studio プロジェクトでは、画像ファイルは Library > Resource Files > Images に配置されています。これらの画像ファイルは、ハードドライブ上のファイルに対応しています。ハードドライブ上のファイルを変更すると、Kanzi はそのファイルから生成されたテクスチャに自動的に変更を適用します。ハードドライブからファイルを削除すると、そのファイルを Kanzi プロジェクトで使用することはできません。
画像の読み込み時間は、そのサイズと圧縮に依存します。
画像サイズ は、データをRAMにロードするのに必要な時間を定義します。
画像圧縮 はサイズを削減できますが、アプリケーションが画像を使用する前にそれを解凍する必要があることを覚えておいてください。これは通常、生データを読み込むよりも遅くなります。生の画像形式を使用することで、データがRAMにロードされ、GPUメモリに送信されるため、最速の起動時間を達成できることがよくあります。画像圧縮 を参照してください。
テクスチャ圧縮 は、選択した圧縮アルゴリズムをサポートするGPUを持つデバイスで使用できます。圧縮を使用すると、kzbファイルからRAMへのロード時と、RAMからGPUメモリへのロード時のデータサイズが小さくなります。また、予約されるGPUメモリも少なくなります。ターゲットハードウェアによっては、テクスチャ圧縮を使用することでロード時間を短縮できます。テクスチャ圧縮を使用する前に、選択したテクスチャ圧縮フォーマットがターゲットプラットフォームでサポートされていることを確認してください。
Kanzi は ASTC、ETC、および BCn 圧縮形式をサポートしています。
ターゲットハードウェアが選択したテクスチャ圧縮アルゴリズムをサポートしていない場合、ターゲットデバイスで Kanzi アプリケーションを実行すると、Kanzi がログに警告メッセージを出力します。Kanzi は、ターゲットハードウェアがサポートしていない圧縮テクスチャフォーマットを使用している表面を黒く塗ります。
テクスチャを圧縮する (Compressing textures) を参照してください。
テクスチャタイプ (Texture types)¶
これらのテクスチャは Kanzi で利用可能です。
シングルテクスチャは、テクスチャに単一画像を使用します。 単一テクスチャの使用 を参照してください。 |
|
キューブマップテクスチャは、環境の反射を表現するために6つの正方形の画像を1つのテクスチャに結合します。各画像は、キューブマップされたオブジェクトの視点から見た場合のx、y、z軸に沿った6つの方向のうちの1つの風景を表します。 キューブマップテクスチャ (Cube-map Texture) を使用する を参照してください。 |
|
ボリュームテクスチャは、3D 形状の多数の断面スライスで構成された単一の 2D イメージを使用して、3D ボリュームテクスチャを定義します。この手法は、3D データではリソース負荷が高すぎる、またはプロシージャルに生成するのが難しい煙、炎、雲などのエフェクトによく使用されます。 ボリュームテクスチャを使用する を参照してください。 |
|
Render Target Texture を使用して、コンテンツをテクスチャにレンダリングしたり、アプリケーションの一部にのみアンチエイリアスを適用したりできます。レンダリングターゲットテクスチャは、他のテクスチャと同様に使用できます。たとえば、Texture Brush で使用したり、Image ノードの画像として使用したりできます。 レンダーターゲットテクスチャ (Render Target Texture) を使用する と Kanzi でOpenGL ES 3.0+を使用する を参照してください。 |
|
Cubemap レンダーパスをキューブマップテクスチャにレンダリングするには、Cubemap Render Target Texture を使用します。 キューブマップ反射の作成 を参照してください。 |
|
.hdr、.dds、および .exr 画像を使用して、ハーフフロートおよび浮動小数点データを使用してHDR画像を Kanzi プロジェクトに取り込むことができます。テクスチャの色フォーマットの設定 を参照してください。
画像ターゲットフォーマットの設定¶
プロジェクトをkzbファイルにエクスポートする際、Kanzi Studio はプロジェクト内の画像を元の画像のフォーマットで読み込み、各画像に対して Target Format プロパティで設定したフォーマットでkzbファイルに書き込みます。
元の画像のファイル形式が Target Format プロパティで選択した形式と同じ場合、Kanzi Studio は次の条件下で画像をkzbファイルに書き込む際に画像を変更しません。
Premultiply Alpha は無効になっているか、アルファチャンネルをプリマルチプライ処理する必要がありません。
この設定を変更するには、Project > Properties で Premultiply Alpha プロパティを使用します。異なる設定を使用したい画像ファイルのプロパティでこの値をオーバーライドできます。
Generate Mipmaps が無効である。
Generate Mipmaps プロパティの値は、画像ファイルごとに設定できます。
Round up Image Dimensions to Nearest Power of Two プロパティは無効になっています。
Project > Properties で Round up Image Dimensions to Nearest Power of Two プロパティの値を設定できます。
Round up Image Dimensions to Nearest Power of Two プロパティを有効にすると、Kanzi Studio はプロジェクト内の画像の幅と高さを kzb ファイルのエクスポート時に最も近い2のべき乗に切り上げます。例えば、Kanzi Studio は 40 x 30 ピクセルの画像を kzb ファイルに 64 x 32 ピクセルのサイズでエクスポートします。
画像がJPEGまたはPNG形式であり、Kanzi Studio がkzbファイルにエクスポートする画像を変更したくない場合は、画像の Properties で Use Original Image プロパティを有効にしてください。
画像のターゲットフォーマットを設定するには、以下のようにします。
Library > Resource Files > Images で、ターゲットフォーマットを設定したい画像を選択します。
Properties で、Kanzi アプリケーションで使用したい画像フォーマットに Target Format プロパティを設定します。
選択するフォーマットは重要です。なぜなら、これがkzbファイルのサイズや、Kanzi アプリケーションが画像をロードする際の読み込み時間に影響を与えるからです。ターゲットデバイスが選択した画像のフォーマットをサポートしていることを確認してください。画像とテクスチャのベストプラクティス および テクスチャを圧縮する (Compressing textures) を参照してください。
前のステップで選択した画像フォーマットが圧縮をサポートしている場合、使用したい圧縮方式を設定してください。テクスチャを圧縮する (Compressing textures) を参照してください。
sRGBをサポートする画像フォーマットの場合:
画像にsRGBカラ情報が含まれている場合、sRGB Content プロパティを有効に設定します。これはデフォルトの設定です。
sRGBカラー情報を含む画像の sRGB Content プロパティを無効にすると、Kanzi がその画像を使用するテクスチャを予想以上に明るくレンダリングすることがあります。
画像に法線、粗さ、またはオクルージョンマップなどの非カラー情報が含まれている場合は、sRGB Content プロパティを無効に設定してください。
非色情報を含むテクスチャはリニアフォーマットで保存されます。sRGB Content プロパティを無効にすることで、Kanzi を設定し、カラースペース変換を行わずにイメージデータをシェーダーに直接渡します。
Kanzi でアルファチャンネルをプリマルチプライ処理したい場合は、次のようにします。
リニアカラースペースでは、Linear Premultiply プロパティを有効に設定します。
これはデフォルト値であり、sRGB画像で最もアーティファクトが少なくなります。
画像のカラースペースは通常sRGBで、Linear Premultiply プロパティを無効に設定します。
これにより、標準のカラーワークフロー向けに作成された画像で、より良い結果が得られる場合があります。
サードパーティツールでの画像の準備 を参照してください。
APIでのテクスチャの使用¶
詳細については、Texture クラスを参照してください。
関連項目¶
キューブマップテクスチャ (Cube-map Texture) を使用する
イメージベースのライティングキューブマップテクスチャを使用する
レンダーターゲットテクスチャ (Render Target Texture) を使用する
テクスチャを圧縮する (Compressing textures)