M$ Visual Studio .NET2003で、C++を使ってOpenGLの課題が出ました。どなたか、お助けください。。
課題の内容は、イメージファイルを読み込んで そのイメージファイルに線のテキスチャーをマップして、その線の数や色を変更できるアプリケーションを
作るという事です。サンプルプログラムは、http://zoo.millto.net/~pic-nic/CSE581_Lab1_sample.zip
にアップしました。
現時点で、インターフェースはほとんど完成していて、後は論理コードを追加していく
段階なのですが、Form.1とImpressionism.h (ドキュメントクラス) があり、
Form.1内にある void DrawLines(const int frameNumber) というファンクション
をどうやって作れば良いのかが全然わからないのです。
DrawLinesは、線のテキスチャをマップするファンクションです。イメージファイルを
読み込んでからマップするよりも、テキスチャをマップしてあるバックグラウンドの上に
イメージファイルを読み込むという感じなのだと思います。(多分)今の段階では、以下のようなコードを書いてみました。
public: void DrawLines( const int frameNumber )
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glColor3f( 1.0f, 1.0f, 1.0f );
glBegin( GL_QUADS );
glTexCoord2d( 0.2f, 0.2f );
glVertex2d( 0.2f, 0.2f );
glTexCoord2d( 0.8f, 0.2f );
glVertex2d( 0.8f, 0.2f );
glTexCoord2d( 0.8f, 0.8f );
glVertex2d( 0.8f, 0.8f );
glTexCoord2d( 0.2f, 0.8f );
glVertex2d( 0.2f, 0.8f );
glEnd();
glPanel->SwapBuffers();
}
先生に言われたのは、2*線数のglVertexが必要なのと、それらがfor loop内に
ある事。線に色を振り当てるには、それぞれの線にglColorが必要なことです。
それぞれのvertexがテキスチャ座標を持つためには、それぞれのvertexにglTexCoord
が必要な事(もしくは全体の線につき一つのglTexCoord)です。
ちんぷんかんぷんです。。 教えてください、オネガイします!