首页 > 代码库 > 我所理解的cocos2dx - OpenGL Es2.0 概览

我所理解的cocos2dx - OpenGL Es2.0 概览

  GPU:以前用cpu来做渲染,但cpu是串行架构的,这样就会导致渲染效率很低,后来就发明了gpu,gpu是并行计算的,同时处理多任务。衡量gpu性能的一个重要术语叫 每秒像素填充率。

  oepngl es:一套图形硬件的软件接口,直接和gpu交互,多应用于各类嵌入和手持平台

 

OpenGL ES 2.0渲染管线

 技术分享

 

左边为客户端,右边为opengl服务端。客户端将顶点,着色器程序,纹理和其他gl状态传入服务端,然后客户端调用绘制命令,gl就对输入的图元执行一系列处理,把结果的像素填入到帧缓冲,交换缓冲区就显示在屏幕上。

  过程中,顶点着色器和片段着色器是可编程的,程序可通过提供着色器程序达到在gpu中渲染管线的目的。其他阶段只能用一些固定的gl命令来影响该阶段的执行

 

顶点数组

  传入opengl es前,,3d模型会转为一组图元的集合。每个图元都是一个点,线段或者三角形(或者多边形),模型间独立绘制,修改模型的某些设置不会影响其他模型的绘制。

  图元都是由一个或多个顶点组成,组成线段或者三角形,每个点都关联着数据,包括坐标,颜色,法向量和纹理坐标。

  通过绑定顶点缓冲对象(vertex buffer objects,vbo),把顶点数组数据传入到渲染管线。

  opengl中命令按接受顺序执行,所以一组图元绘制完毕才会绘制下一组。

 

顶点着色器

  顶点着色器是一段类似c的程序,由程序员提供在gpu执行,对顶点运算。可计算顶点的坐标,颜色,光照,纹理坐标,这些可用来做各种变换,颜色叠加(即半透明穿透)等。

  着色器最重要的任务就是顶点坐标转换,即游戏的坐标系转为opengl的坐标系,这里就执行模型视图变换,转为裁剪坐标系,顶点着色器转换后的坐标存于gl_Postion。

  着色器另一个功能是向后面片段着色器提供一组易变变量,用于图元装配阶段后的插值计算,具体后续补充。

 

。。待续

我所理解的cocos2dx - OpenGL Es2.0 概览