OpenGL三角形屬於多邊形.演示程式如上圖:下載
- 按鼠標左鍵點擊繪畫三角形,繪畫時頂點的走向為逆時針三角形為正面,否則為背面.
- 按+鍵加大直線寬度
- 按-鍵減小直線寬度
- 按S鍵切換抗鋸齒功能
- 按.鍵切換三角形點畫模式
- 按C鍵切換三角形隱面裁剪
- 按1鍵填充模式
- 按2鍵線框模式
- 按3鍵頂點模式
- 按4鍵每三個頂點組成三角形
- 按5鍵頂點相連的三角形
- 按6鍵第一個頂點作為三角形的共同頂點
繪畫三角形
- glBegin(GL_TRIANGLES);準備繪畫三角形
- glVertex3f(x1,y1,z1);繪畫三角形頂點1
- glVertex3f(x2,y2,z2);繪畫三角形頂點2
- glVertex3f(x3,y3,z3);繪畫三角形頂點3
- glEnd();結束繪畫
glBegin()繪畫直線參數 | 簡介 |
GL_TRIANGLES | 每三個頂點組成三角形 |
GL_TRIANGLE_STRIP | 頂點相連的三角形 |
GL_TRIANGLE_FAN | 第一個頂點作為三角形的共同頂點 |
因屏幕由像素組成,三角形邊緣會產生鋸齒,啟用抗鋸齒算法後會變得平滑,並修改邊緣像素的顏色:
- glEnable(GL_POLYGON_SMOOTH);啟用多邊形的平滑模式(抗鋸齒功能)
- glEnable(GL_BLEND);啟用混合
多邊形模式(正面默認為填充模式)
void glPolygonMode(GLenum face,GLenum mode);
多邊形面(face) | 簡介 |
GL_FRONT | 多邊形正面:頂點的走向為逆時針(默認) |
GL_BACK | 多邊形背面:頂點的走向為順時針 |
GL_FRONT_AND_BACK | 正面與背面 |
多邊形模式(mode) | 簡介 |
GL_FILL | 填充模式:對多邊形內部進行顏色填充(默認) |
GL_LINE | 線框模式:多邊形只繪畫直先不填充 |
GL_POINT | 頂點模式:只繪畫多邊形頂點 |
設置多邊形隱面裁剪
3D圖形渲染的工作量非常大,把不可見的面剔除則可節減大量變換和渲染時間.
- glEnable(GL_CULL_FACE);啟用隱面裁剪
- glCullFace(GL_BACK);設背面為隱面
- glFrontFace(GL_CCW);多邊形正面使用逆時針
正面模式(MODE) | 簡介 |
GL_CCW | 多邊形正面使用逆時針 |
GL_CW | 多邊形反面使用順時針 |
多邊形點畫模式可用於簡單的填充(不太常用)
void glPolygonStipple(GLushort * mask);
mask:掩碼大小寬8byte*高16byte=128(byte)=1024(bit),1填充像素,0不填充
- glEnable(GL_POLYGON_STIPPLE);啟用點畫模式
- glPolygonStipple(mask);設置掩碼
你必須登入才能發表留言。