テクスチャおよびイメージとは

基本的なレベルのテクスチャとイメージは、グラフィックス アプリケーションで視覚的なディテールをもたらすために使用されるデータのテーブルにすぎません。 テクスチャとイメージによってもたらされるディテールの種類は、そのテクスチャやイメージの用途によって異なりますが、一般的な例としては、色のサンプル、アルファ (透明度) 値、表面法線、高さの値などが挙げられます。 テクスチャとイメージの主な違いは、テクスチャがオブジェクトまたはシーン全体を表現するために図形表現 (通常は 3D モデル) と共に使用されるのに対し、イメージはオブジェクトまたはシーンを単独で表現する点です。

テクスチャのエンコードと圧縮は、テクスチャで保持されるデータの型、またはテクスチャの次元や "形状" にかかわらず、さまざまな方法で行うことができます。 ただし、エンコードや圧縮の方法とデータの種類の組み合わせによって、結果の良し悪しは変わってきます。

イメージ エディターを使用すると、他のイメージ編集ツールと同様の方法でテクスチャとイメージを作成および変更できます。 イメージ エディターには、3D グラフィックスで使用する MIP マッピングなどの機能も用意されています。また、DirectX でサポートされている高度に圧縮されたハードウェア アクセラレーション テクスチャ形式にも対応しています。

Note

イメージ エディターでは、アイコンやカーソルなどのローカラー イメージはサポートされていません。 これらのイメージを作成または変更するには、Image Editor for Icons (C++) を使用します。

テクスチャの一般的な種類としては、次の形式があります。

テクスチャ マップ

テクスチャ マップには、1 次元、2 次元、または 3 次元の行列にまとめられた色の値が含まれます。 これらは、影響を受けるオブジェクトの色の詳細を指定するために使用されます。 色は通常、RGB (赤、緑、青) のカラー チャネルを使用してエンコードされます。また、透明度を表す 4 番目のチャネルとしてアルファが使用されることもあります。 場合によっては、別の配色で色がエンコードされたり、4 番目のチャネルにアルファ以外のデータ (高さなど) が含まれることもあります。

法線マップ

法線マップには表面法線が含まれます。 これらは、影響を受けるオブジェクトの光源の詳細を指定するために使用されます。 法線は通常、赤、緑、青の色要素を使用してベクターの x、y、および z 次元を格納することによってエンコードされます。 ただし、極座標に基づくエンコードなど、他のエンコードも可能です。

高さマップ

高さマップには、高さフィールドのデータが含まれます。 これらは、シェーダー コードを使用して目的の効果を計算することで、影響を受けるオブジェクトに幾何学的詳細の形式を提供するため、または地形の生成などに使用するデータ ポイントを指定するために使用されます。 高さの値は通常、テクスチャのいずれかのチャネルを使用してエンコードされます。

キューブ マップ

キューブ マップにはさまざまな種類のデータ (色や法線など) を含めることができますが、キューブの各面の 6 つのテクスチャとして分類されます。 このため、キューブ マップは、テクスチャ座標を指定するのではなく、キューブの中心を原点とするベクターを指定することによりサンプリングされます。サンプルは、このベクターとキューブが交差するポイントから取得されます。 キューブ マップは、反射を計算するための環境の近似を指定したり ( 環境マッピングと呼ばれます)、基本的な 2 次元テクスチャよりもゆがみの少ない球形オブジェクトにテクスチャを指定したりするために使用されます。

次のステップ

Visual Studio の イメージ エディターを使用して、テクスチャとイメージを作成および変更する方法について説明します。 イメージ エディターは、DirectX アプリケーションの開発で使用されるものをはじめ、さまざまな形式のテクスチャとイメージをサポートしています。