OpenGL/ES初学
arag2009
这个作者很懒,什么都没留下…
展开
-
OpenGL ES 着色器(shader)介绍
1. Shader(就是一段程序Program) Shader是一段执行在GPU上的程序(所以Shader也可以叫做Program),此程序使用OpenGL ES SL语言来编写。它是一个描述顶点或像素特性的简单程序。在opengles中常用的shader有两种:vertex shader和fragment shader。1.1 Vertex Shader转载 2013-12-06 16:04:55 · 3566 阅读 · 0 评论 -
eglMakeCurrent, eglSwapBuffers, glFlush, glFinish
Let’s talk about eglMakeCurrent, eglSwapBuffers, glFlush, glFinisheglMakeCurrentFirst of all, do you remember the function eglMakeCurrent, its prototype is:EGLBoolean eglMakeCurrent(转载 2016-07-18 11:24:51 · 2232 阅读 · 1 评论 -
OpenGL ES纹理贴图
OpenGL可以把纹理映射到指定的图形的表面上。简单一点的,就是给平面映射纹理,比如一个四边形,一个长方体的6个面,都可以指定位图作为纹理映射到各个面上。 关于将一个位图作为纹理映射到某个或者多个面上,可以学习Jeff Molofee的OpenGL系列教程。 对于指定的多个纹理,要根据自己的需要映射到不同的面上,需要对位图创建一个数组,用来存储位图的名称,然后在初始化OpenGL的转载 2014-04-30 15:29:52 · 2324 阅读 · 0 评论 -
EGLImage与纹理
EGLImage代表一种由EGL客户API(如OpenGL,OpenVG)创建的共享资源类型。它的本意是共享2D图像数据,但是并没有明确限定共享数据的格式以及共享的目的,所以理论上来讲,应用程序以及相关的客户API可以基于任意的目的创建任意类型的共享数据。 关于EGLImage的一种使用情景就是通过它来创建一个2D纹理。相关函数原型声明如下:EGLAPI EGLIma转载 2014-03-17 16:50:17 · 8026 阅读 · 0 评论 -
OpenGL ES2.0编程实例
1. 保存全局变量的数据结构以下例子程序均基于Linux平台。[cpp] view plaincopytypedef struct _escontext { void* userData; // Put your user data here... GLint转载 2013-12-12 17:33:40 · 1356 阅读 · 0 评论 -
Deferred Shading
Deferred Shading Deferred Shading是现在比较流行实时渲染方式,这种渲染方式能把Geometry和Lighting之间的耦合解开,把Forward Shading的Geometry Pass*Lighting Pass复杂度下降为Geometry Pass+Lighting Pass,特别适合于渲染较多动态光源的场景,本文将快速浏览实现Deferred转载 2013-12-07 10:44:52 · 1394 阅读 · 0 评论 -
OpenGL ES渲染管线(graphics pipeline)
渲染管线(graphics pipeline)在 OpenGL ES 1.0 版本中,支持固定管线,而 OpenGL ES 2.0 版本不再支持固定管线,只支持可编程管线。什么是管线?什么又是固定管线和可编程管线?管线(pipeline)也称渲染管线,因为 OpenGL ES在渲染处理过程中会顺序执行一系列操作,这一系列相关的处理阶段就被称为OpenGL ES 渲染管线。pipelin转载 2013-12-06 15:10:40 · 3703 阅读 · 0 评论 -
Geometry Shader Concepts & Examples
前言:Shader Model 4给我们带来了Geometry Shader这个玩意儿。其实这个东西早就在一些3D动画制作软件中存在了,比如Maya 8。我参考了以前DX10的哪一篇Preview与Csustan.edu的一篇比较详尽的教材向大家展示了Geometry Shader的用途和特点。说实话,目前关于这个Geometry Shader的资料真的是很少,Wikipedia上也只转载 2013-12-04 09:34:03 · 1251 阅读 · 0 评论 -
OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)
最近研究了下OpenGL ES2.0的programing guide。看到shader里面声明的变量一般有三种类型,特地为此做个小的总结。 1.uniform变量uniform变量是外部application程序传递给(vertex和fragment)shade转载 2013-12-03 15:14:37 · 753 阅读 · 0 评论 -
Tessellation Shader(细分曲面着色器)
Tessellation Shader(细分曲面着色器)Tessellation Shader)是OpenGLES4.0引入的,处于顶点着色器阶段的下一个阶段,它是由ATI在2001年率先设计出来的。 细分曲面着色器直到这个阶段,对于操作几何图元而言,只有顶点着色器对我们可用。尽管使用顶点着色器可以使用不少图形技术,不过顶点着色器也确实存在一些限转载 2016-07-22 10:48:55 · 7296 阅读 · 1 评论 -
OpenGL Frame BufferObject(FBO)
OpenGL Frame BufferObject(FBO)一. Overview: 1. FrameBuffer 在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上。OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer)。framebuffer是一些二维数组和OpenG所使用的存储区的集合:颜色缓存转载 2016-07-02 16:43:16 · 575 阅读 · 0 评论 -
Opengl ES中的buffers and buffering
Buffers and Buffering 缓冲区和缓冲 我们知道颜色和像素的值都是存在颜色buffer中的,然后通过加载buffer把图形显示在屏幕上。帧buffer可能是放在内存中,也可能是放在显存中。color buffer是frame buffer的一部分,然后和frame buffer 和 video conntroller像连接,video control转载 2013-12-31 17:04:16 · 1666 阅读 · 0 评论 -
glDrawArrays,glDrawElements用法
glDrawArrays 和 glDrawElements 的作用都是从一个数据数组中提取数据渲染基本图元。( render primitives from array data ) 注!如果要 glDrawArrays 和 glDrawElements 正确进行绘制的话,必须在之前 调用带有相应参数的 glEnableClientState 方法。 比如:转载 2013-12-13 17:43:50 · 25177 阅读 · 0 评论 -
OpenGL学习:几何着色器(geometry shader)
除了顶点着色器(vertex shader)和片元着色器(fragment shader),实际上OpenGL还提供了一个可选的几何着色器(geometry shader)。几何着色器位于顶点和片元着色器之间,如果没有使用时,则顶点着色器输出到片元着色器,在使用几何着色器后,顶点着色器输出组成一个基础图元的顶点信息到几何着色器,经过几何着色器处理后,再输出到片元着色器。几何着色器能够产生0个以上的转载 2017-10-26 15:50:32 · 1048 阅读 · 0 评论