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