openGL學習筆記(1)——經常使用方法原型解釋

        一、初始化,設置背景色

         void glClear(int mask)    清除緩存數組

         實參含義:GL10.GL_COLOR_BUFFER_BIT 清除顏色緩存緩存

                       GL10.GL_DEPTH_BUFFER_BIT  清除深度緩存ide

         但願同時清除多個緩存,將實參用或(|)鏈接便可測試

         void glClearColor(float red,float green,float blue,float alpha)    設置背景色spa

 

       二、視點變換

        視點變換設置視點的位置和方向。視點默認位於座標系原點,指向負z軸。索引

 

       三、模型變換(幾何變換)

        模型變換在世界座標系進行,物體模型原點默認在座標系中心。有三個變換it

        平移io

        void glTranslatef(float x,float y,float z)class

        實參爲沿着x,y,z軸向右平移的距離rust

        旋轉

        void glRotatef(float angle,float x,float y,float z)

        以原點和點(x,y,z)構成的直線爲軸,逆時針旋轉angle大小的角度

        縮放

        void glScalef(float x,float y,float z)

        實參爲三軸上的縮放因子

 

       四、投影變換

        投影變換的目的是建立一個視景體,把視景體以外的場景裁剪掉。投影變換有兩種,透視投影(perspective projection)和正交投影(orthographic projection)。

        透視投影

        void glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar)

        正交投影

        void glOrthof(float left, float right, float bottom, float top, float zNear, float zFar)

 

       五、視口變換

        視口平面是視景體內的物體投影到的二維平面,視口變換就是調整視口大小。

        void glViewport(int x,int y,int width,int height)

        變換後的視口是以座標(x,y)爲左下頂點,寬爲width,高爲height的矩形

       六、裁剪變換

       七、矩陣棧操做

        openGL的變換矩陣爲4*4矩陣

        設置當前矩陣

        void glLoadMatrixf(float[] m,int offset) 或者 void glLoadMatrixf(FloatBuffer m)    設置當前變換矩陣

        void glLoadIdentity()  設置當前矩陣爲單位矩陣      

        壓入、彈出矩陣

        void glPushMatrix()  依次壓入當前全部矩陣

        void glPopMatrix()    彈出棧頂矩陣

        兩個方法聯合操做能夠保留下次變換以前的矩陣狀態。

 

       八、打開和關閉裁剪等功能

        打開

        void glEnable(int cap)

        實參含義:GL_CULL_FACE  打開背面剪裁

                      GL_DEPTH_TEST 打開深度測試

                      GL_DITHER        打開抗抖動

        關閉

        void glDisable(int cap)

 

      九、設置着色模型

        void glShadeModel(int mode)

        實參含義:GL_SMOOTH   平滑着色,根據三個頂點的顏色進行漸變着色,相鄰兩點之間的顏色平滑過渡

                       GL_FLAT        不平滑着色,使用最後一個頂點的顏色進行填充

 

       十、設置旋繞方向

        openGL默認多邊形頂點逆時針排列爲正面

        void glFrontFace(int mode)

        實參含義:GL_CW   順時針爲正面

                      GL_CCW 逆時針爲正面

 

       十一、設置矩陣模式

        void  glMatrixMode(int mode)

        實參含義:GL_MODELVIEW  設置爲模型(幾何)變換矩陣

                      GL_PROJECTION 設置爲投影變換矩陣

                  

      十二、繪圖

       openGL繪圖須要三個數組:頂點座標數組,頂點顏色數組和頂點索引數組(索引能夠不要)

       啓用和禁用頂點數組       

       void glEnableClientState(int array)     啓用

       實參含義:GL_VERTEX_ARRAY   啓用頂點座標數組

                     GL_COLOR_ARRAY   啓用頂點顏色數組

       void glDisableClientState(int array)  禁用

       爲畫筆指定頂點座標數據

       void glVertexPointer(int size,int type,int stride,Buffer pointer)

       形參含義:size爲座標維數(通常等於3),type爲座標值的類型(GL_FIXED表明int型,GL_FLOAT表明float型),stride爲步長(連續頂點之間的間隔),pointer爲頂點數據的buffer

      爲畫筆指定顏色頂點座標數據

      void glColorPointer(int size,int type,int stride,Buffer pointer)      

      形參含義:同頂點指定方法,size通常等於4

      索引法繪圖

      void glDrawElements(int mode,int count,int type,Buffer indices)

      形參含義:mode表明繪圖方式,常見的方式有:GL_POINTS(畫點),GL_LINES(每兩點畫一線段),GL_LINE_STRIP(按順序相鄰兩點畫一線段),GL_LINE_LOOP(按順序相鄰            頂點畫一線段,末尾頂點與第一個頂點再畫一線段),GL_TRIANGLES(每三個頂點畫一三角形),GL_TRIANGLE_STRIP(按頂點順序,每一個頂點和它後面相鄰的兩個頂點畫一三角形),GL_TRIANGLE_FAN(第一個頂點爲共用頂點,其以後的頂點按照順序每相鄰兩個和它構成一個三角形);

                    count表明索引數組的長度(不一樣於頂點個數)

                    type表明索引數據類型,如:GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT

                    indices表明索引數據的buffer

       非索引法繪圖

       void glDrawArrays(int mode,int first,int count)

       形參含義:mode表明繪圖方式

                     first表明第一個頂點的編號

                     count表明頂點個數   

相關文章
相關標籤/搜索