このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
カラーマップとトゥルーカラーの違い
表面、パッチ、イメージなどの多くのグラフィックス オブジェクトでは、色を指定する手法として、カラーマップ (インデックス付きカラーを使用) とトゥルーカラーの 2 種類がサポートされています。各手法には異なるワークフローがあり、視覚的表現に異なる影響を与えます。
ワークフローの違い
カラーマップは m 行 3 列の配列であり、各行で RGB 3 成分を指定します。グラフィカル表現でカラーマップを使用するには、グラフィックスのそれぞれの位置にインデックスを割り当てます。各インデックスは、グラフィックス内の指定した場所に色を表示するためにカラーマップの行を指定します。一方、トゥルーカラーを使用する場合、グラフィックス内のすべての場所に RGB 3 成分を指定します。
どちらの手法を使用するかを決めるときには、次のいくつかの点について検討します。
トゥルーカラーはより直接的です。グラフィックスの特定の場所に、特定の赤、緑、青の値を割り当てる場合は、通常、トゥルーカラーを使用して行う方が簡単です。
カラー パレットの領域内での変更は、カラーマップで行う方が簡単です。たとえば、青から緑へのグラデーションの遷移を明るくする場合、カラーマップでそれらの行を編集する方が、グラフィックスの個々の位置の色を編集するよりも簡単です。
データの形式が、いずれかのワークフローの方に、より適している可能性があります。たとえば、圧縮された GIF イメージの多くはインデックス付きカラーを使用して保存されます。
どちらのカラーリング手法でも、色配列 C
を使用して色の情報を指定します。C
の形状は、グラフィックス オブジェクトのタイプや選択したカラーリングの方法によって異なります。次の表は、相違点をまとめています。
グラフィックス オブジェクトのタイプ | 色配列 C を含むプロパティ | インデックス付きカラーの C の形状 | トゥルーカラーの C の形状 |
---|---|---|---|
Surface | CData | C は m 行 n 列の配列で、z 座標配列と同じサイズです。C(i,j) の値は、Z(i,j) のカラーマップ インデックスを指定します。 | C は m x n x 3 配列であり、C(:,:,i) は z 座標配列と同じサイズです。C(i,j,1) は Z(i,j) の赤の成分を指定します。C(i,j,2) は Z(i,j) の緑の成分を指定します。C(i,j,3) は Z(i,j) の青の成分を指定します。 |
Image | CData | C は m 行 n 列のイメージに対する m 行 n 列の配列です。C(i,j) の値は、ピクセル (i,j) のカラーマップ インデックスを指定します。 | C は m 行 n 列イメージの m x n x 3 配列です。C(i,j,1) は、ピクセル (i,j) の赤の成分を指定します。C(i,j,2) は、ピクセル (i,j) の緑の成分を指定します。C(i,j,3) は、ピクセル (i,j) の青の成分を指定します。 |
Patch (x, y, z) | CData | パッチ面に色を指定する場合、C は、m 個のパッチ面に対する 1 行 m 列配列です。C(i) は、面 i のカラーマップ インデックスを指定します。パッチの頂点に色を指定する場合、 C は m 行 n 列配列であり、m は面ごとの頂点の数で、n は面の数です。C(i,j) は面 j の頂点 i のカラーマップ インデックスを指定します。 | パッチ面に色を指定する場合、C は m 個のパッチ面に対する m 行 3 列配列です。C(i,:) は、面 i の赤、緑、および青の値を指定します。パッチの頂点に色を指定する場合、 C は n 行 3 列配列であり、n は頂点の合計数です。C(i,:) は、頂点 i の赤、緑、および青の値を指定します。 |
Patch (面-頂点データ) | FaceVertexCData | パッチ面に色を指定する場合、C は m 個のパッチ面に対する 1 行 m 列配列です。C(i) は面 i のカラーマップ インデックスを指定します。パッチの頂点に色を指定する場合、 C は 1 行 n 列配列であり、n は頂点の合計数です。C(i) は、頂点 i のカラーマップ インデックスを指定します。 | パッチ面に色を指定する場合、C は m 個のパッチ面に対する m 行 3 列配列です。C(i,:) は、面 i の赤、緑、および青の値を指定します。パッチの頂点に色を指定する場合、 C は n 行 3 列配列であり、n は頂点の合計数です。C(i,:) は、頂点 i の赤、緑、および青の値を指定します。 |
視覚的表現の違い
カラーマップは、m 色のパレットを提供します (m はカラーマップの長さ)。一方、トゥルーカラーは、256 × 256 × 256 ≈ 1.68 百万色のカラー パレットを提供します。
必要なカラー パレットの大きさを決定するときには、次の要素について考慮してください。
大きな領域を単色で塗りつぶすには、小さなカラー パレットが最も効率的な方法です。また、表面の輪郭を可視化する場合にも役に立ちます。
カラー パレットが大きくなるほど、遷移が精細になり、色のグラデーションが滑らかになります。
インデックス付きカラーとトゥルーカラーの差がより顕著になる状況の 1 つとして、パッチ面全体への頂点の色の内挿があります。次の 2 つのパッチは、極端な例を表しています。左側のパッチは小さなカラーマップを使用しているのに対して、右側のパッチはトゥルーカラーを使用しています。
カラーマップのパレットの色数が限られていることに懸念がある場合は、さらに色を追加できます。カラーマップを使用したカラー スキームの変更は、特定の色数のカラーマップを使用する方法について説明しています。