簡體   English   中英

如何將頂點添加到OpenGL C ++ triangle_fan

[英]How to add vertices to OpenGL C++ triangle_fan

我需要為使用TRIANGLE_FAN填充的OpenGL不規則多邊形添加正確的照明。

glBegin(GL_TRIANGLE_FAN);

glNormal3f(0.0, 0.0, 1.0);
glVertex3f(0.0f, 0.0f,0.0f);
glVertex3f(b[0][0],b[0][1], 0);
glVertex3f(b[11][0], b[11][1], 0);
glVertex3f(b[7][0], b[7][1], 0);
glVertex3f(b[10][0], b[10][1], 0);
glVertex3f(b[6][0],b[6][1], 0);
glVertex3f(b[5][0],b[5][1], 0);
glVertex3f(b[4][0],b[4][1], 0);
glVertex3f(b[8][0],b[8][1], 0);
glVertex3f(b[3][0],b[3][1], 0);
glVertex3f(b[9][0],b[9][1], 0);
glVertex3f(b[2][0],b[2][1], 0);
glVertex3f(b[1][0],b[1][1], 0);
glVertex3f(b[0][0],b[0][1], 0);

glEnd();

我當前的多邊形存在的問題是它不能正確反射光。 它僅從其頂點執行此操作,從而使撞擊它的光成為X形。 我猜想我需要向多邊形添加頂點。 有一種簡單的方法可以保持三角形扇形但向其添加頂點嗎?

為了在照明對象時獲得“正確”的結果,您需要定義適當的法線。 由於每個頂點只有一個法線,因此顯然着色不正確。

但是,沒有正確的方法可以為任何模型計算法線。 你必須定義對象應如何着色,然后添加更多glNormal來電告知OpenGL的你怎么想它被遮蔽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM