私はOpenGLでスケートボードの四分の一のパイプを描いていますが、最後のステップを理解することはできません。OpenGLにはまだ新しいので、これはほんの些細な問題です私は見落としている。今私が持っているコードはOpenGL - Skateboarding Quarter Pipeを入力してください
とクォーターパイプを描画するために、この機能を使用しています(色を気にしない、私たちはクラスではまだテクスチャをカバーしていない)、次を生成します。
void draw_quarterpipe()
{
// Quarterpipe Ramp
glBegin(GL_QUAD_STRIP);
glColor3f(0, 0, 1);
for (int i=-90; i <= 0; i++)
{
glVertex3f(Cos(i), Sin(i)+1, -1);
glVertex3f(Cos(i), Sin(i)+1, 1);
}
glEnd();
// Coping
glBegin(GL_QUAD_STRIP);
glColor3f(0, 1, 1);
for (int i = 0; i <= 360; i++)
{
glVertex3f((Cos(i) * 0.025) + 1, (Sin(i) * 0.025) + 1, -1);
glVertex3f((Cos(i) * 0.025) + 1, (Sin(i) * 0.025) + 1, 1);
}
glEnd();
// Coping End Cap
glBegin(GL_POLYGON);
glColor3f(0.5, 0, 0.5);
for (int i = 0; i <= 360; i++)
{
glVertex3f((Cos(i) * 0.025) + 1, (Sin(i) * 0.025) + 1, 1);
}
glEnd();
// Coping End Cap
glBegin(GL_POLYGON);
glColor3f(0.5, 0, 0.5);
for (int i = 0; i <= 360; i++)
{
glVertex3f((Cos(i) * 0.025) + 1, (Sin(i) * 0.025) + 1, -1);
}
glEnd();
// Platform
glBegin(GL_QUADS);
glColor3f(0, 1, 0);
glVertex3f(1, 0, 1);
glVertex3f(1, 0, -1);
glVertex3f(1, 1, -1);
glVertex3f(1, 1, 1);
glEnd();
glBegin(GL_QUADS);
glColor3f(0, 1, 0);
glVertex3f(1.5, 0, 1);
glVertex3f(1.5, 0, -1);
glVertex3f(1.5, 1, -1);
glVertex3f(1.5, 1, 1);
glEnd();
glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex3f(1, 0, 1);
glVertex3f(1, 1, 1);
glVertex3f(1.5, 1, 1);
glVertex3f(1.5, 0, 1);
glEnd();
glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex3f(1, 0, -1);
glVertex3f(1, 1, -1);
glVertex3f(1.5, 1, -1);
glVertex3f(1.5, 0, -1);
glEnd();
glBegin(GL_QUADS);
glColor3f(1, 0, 0);
glVertex3f(1, 1, 1);
glVertex3f(1, 1, -1);
glVertex3f(1.5, 1, -1);
glVertex3f(1.5, 1, 1);
glEnd();
}
ランプとプラットフォームの間のスペースを埋めるための最後のステップが分かっていたのでしょうか?
GL_POLYGONでは、*凹面多角形である必要があります。あなたが見ることができるように、彼が描こうとしているのは非常に*凸です*。 –