精华内容
下载资源
问答
  • Android OpenGLES 3.0 开发系统性学习教程 备注: 请使用 Android Studio 4.1+ ,NDK r21,其中一些 Case 的 3D 效果是通过手势触发(转动和缩放) 展示图 基础篇 OpenGL ES 3.0 开发(08):坐标系统 OpenGL ES 3.0 ...
  • 为避免一些重复代码,这里定义一个所有示例代码的基类OpenGLESActivity ,其定义如下:1public class OpenGLESActivity extends Activity2implements IOpenGLDemo{3/** Called when the activity is first created....

     type: 顶点的数据类型,可以为GL_BYTE, GL_SHORT, GL_FIXED,或GL_FLOAT ,缺省为浮点类型GL_FLOAT 。 stride: 每个相邻顶点之间在数组中的间隔(字节数),缺省为0,表示顶点存储之间无间隔。 pointer: 存储顶点的数组。 应用用上可以般顶点的颜色值存放在对应顶点后面,如下图,RGB 采用4字节 表示,此时相邻顶点就不是连续存放的,stride值为4 对应顶点除了可以为其定义坐标外,还可以指定颜色,材质,法线(用于光照处 理)等。 glEnableClientState 和 glDisableClientState 可以控制的pipeline 开关可以有: GL_COLOR_ARRAY (颜色) ,GL_NORMAL_ARRAY (法线), GL_TEXTURE_COORD_ARRAY (材质), GL_VERTEX_ARRAY(顶点), GL_POINT_SIZE_ARRAY_OES 等。 对应的传入颜色,顶点,材质,法线的方法如下: glColorPointer(int size,int type,int stride,Buffer pointer) glVertexPointer(int size, int type, int stride, Buffer pointer) glTexCoordPointer(int size, int type, int stride, Buffer pointer) glNormalPointer(int type, int stride, Buffer pointer) 如果需要使用三角形来构造复杂图形,可以使用GL_TRIANGLE_STRIP 或 GL_TRIANGLE_FAN 模式,另外一种是通过定义顶点序列: 如下图定义了一个正方形: 对应的顶点和buffer定义代码:private short[] indices = { 0, 1, 2, 0, 2, 3 };1//To gain some performance we also put this ones in a byte2buffer.3// short is 2 bytes, therefore we multiply the number if verticeswith 2.4ByteBuffer ibb = ByteBuffer.allocateDirect(indices.length * 2);5ibb.order(ByteOrder.nativeOrder());6ShortBuffer indexBuffer = ibb.asShortBuffer();7indexBuffer.put(indices);8indexBuffer.position(0); 定义三角形的顶点的顺序很重要在拼接曲面的时候,用来定义面的顶点的顺序 非常重要,因为顶点的顺序定义了面的朝向(前向或是后向),为了获取绘制的 高性能,一般情况不会绘制面的前面和后面,只绘制面的“前面”。

    虽然“前面”“后 面” 的定义可以应人而易,但一般为所有的“前面”定义统一的顶点顺序(顺时针或 是逆时针方向)。 下面代码设置逆时针方法为面的“前面” :1gl.glFrontFace(GL10.GL_CCW); 打开 忽略“后面”设置:1gl.glEnable(GL10.GL_CULL_FACE); 明确指明“忽略“哪个面的代码如下:1gl.glCullFace(GL10.GL_BACK);Android OpenGL ES开发教程(9)绘制点Point上一篇介绍了OpenGL ES 能够绘制的几种基本几何图形:点,线,三角形。 将分别介绍这几种基本几何图形的例子。为方便起见,暂时在同一平面上绘制这 些几何图形,在后面介绍完OpenGL ES 的坐标系统和坐标变换后,再介绍真正 的3D 图形绘制方法。 在Android OpenGL ES开发教程(7):创建实例应用OpenGLDemos 程序框架 创建了示例应用的程序框架,并提供了一个“Hello World”示例。 为避免一些重复代码,这里定义一个所有示例代码的基类OpenGLESActivity ,其定义如下:1public class OpenGLESActivity extends Activity2implements IOpenGLDemo{3/** Called when the activity is first created. */4@Override5public void onCreate(Bundle savedInstanceState) {6super.onCreate(savedInstanceState);7this.requestWindowFeature(Window.FEATURE_NO_TITLE);8getWindow().setFlags(9WindowManager.LayoutParams.FLAG_FULLSCREEN,10WindowManager.LayoutParams.FLAG_FULLSCREEN);11mGLSurfaceView = new GLSurfaceView(this); 12mGLSurfaceView.setRenderer(new OpenGLRenderer(this)); 13setContentView(mGLSurfaceView); 14} 15public void DrawScene(GL10 gl) { 16gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 17// Clears the screen and depth buffer. 18gl.glClear(GL10.GL_COLOR_BUFFER_BIT 19| GL10.GL_DEPTH_BUFFER_BIT); 20} 21@Override 22protected void onResume() { 23// Ideally a game should implement onResume() andonPause() 24// to take appropriate action when the activity looses focus 25super.onResume(); 26mGLSurfaceView.onResume(); 27} 28@Override 29protected void onPause() { 30// Ideally a game should implement onResume() and31onPause()32// to take appropriate action when the activity looses focus33super.onPause();34mGLSurfaceView.onPause();35}36protected GLSurfaceView mGLSurfaceView;37} 在onCreate 方法中创建一个GLSurfaceView mGLSurfaceView,并将屏幕设置为全屏。

    并为mGLSurfaceView 设置Render. onResume ,onPause 处理GLSurfaceView的暂停和恢复。 DrawScene 使用黑色清空屏幕。 OpenGL ES 内部存放图形数据的Buffer 有COLOR ,DEPTH (深度信息)等android opengl 教程, 在绘制图形只前一般需要清空COLOR和 DEPTH Buffer 。 本例在屏幕上使用红色绘制3 个点。创建一个DrawPoint作为 OpenGLESActivity 的子类,并定义3 个顶点的坐标:1public class DrawPoint extends OpenGLESActivity2implements IOpenGLDemo{3float[] vertexArray = new float[]{4-0.8f , -0.4f * 1.732f , 0.0f ,50.8f , -0.4f * 1.732f , 0.0f ,60.0f , 0.4f * 1.732f , 0.0f ,7};8/** Called when the activity is first created. */9@Override10public void onCreate(Bundle savedInstanceState) {11super.onCreate(savedInstanceState);12}13...14} 下面为DrawPoint的DrawScene的实现:1public void DrawScene(GL10 gl) {2super.DrawScene(gl);3ByteBuffer vbb4= ByteBuffer.allocateDirect(vertexArray.length*4);5vbb.order(ByteOrder.nativeOrder());6FloatBuffer vertex = vbb.asFloatBuffer();7vertex.put(vertexArray);8vertex.position(0); 9gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); 10gl.glPointSize(8f); 11gl.glLoadIdentity(); 12gl.glTranslatef(0, 0, -4); 13gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 14gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertex); 15gl.glDrawArrays(GL10.GL_POINTS, 0, 3); 16gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); 17}  首先是使用FloatBuffer存放三个顶点坐标。

    f004c0903d743b462951d9bbe34fc335.png

     使用glColor4f(floatred, float green, float blue, float alpha) 将当前颜色设为红色。  glPointSize(float size) 可以用来设置绘制点的大小。  使用glEnableClientState打开Pipeline的Vectex 顶点“开关”  使用glVertexPointer 通知OpenGL ES 图形库顶点坐标。  使用GL_POINTS 模式使用glDrawArrays 绘制3 个顶点。本例下载Android OpenGL ES开发教程(10)绘制线段Line Segment 创建一个DrawLine Activity ,定义四个顶点: float vertexArray[] = { 1 -0.8f, -0.4f * 1.732f, 0.0f, 2 -0.4f, 0.4f * 1.732f, 0.0f, 3 0.0f, -0.4f * 1.732f, 0.0f, 4 0.4f, 0.4f * 1.732f, 0.0f, 5 }; 6 分别以三种模式GL_LINES ,GL_LINE_STRIP ,GL_LINE_LOOP 来绘制直 线: 1 public void DrawScene(GL10 gl) { 2 super.DrawScene(gl); 3 ByteBuffer vbb 4 = 5ByteBuffer.allocateDirect(vertexArray.length*4 6); 7 vbb.order(ByteOrder.nativeOrder()); 8 FloatBuffer vertex = vbb.asFloatBuffer(); 9 vertex.put(vertexArray); 10 vertex.position(0); 11 gl.glLoadIdentity(); 12 gl.glTranslatef(0, 0, -4); 13 gl.glEnableClientState(GL10.GL_VERTEX_AR 14RAY); 15 gl.glVertexPointer(3, GL10.GL_FLOAT, 0, 16vertex); 17 index++; 18 index%=10; 19 switch(index){ 20 case 0: 21 case 1: 22 case 2: 23 gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); 24 gl.glDrawArrays(GL10.GL_LINES, 0, 4); 25 break; 26 case 3: 27 case 4: 28 case 5 : 29 gl.glColor4f(0.0f, 1.0f, 0.0f, 1.0f); 30 gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 314); 32 break; 33 case 6: 34 case 7: 35 case 8: 36 case 9: 37 gl.glColor4f(0.0f, 0.0f, 1.0f, 1.0f); 38 gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, 4); 39 break; 40 } 41 gl.glDisableClientState(GL10.GL_VERTEX_A 42RRAY); 43 } 这里index的目的是为了延迟一下显示(更好的做法是使用固定时间间隔)。

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/jisuanjixue/article-113773-3.html

    展开全文
  • OpenGLES经典教程大全

    2019-07-23 09:12:39
    教程名称:OpenGL ES经典教程大全课程目录:【】Android应用OpenGLES制作3D图像【技术文档】【】OpenGL ES 2.0 官方手册【】OpenGL ES 2.0 编程指南【】OpenGL ES 2.0【】OpenGL ES【】OpenGL ES教程以及COCOS 2D...
  • Android OpenGLES 3.0 开发极简教程

    千次阅读 2020-05-09 19:01:41
    Android OpenGLES 3.0 开发极简教程

    在这里插入图片描述

    Android OpenGLES 3.0 开发极简教程

    https://github.com/githubhaohao/NDK_OpenGLES_3_0
    备注: 其中一些 Case 的 3D 效果是通过手势触发(转动和缩放)。

    展示图

    3D模型
    在这里插入图片描述

    基础篇

    应用篇

    展开全文
  • Android OpenGL ES 教程

    2021-06-05 04:01:52
    正如 OpenGL ES 允许你将所有顶点置于一个数组中,它还允许你将每个顶点使用的颜色置于一个颜色数组(color array)中。 通过下面方法启动颜色数组:glEnableClientState(GL_COLOR_ARRAY); 记住:如果你按绘制的...

    笔记

    基础部分 1,2 基本概念 + 简单绘图概述

    图像构成:点 线 三角形。

    front face(前面),backface(背面),Backface Culling(隐面消除)。

    “复位开关”,glLoadIdentity() 它将清除虚拟世界中的一切旋转,移动或其他变化并将观察者置于原点。

    glClearColor(0.7, 0.7, 0.7, 1.0);清除颜色,RGBA颜色值,是0.0 到 1.0之间的浮点数。

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);清除颜色缓存(color buffer) 和 深度缓存(depth buffer)。

    glEnableClientState(GL_VERTEX_ARRAY);启动OpenGL的一项称为vertex arrays(顶点数组)的特性。

    glColor4f(1.0, 0.0, 0.0, 1.0);设置了绘图时所需的颜色。此行代码将绘图颜色设为鲜艳的红色。现在,直到下次调用 glColor4f()前所有的图形都是以红色绘制。

    glVertexPointer(3, GL_FLOAT, 0, &triangle);通知OpenGL顶点的数组在什么地方。

    glDrawArrays(GL_TRIANGLES, 0, 9);通知OpenGL通过刚才提交的顶点数组来绘制三角形。

    glDisableClientState(GL_VERTEX_ARRAY);禁止先前启动了的特性以保证不会被其他地方的代码弄混。

    正如 OpenGL ES 允许你将所有顶点置于一个数组中,它还允许你将每个顶点使用的颜色置于一个颜色数组(color array)中。 通过下面方法启动颜色数组:glEnableClientState(GL_COLOR_ARRAY);

    记住:如果你按绘制的正确次序提供顶点,那么你应该使用glDrawArrays(),但是如果你提供一个数组然后用另一个以索引值区分顶点次序的数组的话,那么你应该使用glDrawElements()。

    基础部分 3 透视

    OpenGL视口(viewport)虚拟世界是没有边界的,但计算机不可能处理无限的空间,所以OpenGL需要我们定义一个可以被观察者看到的空间。

    OpenGL ES中具有的两种不同的视口类型:正交和透视。

    透视(perspective)。OpenGL可以设定的视口中的一种就是使用透视。当你这样设置视口时,物体会随着移远而越来越小,视线会在物体移离观察者时最终交汇。这是对真实视觉的模拟;人们就是以这种方式观察世界的。glFrustumf();glViewport();

    687474703a2f2f7777772e696d6f62696c656262732e636f6d2f776f726470726573732f77702d636f6e74656e742f75706c6f6164732f323031312f30372f32303131303730323030332e706e67

    正交(orthogonal) 视口。这种类型的视口,视线永远不会交汇而且物体不会改变其大小。没有透视效果。对于CAD程序以及其他各种目的是十分方便的,但因为它不像人们眼睛观察的方式所以看上去是不真实的,通常也不是你所希望的。正交视口的优点是容易定义。因为线永不交汇,你只需定义一个像箱子一样的3D空间 glOrthof(); glViewport();

    687474703a2f2f6262732e74616972616e2e636f6d2f646174612f6174746163686d656e742f706f7274616c2f3230313130392f31342f32333239343961787179637a63696f716f716e716c672e6a7067

    基础部分 4 光效

    OpenGL在没有设置光效的情况下仍然可以看见东西。 它只是提供一种十分单调的整体光让我们看到物体。

    阴影模型(Shade Model)

    GL_FLAT,我们将不会讨论GL_FLAT,因为这只会让你的程序看上去来自九十年代。从发光的角度来看,GL_FLAT将指定三角形上的每个像素都同等对待。多边形上的每个像素都具有相同的颜色,阴影等。它提供了足够的视觉暗示使其看上去有立体感而且它的计算比每个像素按不同方法计算更为廉价,但是在这种方式下,物体看上去极为不真实。现在有人使用它可能是为了产生特殊的复古效果,但要使你的3D物体尽量真实,你应该使用 GL_SMOOTH 绘图模式,它使用了一种平滑但较快速的阴影算法,称为Gouraud 算法。 GL_SMOOTH是默认值。

    GL_SMOOTH

    启动光效

    glEnable(GL_LIGHTING);通常情况下,光效只需在设定时启动一次。不需要在绘图开始前后打开和关闭。可能有些特效的情况需要在程序执行时打开或关闭,但是大部分情况下,你只需在程序启动时打开它。

    glEnable(GL_LIGHT0);OpenGL ES允许你创建8个光源。有一个常量对应于这些光源中的一个,常量为GL_LIGHT0 到 GL_LIGHT7。可以任意组合这些光源中的五个,尽管习惯上从 GL_LIGHT0 作为第一个光源,然后是 GL_LIGHT1 等等。下面是“打开”第一个光源GL_LIGHT0的方法: glEnable(GL_LIGHT0);

    光效三要素

    687474703a2f2f6262732e74616972616e2e636f6d2f646174612f6174746163686d656e742f706f7274616c2f3230313130392f31342f32333335303565756d6f6d6d697a75796d79716467652e6a7067

    环境元素(ambient component)

    const GLfloat light0Ambient[] = {0.05, 0.05, 0.05, 1.0};

    glLightfv(GL_LIGHT0, GL_AMBIENT, light0Ambient);

    散射元素(diffuse component)

    const GLfloat light0Diffuse[] = {0.5, 0.5, 0.5, 1.0};

    glLightfv(GL_LIGHT0, GL_DIFFUSE, light0Diffuse);

    高光元素(specular component)

    const GLfloat light0Specular[] = {0.7, 0.7, 0.7, 1.0};

    glLightfv(GL_LIGHT0, GL_SPECULAR, light0Specular);

    位置

    const GLfloat light0Position[] = {10.0, 10.0, 10.0, 0.0};

    glLightfv(GL_LIGHT0, GL_POSITION, light0Position);

    创建点光源(聚光灯)

    指定光的方向

    const GLfloat light0Direction = {0.0, 0.0, -1.0};

    glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light0Direction);

    指定光的角度

    glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 45.0);

    指定顶点法线 TODO

    ref

    展开全文
  • 为什么要写这个教程 目前这个 OpenGL ES 极简教程的更新...另外,这个 Android OpenGL ES 极简教程主要是为音视频开发做准备的。 准备知识 一些同学反映,学习这个教程感觉有点门槛。其实,就是需要懂一些 Android

    为什么要写这个教程

    目前这个 OpenGL ES 极简教程的更新暂时告一段落,说是教程,其实自知有种吹嘘的味道,很荣幸获得了阮一峰老师的推荐。

    因为在工作中频繁使用 OpenGL ES 做一些特效、滤镜之类的效果,加上平时学到的的知识点也比较细碎,就想着去系统地学习下 OpenGL ES 相关开发知识,并将学习过程记录下来。

    另外,这个 Android OpenGL ES 极简教程主要是为音视频开发做准备的。

    准备知识

    一些同学反映,学习这个教程感觉有点门槛。其实,就是需要懂一些 Android 开发和 C/C++ 开发知识。

    在本公众号:字节流动,后台回复 1024 即可获取相关的视频教程,里面有 2 个章节是关于 C/C++ 基础和 NDK 开发知识的讲解。

    实现代码

    关注微信公众号: 字节流动,后台回复: OpenGL教程,即可获取相关实现代码。

    基础篇和应用篇

    该教程分为基础篇和应用篇,基础篇主要是讲解 GLES 3.0 的主要核心知识点,而应用篇主要是利用基础篇的知识实现一些常见的特效和功能。

    基础篇

    OpenGL ES 3.0 开发(01):绘制一个三角形

    OpenGL ES 3.0 开发(02):纹理映射

    OpenGL ES 3.0 开发(03):YUV 渲染

    OpenGL ES 3.0 开发(04):VBO、EBO 和 VAO

    OpenGL ES 3.0 开发(05):FBO 离屏渲染

    OpenGL ES 3.0 开发(06):EGL

    OpenGL ES 3.0 开发(07):Transform Feedback

    OpenGL ES 3.0 开发(08):坐标系统

    OpenGL ES 3.0 开发(09):光照基础

    OpenGL ES 3.0 开发(10):深度测试

    OpenGL ES 3.0 开发(11):模板测试

    OpenGL ES 3.0 开发(12):混合

    OpenGL ES 3.0 开发(13):实例化(Instancing)

    OpenGL ES 3.0 开发(14):粒子(Particles)

    OpenGL ES 3.0 开发(15):立方体贴图(天空盒)

    OpenGL ES 3.0 开发(16):相机预览

    OpenGL ES 3.0 开发(17):相机基础滤镜

    OpenGL ES 3.0 开发(18):相机 LUT 滤镜

    OpenGL ES 3.0 开发(19):相机抖音滤镜

    OpenGL ES 3.0 开发(20):3D 模型

    OpenGL ES 3.0 开发(21):3D 模型加载和渲染

    OpenGL ES 3.0 开发(22):PBO

    应用篇

    OpenGL ES 实现动态(水波纹)涟漪效果

    OpenGL ES 实现 3D 阿凡达效果

    OpenGL ES 实现刮刮卡和手写板功能

    OpenGL ES 实现实时音频的可视化

    OpenGL ES 实现大小头和头部晃动效果

    OpenGL ES 实现瘦脸大眼效果

    OpenGL ES 绘制贝塞尔曲线

    OpenGL ES 实现瘦身大长腿效果

    OpenGL ES 实现心动特效

    下一阶段更新预告

    有些刚进来的同学说,“我是来学习音视频开发的,你老是更新 OpenGL 是什么鬼?”

    所以,基于以上需求该教程的更新暂时告一段落,不过后面还会有一些重要知识点会更新上去,如 HardwareBuffer 等。

    学习音视频开发,FFmpeg 是一个必须要掌握的开源工具,熟悉和掌握它,对学习整个音视频开发知识的脉络非常有帮助。

    基于上述我们掌握的 OpenGL 开发知识,再利用 FFmpeg 开源库强大的音视频处理功能,我们可以轻易实现视频播放和录制,接下来我们将以 FFmpeg 开发为基础逐步去熟悉音视频开发的知识脉络。

    下一阶段【字节流动】公众号的更新内容大致如下:

    1. FFmpeg 开发(01):FFmpeg 编译和集成
    2. FFmpeg 开发(02):FFmpeg + OpenSL ES 音频解码播放
    3. FFmpeg 开发(03):FFmpeg + OpenGL ES 视频解码播放
    4. FFmpeg 开发(04):实现音视频同步的三种方式
    5. FFmpeg 开发(05):基于 FFmpeg + OpenSL ES + OpenGL ES 实现一个播放器
    6. FFmpeg 开发(06):基于 OpenGL ES 实现播放器滤镜
    7. FFmpeg 开发(07):FFmpeg + AudioRecorder 音频编码
    8. FFmpeg 开发(08):FFmpeg + Camera 视频编码
    9. FFmpeg 开发(09):FFmpeg 音视频编码合成 MP4 文件
      ......
    展开全文
  • Android_OpenGL_ES_book》是一份OpenGL ES的中文教程,共27部分,由浅入深,事无巨细一一讲到
  • Android OpenGL ES 2.0 开发教程 从入门到精通和Demo(内容详细、简单,易学)
  • Android开发之OpenGL ES教程

    热门讨论 2010-09-15 15:55:21
    Android开发之OpenGL ES教程Android开发之OpenGL ES教程Android开发之OpenGL ES教程Android开发之OpenGL ES教程Android开发之OpenGL ES教程Android开发之OpenGL ES教程Android开发之OpenGL ES教程,...
  • Android OpenGL es 教程

    2011-07-03 22:09:39
    有旋转体 立方体 深度 水印 旋转 漩涡效果 总共十几个教程
  • Mesh(网格,三角面)是构成空间形体的基本元素,前面的正方形也是由两个Mesh构成的。...Design设计在使用OpenGL框架时一个好的设计原则是使用“CompositePattern”(组合模式),本篇采用如下设计:Mesh...
  • Android Native层使用opengl es渲染yuv420,通过egl绑定android的surface,直接在native层进行渲染 具体使用见http://blog.csdn.net/lidec/article/details/73732369#comments
  • Android OpenGL ES 简明开发教程
  • 前言 本文目标是开发一款在Android&...IOS上运行的图形应用,供...网上大多OpenGL ES教程,要么是仅适于Android的(Java),要么就是仅适于iOS的(Objective-C),其实OpenGL ES是...
  • 主要给大家介绍了关于Android利用OpenGLES绘制天空盒的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
  • 在上一篇教程中,我们主要讨论了网格,以及如何在网格中添加颜色。实际上向网格添加颜色的更普遍的做法是使用纹理。向网格添加纹理是与添加颜色有些不同的,接下来,我将展示这些操作,并解释一些基本知识。载入...
  • 上一篇教程是关于变换的。...OpenGL使用RGBA(red,green,blue,alpha)颜色模式。前三个见字知意,不多说。第四个值代表透明度,即颜色有多纯净。如果你想阅读关于颜色的更多信息,可以看这里:RGB颜色模式...
  • opengles 教程

    2013-03-11 23:04:10
    opengles 教程
  • 原博客:... Android OpenGL ES 简明开发教程 ...Android OpenGL ES 简明开发教程一:概述Android OpenGL ES 简明开发教程二:构造OpenGL ES ViewAndroid OpenGL ES 简明开发教程三:3D绘图基本概念A
  • Android OpenGL ES 简明开发教程三 3D绘图基本概念
  • 含有以下4个pdf,主要介绍基本概念和用法,对初学者非常有用。...Android OpenGL ES 简明开发教程.pdf Android_OpenGL_ES_book.pdf OpenGL ES 2 for Android.pdf Apress.Pro.OpenGL.ES.for.Android.Feb.2012.pdf
  • 我将会写一个系列的关于安卓opengl ES教程。对于不同的设备,opengl的原理是相通的,所以你能够很容易的移植到其他平台。我不可能记清我具体从哪里获取的这些详细信息,所以有时候我可能不能给出足够正确的引用...
  • OpenGL ES 系列教程

    千次阅读 2019-01-28 15:19:07
    http://blog.oo87.com/opengl/6209.html   初识 OpenGL ES2.0 ...随着 Android 系统版本以及硬件水平的提升,OpenGL ES 版本也由原先仅支持固定渲染管线的 OpenGL ES 1.X 升级为 支持自定义渲染管线的...
  • 我有一个预感,看了我前几篇教程的人,可能会问我:这是一系列3D教程,为什么讲的都是2D的事呢?那么在接下来这篇教程中,我们来创建一些3D的渲染网格。这也是后面的教程所需要的准备。 在当初我开始学习openGL的...
  • OpenGLESAndroid2018版) 在大学期间系统的学习了open...
  • 有位大佬说,“这是全网最全的 Android OpenGL ES 教程”,哈哈,对于这种善意的“商业互吹”,当然是欣然接受,这无疑给了我更多的动力和激情来完善这几个系列的文章。学习 And...
  • 学习OpenGLES 该项目主要基于的代码,并采用了一些跨平台功能。 所有呈现代码都在前端和后端分开。 gui或窗口在前端运行,而opengles渲染在后端运行。 前端代码仅用于表示,后端OpenGLES仅用于呈现计算,而与GUI...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,627
精华内容 1,850
关键字:

安卓opengles教程