続く
前のセクションでは、三角形と四角形の描き方を説明しました。このセクションでは、三角形と四角形に 2 種類のシェーディングを追加する方法を説明します。フラットカラーリングを使用して、四角形を固定色で塗ります。スムーズ カラーリングを使用して、三角形の 3 つの頂点の異なる色をブレンドし、色の見事なブレンドを作成します。
前のセクションの glDraw の変更を続けます。
手順 glDraw();
始める
glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 画面と深度バッファをクリアします。
glLoadIdentity(); //現在のモデル観測行列をリセットします。
glTranslatef(-1.5, 0.0, -6.0); // 左に 1.5 単位移動し、画面 6.0 に移動します。
glBegin(GL_TRIANGLES); // 三角形を描画します
//glColor3f(r,g,b)。括弧内の 3 つのパラメーターは、順に赤、緑、青の色成分です。
//値の範囲は 0,0 ~ 1.0 です。前述の画面の背景をクリアするコマンドと似ています。
//色を赤(純粋な赤、緑、青なし)に設定します。
// 次のコード行は、三角形の最初の頂点 (三角形の上の頂点) を設定します。
//そして現在の色 (赤) を使用して描画します。これ以降、描画されたオブジェクトはすべて赤色になります。
// 赤を別の色に変えるまで。
glColor3f(1.0, 0.0, 0.0); //現在の色を赤に設定します。
glVertex3f(0.0, 1.0, 0.0); // 上部の頂点
//最初の赤い頂点が設定されました。
// 次に、2 番目の緑色の頂点を設定します。三角形の左下の頂点は緑色で表示されます。
glColor3f(0.0, 1.0, 0.0); //現在の色を緑に設定します。
glVertex3f(-1.0, -1.0, 0.0); // 左下
//三角形の右下の頂点。色を青に設定
// glEnd() が表示された後、三角形が塗りつぶされます。
//でも、各頂点の色が違うので、四隅から色がにじみ出ているように見えますが、
//三角形の中心で正確に交わると、3 つの色が混ざり合います。これがスムースシェーディングです。
glColor3f(0.0, 0.0, 1.0); //現在の色を青に設定します。
glVertex3f(1.0, -1.0, 0.0); // 右下
glEnd(); // 三角形の描画の終了
glTranslatef(3.0, 0.0, 0.0); // 右に 3 単位シフトします
//次に、単調に色付けされた紫色の正方形を描画します。
//覚えておくべき最も重要なことは、現在の色を設定した後に描画されるものはすべて現在の色であるということです。
//これから作成するすべてのプロジェクトは色を使用します。
//テクスチャマッピングをフルに使用した場合でも、
//glColor3f は引き続きテクスチャの色調を調整するために使用できます。
//待って…、それについては後で話しましょう。
//(はは、元の本は青ですが、私は紫が好きです)
glBegin(GL_QUADS); // 正方形を描画します
glColor3f(0.6, 0.2, 2.0); //現在の色を紫に設定します。
glVertex3f(-1.0, 1.0, 0.0); // 左上
glVertex3f(1.0, 1.0, 0.0); // 右上
glVertex3f(1.0, -1.0, 0.0); // 左下
glVertex3f(-1.0, -1.0, 0.0); // 右下
glEnd(); // 正方形の描画の終了
終わり;