OpenGL學習五——繪製幾何體

1、基本圖元
      OpenGL中幾何圖元包括點、直線以及多邊形,其中多邊形特指簡單凸多邊形。它們都是用頂點集合來描述的,要指定定點可以使用函數glVertex*()。
      繪製幾何圖元時,需要在glBegin和glEnd的之間指定定點數據和圖元類型。圖元類型主要有:
          點:GL_POINTS
          直線:GL_LINES\GL_LINE_STRIP\GL_LINE_LOOP
          三角形:GL_TRIANGLES\GL_TRIANGLE_STRIP\GL_TRIANGLE_FAN
          四邊形:GL_QUADS\GL_QUAD_STRIP
         多邊形:GL_POLYGON
     特別說明下三角形、四邊形的幾種繪圖方式:
        GL_TRIANGLES:按頂點順序每三個點繪製一個三角形
        GL_TRIANGLE_STRIP:按頂點順序繪製一個三角形帶,依次使用n、n+1、n+2(n>0)繪製每一個三角形,這裏要求按一定順序繪製,以保證三角形的方向相同,從而確保三角形帶可組成表面的一部分。這個要求十分關鍵,否則畫出來的圖形與期望的有很大差別。
       GL_TRIANGLE_FAN:按頂點順序繪製一個三角形扇,繪製三角形時使用1、n+1、n+2三個頂點,其它與GL_TRIANGLE_STRIP相同。
     GL_QUAD_STRIP:按頂點順序繪製四邊形帶,繪製四邊形時使用n、n+1、n+3、n+2(n>0)頂點,其他與GL_TRIANGLE_STRIP相同。

2、頂點數組
   OpenGL提供了定點數組函數,讓開發者只需使用幾個數組即可指定大量與定點相關的數據,並且只需要使用幾個函數便能存取這些數據。使用頂點數組來存取數據可提高應用程序的性能。使用頂點數組來渲染幾何體包括三個步驟:
   (1)enable頂點數組:用於存儲頂點座標、面法線、RGBA顏色、輔助顏色、顏色索引、霧座標、紋理座標以及多邊形邊界邊標記。主要函數:glEnableClientState/glDisableClientState。
   (2)頂點數據存入頂點數組:對數組的存取是根據它們在內存單元地址(即指向內存單元的指針)進行的。在客戶端/服務器模式下,數據存儲在客戶的地址空間中。主要函數:glVertexPointer/glColorPointer/glNormalPointer/glTexCoordPointer等。
   (3)使用數據繪製幾何體:OpenGL通過對指針解除引用來獲得被啓用的數組中的數據。在客戶端/服務器模式下,數據被傳遞到服務器的地址空間中。主要函數:glDrawArrays(繪製一系列相鄰的數組頂點元素)/glDrawElements(繪製由頂點索引數組決定的數組頂點數據),這兩個函數詳解見:http://blog.csdn.net/ocean2006/article/details/6892608

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章