
opengles
ldpxxx
图形学,图像处理
展开
-
opengles渲染流程
一个三角形v1(x,y,z),v2(x,y,z),v3(x,y,z)的渲染流程是这样的:vertex shader——Clipping——Perspective Division——视口转换——光栅化阶段——片段shader——片段测试和操作(剪刀测试,模板测试,深度测试,混合,抖动,多重采样反锯齿等。1 每个顶点先被传到顶点shader里面,一般在顶点shad原创 2013-07-05 16:15:40 · 2725 阅读 · 0 评论 -
opengles概览
目前有三个版本的opengl es 1.0, 1.1 和2.01.0 和1.1是固定管线渲染,分别来自opengl 1.3和1.5。2.0有可编程渲染管线,来自opengl2.0opengl es2.0的shader执行两份标准:opengl es 2.0 api specification和opengl es shading language specification原创 2013-07-05 16:40:46 · 2362 阅读 · 0 评论 -
opengles绘画单元和光栅化
opengl es 2.0只支持三种绘画单元:三角形,直线和点精灵。GL_TRIANGLESGL_TRIANGLES_STRIPGL_TRIANGLES_FANGL_LINESGL_LINE_STRIPGL_LINE_LOOPGL_POINTS(这个是点精灵)void glLineWidth(GLfloat width);GLfl原创 2013-07-05 16:38:03 · 2082 阅读 · 0 评论 -
opengles顶点属性顶点数组缓存对象
名词解释:顶点属性就是顶点shader里面声明的一个attribute变量,有两种类型的attribute变量,一种是const属性,一种是顶点属性数组将顶点shader,片段shader都编译好,并且添加到一个program 里面之后,就可以将顶点属性 绑定到属性位置0,1,2,3,4,5,6,7中的一个上,之后这个属性就有地址了,给每个program里面原创 2013-07-05 16:36:27 · 8457 阅读 · 0 评论 -
opengles2.0中的纹理
opengl es纹理: 就支持两种纹理,GL_TEXTURE_2D,GL_TEXTURE_CUBE_MAP立方体纹理:立方体纹理像素使用(s,t,r)来寻找像素,具体参见其他写shader的书籍。 只支持下面这几种格式:GL_RGB,GL_RGBA,GL_LUMINANCE,GL_LUMINANCE_ALPHA,GL_ALPHA像素的数原创 2013-07-05 16:34:22 · 7090 阅读 · 0 评论 -
OpenGLes2.0 什么是Pbuffer
pbuffer跟framebuffer功能是一样的,都是用来做渲染到一个off-screen surface上的,但是如果要做的是渲染到一个纹理上,还是使用framebuffer,效率高些。pbuffer的用途是:渲染到纹理上,随后这个纹理可以给其他API用的,比如openVG。创建pbuffer的过程跟创建窗口surface差不多的: EGLSurfac原创 2013-12-13 16:44:26 · 5218 阅读 · 0 评论 -
opengles2.0 片段shader之后的操作 备忘
各种测试的顺序: 剪刀测试-模板测试-深度测试-混合-抖动opengles支持三种帧缓存,颜色,深度,模板缓存。 颜色缓存一个有16位的RGB565和32位的RGBA,颜色缓存有前后缓存 模板缓存是可选的,要么集成在深度缓存里面 深度缓存至少16为,至少8为被模板缓存。 缓存的clear: void glClear(G原创 2013-12-12 17:33:59 · 3337 阅读 · 0 评论 -
opengles2.0 帧缓存对象(FBO)
帧缓存对象(fbo)主要是用于做渲染到纹理。opengles2.0渲染到纹理的方法有三种: 第一,使用glCopyTexImage2D或者glCopyTexSubImage2D,这两个函数,复制framebuffer中的 像素到纹理缓存里面,但这两个函数性能比较低下,并且要求纹理的尺寸必须小于等于 framebuffer的尺寸。原创 2013-12-13 16:26:03 · 15237 阅读 · 0 评论 -
opengles2.0 shader备忘
opengles 支持二进制shader,是为了节省在线编译的时间,但是二进制shader的移植性不好,各个厂商有自己的二进制格式。有的显卡支持在线编译,可能有的显卡只支持二进制格式的shader,检测显卡是否支持在线编译调用函数glGetBooleanv(GL_SHADER_COMPILER),如果支持在线编译shader就可以使用函数glShaderSource来指定shader在原创 2013-12-12 17:27:10 · 6923 阅读 · 1 评论