這裏是繪製原始缸代碼:頂點重疊在OpenGL
glBegin(GL_TRIANGLE_FAN);
glVertex3f(0, height/2.0f, 0);
for (int i = 0; i < SIDENUMS +1; i++)
{
glVertex3f(radius * cos(i * 2 * PI/SIDENUMS), height/2.0f, radius * sin(i * 2 * PI/SIDENUMS));
}
glEnd();
glBegin(GL_QUADS);
for (int i = 0; i < SIDENUMS + 1;i++)
{
glVertex3f(radius * cos(i * 2 * PI/SIDENUMS), height/2.0f, radius * sin(i * 2 * PI/SIDENUMS));
glVertex3f(radius * cos(i * 2 * PI/SIDENUMS), -height/2.0f, radius * sin(i * 2 * PI/SIDENUMS));
glVertex3f(radius * cos((i+1) * 2 * PI/SIDENUMS), -height/2.0f, radius * sin((i+1) * 2 * PI/SIDENUMS));
glVertex3f(radius * cos((i+1) * 2 * PI/SIDENUMS), height/2.0f, radius * sin((i+1) * 2 * PI/SIDENUMS));
}
glEnd();
glBegin(GL_TRIANGLE_FAN);
glVertex3f(0, -height/2.0f, 0);
for (int i = 0; i < SIDENUMS + 1; i++)
{
glVertex3f(radius * cos(i * 2 * PI/SIDENUMS), -height/2.0f, radius * sin(i * 2 * PI/SIDENUMS));
}
glEnd();
和輸出低於什麼樣圖像:
現在圖片,請注意點答:
這一點已經繪製了兩次,一個在TRIANGLE_FAN中,第二個在GL_QUADS中,我的問題是,這是兩個不同的點w自動互相取消做出一個點?或者他們在彼此之上?總結有多少點?一個或兩個 ?如果他們沒有互相焊接,我該如何解決?
ü可以舉一個例子來融合和焊接他們!我如何繪製它們焊接? –
@ S.A.Parkhid:這是什麼,OpenGL的確實OpenGL剛纔只制地圖的點,線和三角形到屏幕上,然後忘了他們是如何走過來的。在OpenGL中沒有像「場景」或模型那樣的東西。 「合併」或「融合」這些點將會發生在程序的數據結構中。然而,對於你的形狀表明它實際上使共享*頂點*沒有什麼意義,因爲*法線*繪製臉部的不同。 – datenwolf
我認爲在這個圖中A點更像是三個頂點。有幾個四邊形在該位置有一個頂點,有幾個扇形三角形。扇形三角形重用一個頂點,但四邊形創建兩個不同的頂點。 –