Open Source Web Development Tutorials - Dev Shed
OpenGLによる色の使用方法
(2009/01/20公開)
色のテスト
コードは次のようになります。ここでは、RGBAモードを使っています。三角形の各頂点は、異なる色で作成されます。色が交わる点については、OpenGLによって処理されるので、プログラムで考慮する必要はありません。なお、これはアニメーションのテスト用に作成したのと同じコードです。
void Draw3D(SDL_Surface *S) // OpenGL drawing code here
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//clear screen and
//depth buffer. Screen color has been cleared
//at init
glRotatef(angle,0.0f,1.0f,0.0f);// Rotate The Triangle On The Y axis
glLoadIdentity(); // reset the modelview matrix
glBegin(GL_TRIANGLES);
glVertex3f( 0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glFlush(); // flush the gl rendering pipelines
return;
}
今度は、カラー表示用のコードを追加します。各頂点に、それぞれ赤、青、緑の色を指定します。
void Draw3D(SDL_Surface *S) // OpenGL drawing code here
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//clear screen and
//depth buffer. Screen color has been cleared
//at init
glRotatef(angle,0.0f,1.0f,0.0f);// Rotate The Triangle On The Y axis
glLoadIdentity(); // reset the modelview matrix
glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,0.0f);//the vertex displayed after this
//statement would be red
glVertex3f( 0.0f, 1.0f, 0.0f);
glColor3f(0.0f,1.0f,0.0f);//the vertex displayed after this
//statement would be green
glVertex3f(-1.0f,-1.0f, 0.0f);
glColor3f(0.0f,0.0f,1.0f);//the vertex displayed after this
//statement would be blue
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glFlush(); // flush the gl rendering pipelines
return;
}
これで、テスト用アプリケーションに色を追加できました。OpenGLを使うことで、簡単なコードで多くの効果を実現しています。この記事では、レンダリングされた画像のディザリングやスムージングの処理については触れませんでした。これらの内容については、次回の記事で説明することにします。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








