在上一篇我們學習了如何搭建IOS下openGL的開發(fā)環(huán)境,接下來我們來學習如何繪制一個多邊形。
在2.0之前,es的渲染采用的是固定管線,何為固定管線,就是一套固定的模板流程,局部坐標變換 -> 世界坐標變換 ->觀察坐標變換->背面消除->光照->裁剪->投影->視口計算->光柵化,程序員只需要調(diào)用固定的api修改一些配置參數(shù)就可以完成整個渲染流程了。而到了2.0,固定管線改成了可編程管線,我們對整個渲染流程可以再編程,沒有固定的api給你調(diào)用,一切都依靠shader來完成。那么什么是shader呢:
Shader分為頂點著色器(Vertex Shader)和片段著色器(Fragment Shader)。其中Vertex Shader主要負責頂點的幾何關(guān)系等的運算,Pixel Shader主要負責片源顏色等的計算。
我們使用的是openGLES2.0。因此必然會用到shader,shader使用OpenGL著色語言(GLSL―OpenGL Shading Language)編寫,在這里就不仔細介紹。
首先,設(shè)置好緩存
GLuint _renderBuffer; GLuint _frameBuffer; glGenRenderbuffers(1, &_renderBuffer); glBindRenderbuffer(GL_RENDERBUFFER, _renderBuffer); [_eaglContext renderbufferStorage:GL_RENDERBUFFER fromDrawable: (id<EAGLDrawable>)self.layer]; glGenFramebuffers(1, &_frameBuffer); glBindFramebuffer(GL_FRAMEBUFFER, _frameBuffer); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, &n