鍍金池/ 教程/ Android/ 投影變換 Projection
                                          繪制線段 Line Segment
                                          投影變換 Projection
                                          繪制迷你太陽系
                                          繪制一個球體
                                          繪制三角形 Triangle
                                          OpenGL 光照模型
                                          三維坐標系及坐標變換初步
                                          定義 3D 模型的前面和后面
                                          繪制一個 20 面體
                                          顏色 Color
                                          Depth Buffer
                                          材質及光照示例
                                          基本幾何圖形定義
                                          關于EGL
                                          導言
                                          Viewing 和 Modeling(MODELVIEW) 變換
                                          FrameBuffer
                                          設置光照效果 Set Lighting
                                          Viewport 變換
                                          階段小結
                                          繪制點 Point
                                          OpenGL ES API 命名習慣
                                          通用的矩陣變換指令
                                          關于 OpenGL ES
                                          創建實例應用 OpenGLDemos 程序框架
                                          OpenGL ES 管道(Pipeline)
                                          GLSurfaceView

                                          投影變換 Projection

                                          前面 ModelView 變換相當于拍照時放置相機和調整被拍物體的位置和角度。投影變換則對應于調整相機鏡頭遠近來取景。

                                          下面代碼設置當前 Matrix 模式為 Projection 投影矩陣:

                                          gl.glMatrixMode(GL_PROJECTION);
                                          gl.glLoadIdentity();  

                                          后續的坐標變換則針對投影矩陣。投影變換的目的是定義視錐(viewing volume),視錐一方面定義了物體如何投影到屏幕(如透視投影或是正側投影),另一方面視錐也定義了裁剪場景的區域大小。

                                          OpenGL ES 可以使用兩種不同的投影變換:透視投影(Perspective Projection)和正側投影(Orthographic Projection)。

                                          透視投影(Perspective Projection)

                                          透視投影的特點是“近大遠小”,也就是我們眼睛日??吹降氖澜?。OpenGL ES 定義透視投影的函數為 glFrustum():

                                          http://wiki.jikexueyuan.com/project/opengl-es-guide/images/78.png" alt="" />

                                          public void glFrustumf(float left,float right,float bottom,float top,float near,float far)

                                          視錐由(left,bottom,-near) 和(right,top,-near) 定義了靠近觀測點的裁剪面,near 和far定義了觀測點和兩個創建面直接的近距離和遠距離。

                                          在實際寫代碼時,Android OpenGL ES提供了一個輔助方法gluPerspective()可以更簡單的來定義一個透視投影變換:

                                          http://wiki.jikexueyuan.com/project/opengl-es-guide/images/79.png" alt="" />

                                          public static void gluPerspective(GL10 gl, float fovy, float aspect, float zNear, float zFar)
                                          • fovy: 定義視錐的 view angle.
                                          • aspect: 定義視錐的寬高比。
                                          • zNear: 定義裁剪面的近距離。
                                          • zFar: 定義創建面的遠距離。

                                          正側投影(Orthographic Projection)

                                          正側投影,它的視錐為一長方體,特點是物體的大小不隨到觀測點的距離而變化,投影后可以保持物體之間的距離和夾角。它主要用在工程制圖上。

                                          http://wiki.jikexueyuan.com/project/opengl-es-guide/images/80.png" alt="" />

                                          定義正側投影(也稱作平移投影)的函數為:

                                          public void glOrthof(float left, float right,float bottom,float top,float near,float far)

                                          裁剪

                                          場景中的圖形的頂點經過 modelview 和 projection 坐標變換后,所有處在 Viewing volumn之外的頂點都會被裁剪掉,透視投影和正側投影都有6個裁剪面。所有處在裁剪面外部的頂點都需剪裁掉以提高繪圖性能。

                                          人妻精品动漫h无码中字