OpenGL ES
gongxiaoou
找准方向,脚踏实地
展开
-
OpenGL ES之一——概念扫盲
一.OpenGLOpenGL概念:Open Graphics Library(开放图形库)。1.1OpenGL到底是什么OpenGL是一个规范,解释如下:OpenGL到底是什么?一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khr...原创 2019-04-26 13:56:25 · 4863 阅读 · 0 评论 -
Android中OpenGl ES兼容性问题
概述在前面使用OpenGLEs的过程中由于使用的是OpenGlEs3.0的版本所以会带来不少因为版本兼容问题的坑(开始的时候没有发现,因为一直使用的是Android8.1.0的系统的手机。后来测试兼容性的时候发现了坑,我这里最低版本的手机是装有4.4.2系统的)。问题产生的原因是因为Android系统随着版本的不同里面自带的OpenGL ES版本也会随之不同,而在我们编写GLSL文件的时候如果...原创 2019-05-05 16:30:56 · 4406 阅读 · 9 评论 -
Android中可以用来“播放”视频的View
概述这里只是总结一下优缺点,不去分析源码。SurfaceView重点:SurfaceView的工作方式是创建一个置于应用窗口之后的新窗口。SurfaceView的UI在一个独立的线程中进行绘制,可以不会占用主线程资源。SurfaceView使用双缓冲机制,播放视频时画面更流畅;(SurfaceView在更新视图时用到了两张 Canvas,一张 frontCanvas 和一张 backC...原创 2019-05-05 17:31:18 · 1099 阅读 · 0 评论 -
OpenGL ES之十二——地球仪和VR图
一 地球仪1.1 不会动的地球仪顶点#version 300 esin vec4 aPosition;in vec2 aCoordinate;//顶点着色器uniform mat4 uProjMatrix;uniform mat4 uViewMatrix;uniform mat4 uModelMatrix;uniform mat4 uRotateMatrix;out vec2...原创 2019-04-26 13:57:36 · 5810 阅读 · 0 评论 -
OpenGL ES之十一——绘制3D图形
概述经过前面的铺垫,我们对OpenGLES了解了不少了,是时候绘制一个立体图像了。绘制一个圆锥:2.1 圆锥原理:在之前的文章中我们绘制过圆形,圆锥可以看成是一个顶点坐标z不为0的圆形,绘制的方法和绘制一个圆是一样的。如下:着色器文件顶点着色器#version 300 eslayout (location = 0) in vec4 vPosition;layout (locat...原创 2019-04-26 13:57:30 · 5880 阅读 · 3 评论 -
OpenGL ES之九——相机和投影
概述前面一直在使用相机矩阵和投影矩阵来解决平面图形变形的问题,但是其中的原理一直没有阐述,其实是怕不结合实例很难解释的清楚。现在水到渠成了,接触了很多使用OpenGLES绘制2D图形,纹理的例子,想必都有了一些感觉,接下来可以好好解释一下了。一.OpenGL的世界这里不会将官网上概念搬过来,而是将各种概念以容易理解的方式阐述。1. 相机就相当于我们的眼睛;2. 人类的视野范围是有限的,所...原创 2019-04-26 13:57:18 · 3370 阅读 · 0 评论 -
OpenGL ES之八——GLES20类和Matrix类
概况上面对于GLSL也有了一定的了解,并且通过之前编程过程,我们基本了解了GLSL语言的特色和通过调用Java语言编写的SDK来完成一些基本操作。下面总结一下GLES20的方法(GLES30或者更高这里就不一一列举了,方法基本和GLES20相同)一 获取着色器程序内成员变量的id(句柄、指针)GLES20.glGetAttribLocation方法:获取着色器程序中,指定为attribute...原创 2019-04-26 13:57:12 · 6340 阅读 · 0 评论 -
OpenGL ES之七——着色器语言GLSL
概况前面之所以没有详细的来介绍一下GLSL,因为之前如果上来就介绍语言会显得突兀,而现在经过了前面几篇文章的铺垫,相信大家自己对这门语言也已经有一些了解了。我们之前的文章中介绍OpenGL ES版本的时候也提到过:OpenGL ES 1.x是针对固定硬件管线的而从OpenGL ES 2.0开始针对可编程硬件管线。而这其中最重要的就是顶点着色器和片元着色器,顶点着色器是针对每个顶点执行一次,用于...原创 2019-04-26 13:57:06 · 3728 阅读 · 0 评论 -
OpenGL ES之六——绘制矩形和圆形
概述上文中主要介绍了相机和投影,并利用二者做出了变换矩阵,画出了等腰三角形。本文将介绍如何绘制矩形和圆形。重点:顶点法和索引法;OpenGL ES中多边形的构成一 顶点法和索引法以及OpenGL Es中多边形的构成1.1 顶点法和索引法之前文中绘制点,线,三角形都是使用的GLES30.glDrawArrays ,它就是顶点法。是根据传入的顶点顺序进行绘制的。另外还有另外一种方法GLES3...原创 2019-04-26 13:56:59 · 6429 阅读 · 2 评论 -
OpenGL ES之十——纹理贴图(展示一张图片)
概述学了半天了不可能就让我们使用OpenGL ES绘制几个破多边形吧,那肯定是不会的,但是基础是十分的重要的。只有一点点循序渐进的深入才能感觉知识来的不是那么的突兀,让人难以理解。接下来我们就来展示一张图片。展示图片之前我们要先了解几个概念,之后就很好理解2D纹理绘制也是很简单的。一.2D纹理和坐标1.1 2D纹理在真实世界中,纹理表示一个物体的表面的颜色、纹路以及触觉特征,它是3D的多维...原创 2019-04-26 13:57:23 · 5617 阅读 · 5 评论 -
OpenGL ES之五——相机和投影,绘制等腰三角形
概述上一篇文章中着重记录了顶点着色器和片段着色器。但是我们发现在OpenGL ES的虚拟坐标中如果我们不处理顶点位置数据,即使我们给了三个顶点可以组成等腰直角三角形,那么在手机屏幕上显示出来的也不是一个等腰直角三角形。这一篇文章就来解决它。重点:矩阵和向量;相机和投影;利用变换矩阵绘制等腰三角形一.矩阵和向量在大学时候都学过线性代数,当时学到矩阵和向量的时候感觉非常的枯燥乏味,感觉这东西做...原创 2019-04-26 13:56:53 · 2915 阅读 · 0 评论 -
OpenGL ES之四——绘制点,线,三角形
概述上一篇中介绍了使用OpenGL ES的使用流程,完成了纯色背景的绘制。但是其中没有涉及具体几何形状所以并没有使用到顶点着色器和片段着色器,这篇文章中将着重介绍。绘制步骤如下:1.配置OpenGL ES环境:在AndroidManifest.xml文件中设置使用的OpenGL ES的版本:<!-- Tell the system this app requires OpenGL E...原创 2019-04-26 13:56:47 · 5982 阅读 · 6 评论 -
OpenGL ES之三——绘制纯色背景
概述从本文起开始进入编程阶段,本文目的主要是介绍如何使用OpenGL Es绘制纯色背景,通过这个过程让大家了解一下其使用流程。流程大致如下(由于是全屏渲染成纯色,这里也不会涉及到顶点着色器和片段着色器。):1.新建一个Android工程2.配置OpenGL ES环境3.GLSurfaceView作为展示View4.实现自己的GLSurfaceView.Renderer完成具体的绘制工作...原创 2019-04-26 13:56:41 · 3307 阅读 · 1 评论 -
OpenGL ES之二——Android中的OpenGL ES概述
概述上一篇主要想要脱离Android平台介绍一下OpenGL和OpenGL ES到底是什么,从本篇起开始从零开始搭建自己的Android平台下OpenGL ES知识体系。一.Android基本架构中OpenGL ES1.1 OpenGL ES在Android的基本架构中位置如下图,我们从Android的基本架构中找到OpenGL ES的位置。OpenGL ES就在Libraries里面...原创 2019-04-26 13:56:33 · 3310 阅读 · 0 评论 -
OpenGl Es进阶一——VR视频的播放
概述重点:VR视频播放;播放模式分为全景视频和VR眼睛模式;原创 2019-05-17 11:16:08 · 2469 阅读 · 0 评论