Open Source Web Development Tutorials - Dev Shed
OpenGLによる色の使用方法
(2009/01/20公開)
OpenGLのAPI:色の操作
OpenGLで色を操作するための中心となるのは、glColor()およびglIndex()の2つの関数です。前者はRGBAモードで、後者は色インデクスまたは色マップモードで使用されます。詳細については、以下で説明します。
glColor*()
*は、この関数に複数のバージョンがあることを示すために使われています。glColor()には14の異なるバージョンがあり、それぞれが異なるデータ型をパラメータとして受け付けます。この区別は、関数に付加される接尾辞によって行われます。
例えば、整数のパラメータを受け付けるバージョンの接尾辞はiで、glColor3i()となります。接尾辞に3を含むすべてのバージョンは、パラメータとして赤、青、緑の色要素を表す3つのパラメータを受け付けます。アルファは自動的に最大値に設定されます。アルファの値を受け付けるよう設定するには、接尾辞に4を含むバージョンの関数を使う必要があります。このバージョンの関数は、追加のパラメータとしてアルファ要素の値を受け付けます。例えば、現在の色を緑に設定し、アルファを最大値に設定せず、値を整数で指定するステートメントは次のようになります。
glColor3i(0,255,0,0);
現在の色を赤に設定し、アルファを最大値に設定し、整数値を使用するステートメントは次のようになります。
glColor3i(255,0,0,1);
glIndex*()
この関数は、色インデクスモードが必要なときに使います。この関数は、現在の色インデクスを更新します。重要な点として、現在のインデクスが浮動小数点数値として保存されることを覚えておく必要があります。引数として整数を渡すと、浮動小数点数値に変換されます。
RGBAを使う関数と同じで、glIndex*()にはパラメータのデータ型に基づいて各種のバージョンが存在します。この関数の場合、どのバージョンでもパラメータは1つで、現在の色インデクスとして使用される色インデクスです。このパラメータには、整数、浮動小数点、ベクタのバージョンがあります。Vで指定されるベクタは、配列の値を受け付けます。vの接尾辞は、整数(i)および(f)の接尾辞と組み合わせて使われます。例えば、色インデクスを整数で25に設定するステートメントは次のようになります。
glIndexi(25);
glColor*()と同様に、glIndex*()は現在のインデクスを更新するため、いつでも呼び出すことができます。また、glBeginとglEndの間で使えます。
色操作の主なAPIについては以上です。次のセクションでは、前回の記事でも使ったテストベッドで、これらのAPIをテストします。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








