
OpenGL
文章平均质量分 84
scott.cgi
要么编程,要么被编程,编程是一种超能力
展开
-
使用VBO对glVertexAttribPointer的影响
使用VBO对glVertexAttribPointer的影响原创 2014-08-08 09:55:35 · 8350 阅读 · 2 评论 -
OpenGL ES 封装shader载入编译链接
static void CheckGLError(const char* printMsg){ for (GLint error = glGetError(); error; error = glGetError()) { ALog_E("after %s() glError (0x%x)", printMsg, error); }}/** * C原创 2016-08-03 16:01:46 · 1313 阅读 · 0 评论 -
OpenGL点精灵PointSprite详解: 纹理映射,旋转,缩放,移动
openGL点精灵PointSprite详解: 纹理映射,旋转,缩放,移动原创 2014-08-08 09:44:35 · 9293 阅读 · 3 评论 -
Android OpenGL ES2 一切从绘制纹理开始
android openGL ES2 一切从绘制纹理开始原创 2014-08-09 16:49:27 · 4470 阅读 · 0 评论 -
OpenGL 深度测试使用
第一,什么是openGL的深度 所谓深度,就是在openGL坐标系中,像素点Z坐标距离摄像机的距离。摄像机可能放在坐标系的任何位置,那么,就不能简单的说Z数值越大或越小,就是越靠近摄像机。openGL 会专门用一个缓冲区来存放这个Z坐标数值。就叫深度缓冲区。第二,深度缓冲区的作用 一般情况下,我们绘制图片,后绘制的会覆盖前面的。所以,一般我们绘制顺序是先后面在前面。原创 2014-08-08 11:15:07 · 1477 阅读 · 0 评论 -
OpenGL 顶点,坐标系,纹理坐标
了解坐标系是绘制图形的基础。在使用openGL的场景中,有世界坐标,局部坐标,纹理坐标,和屏幕坐标几种。openGL 坐标系:原创 2014-08-09 11:12:08 · 12687 阅读 · 2 评论 -
OpenGL 矩阵的旋转-平移-缩放
1. openGL的矩阵openGL的矩阵是列优先排序的。就是说,矩阵的数据是存贮在一维数组中,数据上传到openGL处理的时候,会把一维数据的每一行当做列来处理。比如说,一个4*4的矩阵在数组中的排列如下:matrix44 = { m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11原创 2015-03-25 20:32:09 · 7131 阅读 · 0 评论 -
OpenGL 坐标系的互相转换
openGL坐标系包含旋转,平移,缩放被塞在一个矩阵里面。坐标系之间的转换基础是矩阵的运算。每一个矩阵代表的坐标系,就是是原点坐标系通过旋转,平移,缩放得到的坐标系。当一个矩阵右乘一个向量或是另一个矩阵,意味着把右边的变换,变成相对于左边的矩阵坐标系之上。如果把一个世界坐标的X转换到一个矩阵上,我们可以矩阵右乘这个坐标:static float multip原创 2015-06-24 20:48:36 · 1339 阅读 · 0 评论 -
OpenGL坐标系和像素坐标系
OpenGL坐标系原点在中心,并且做了归一化处理。就是说xy轴,都是从[-1, 1]之间。而像素坐标系是同样的中心点,右上是正方向,只是没有做归一化处理,是以像素为单位的。那么,归一化的坐标系和像素坐标最大的区别就是在于,像素是实际的单位,会根据像素数值所变化。而归一化坐标是一个比例,只和屏幕的相对大小有关系。 比如,在同样屏幕尺寸,高分辨率会压缩像素坐标,低分辨率会放大像素坐标原创 2016-05-27 13:06:58 · 6277 阅读 · 0 评论 -
EGL 平台无关配置封装
/** * Creates an EGL rendering context and all associated elements */ void (*CreateEGL) (EGLNativeWindowType window, EGLDisplay* outDisplay, EGLContext* outContext, EGLSurface* outSu原创 2016-08-02 11:49:42 · 913 阅读 · 0 评论 -
Android 前后台切换与OpenGL(EGL)创建销毁的周期
EGL的创建是这样的。/** * Creates an EGL rendering context and all associated elements */void CreateEGL(EGLNativeWindowType window, EGLDisplay* outDisplay, EGLContext* outContext, EGLSurface* outSurface,原创 2016-02-08 23:53:17 · 6063 阅读 · 2 评论 -
Android 报错 E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY) 问题的解决
在自己手动调用OpenGL的程序里,logcat总是显示E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY)错误,但是不会影响程序正常的运行。在网上所搜了半天,不少人都遇到了这个问题,但都没有给出确切的原因和答案。经过一番断点排查,最终我定位到了这个错误提示的根源所在:当EGL没有初始化完成的时候,就调用了OpenGL的函数,就会...原创 2018-12-28 14:24:01 · 18020 阅读 · 2 评论