私はopenglに本当に慣れていないので、今は基本を学んでいます。高レベルの質問があります。オブジェクトを作成したい場合は、すべてのオプションである列を言ってください。
- 外部プログラム (3DStudio など) から 3D メッシュをインポートし、opengl にロードします。
- glVertex3f を使用して 6 つのポリゴンを作成する
- グルグルコール?(私はglutSolidCubeを見たことがありますが、glutSolidColumnのようなものはありません)
私の質問は次のとおりです。
A) 他の方法はありますか?
B) 3DStudio メッシュを使用しない場合、opengl で通常のオブジェクト/アニメーション化されたオブジェクトを作成する正しい方法はどれですか?
C) 2) で列を作成するこのコードは正しいですか? (そうである場合は、x、y、z 変数を使用してパラメーター化し、特定の高さの特定の床タイルの列を作成しようとします)
//Column
//Wall
glBegin(GL_POLYGON);
glVertex3f(150.0f, 250.0f,50); // x1, y1 - top-left corner
glVertex3f(50.0f, 250.0f,50); // x2, y1 - top-right corner
glVertex3f(50.0f, 50.0f,50); // x2, y2 - bottom-right corner
glVertex3f(150.0f, 50.0f,50); // x1, y2 - bottom-left corner
glEnd( );
//Wall
glBegin(GL_POLYGON);
glVertex3f(50.0f, 250.0f,0); // x1, y1 - top-left corner
glVertex3f(150.0f, 250.0f,0); // x2, y1 - top-right corner
glVertex3f(150.0f, 50.0f,0); // x2, y2 - bottom-right corner
glVertex3f(50.0f, 50.0f,0); // x1, y2 - bottom-left corner
glEnd( );
//Wall
glBegin(GL_POLYGON);
glVertex3f(150.0f, 250.0f,0); // x1, y1 - top-left corner
glVertex3f(150.0f, 250.0f,50.0f); // x2, y1 - top-right corner
glVertex3f(150.0f, 50.0f,50.0f); // x2, y2 - bottom-right corner
glVertex3f(150.0f, 50.0f,0); // x1, y2 - bottom-left corner
glEnd( );
//Wall
glBegin(GL_POLYGON);
glVertex3f(50.0f, 250.0f,50); // x1, y1 - top-left corner
glVertex3f(50.0f, 250.0f,0); // x2, y1 - top-right corner
glVertex3f(50.0f, 50.0f,0); // x2, y2 - bottom-right corner
glVertex3f(50.0f, 50.0f,50); // x1, y2 - bottom-left corner
glEnd( );
//Floor
glBegin(GL_POLYGON);
glVertex3f(50.0f, 50.0f, 0); // x1, y1 - top-left corner
glVertex3f(50.0f, 50.0f, 50); // x2, y1 - top-right corner
glVertex3f(0, 50.0f, 50); // x2, y2 - bottom-right corner
glVertex3f(0, 50.0f, 0); // x1, y2 - bottom-left corner
glEnd( );
//Ceiling
glBegin(GL_POLYGON);
glVertex3f(50.0f, 250.0f, 0); // x1, y1 - top-left corner
glVertex3f(50.0f, 250.0f, 50); // x2, y1 - top-right corner
glVertex3f(0, 250.0f, 50); // x2, y2 - bottom-right corner
glVertex3f(0, 250.0f, 0); // x1, y2 - bottom-left corner
glEnd( );