Android-GL 是 OpenGL 编程的一些 Android 平台上的实例集合,非常适合 OpenGL 初学者。

该项目就22个目标文件,如图:

效果如图:

实例1,效果如图:

代码如下:

 protected void init(GL10 gl){// Setup background colorgl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);// Smooth shadinggl.glShadeModel(GL10.GL_SMOOTH);}public void onDrawFrame(GL10 gl){xrot += 1f;yrot += 1f;// Clear screengl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);// Scene view matrixgl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();gl.glPushMatrix();gl.glTranslatef(-0.25f, 0.0f, -2f);gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);// Setup triangle data and draw it.gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangleBuff);gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuff);gl.glEnableClientState(GL10.GL_COLOR_ARRAY);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);// Reset to identitygl.glPopMatrix();// Clear the color arraygl.glDisableClientState(GL10.GL_COLOR_ARRAY);// Translation to square location.gl.glTranslatef(0.25f, 0.0f, -2f);gl.glRotatef(yrot, 0, 1, 0);// Setup square data & draw itgl.glVertexPointer(3, GL10.GL_FLOAT, 0, squareBuff);gl.glColor4f(0.25f, 0.25f, 0.75f, 1.0f);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);}

实例2,效果如图:

实现代码如下:

 protected void init(GL10 gl){gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);gl.glEnable(GL10.GL_DEPTH_TEST);gl.glDepthFunc(GL10.GL_LEQUAL);gl.glClearDepthf(1.0f);gl.glShadeModel(GL10.GL_SMOOTH);}public void onDrawFrame(GL10 gl){gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();gl.glTranslatef(0, 0, -1);gl.glPushMatrix();gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangleBuff);gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuff);gl.glEnableClientState(GL10.GL_COLOR_ARRAY);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);gl.glPopMatrix();gl.glPushMatrix();gl.glTranslatef(-0.2f, -.1f, -1.0f);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);gl.glPopMatrix();gl.glPushMatrix();gl.glTranslatef(0.1f, 0.1f, -0.5f);gl.glRotatef(45.0f, 0, 0, 1);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);gl.glPopMatrix();gl.glTranslatef(0.15f, 0.05f, -0.4f);gl.glRotatef(45, 0, 1, 0);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);gl.glPopMatrix();}

实例3,效果如图:

代码如下:

 protected void init(GL10 gl){gl.glEnable(GL10.GL_LIGHTING);gl.glEnable(GL10.GL_LIGHT0);gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, matAmbient, 0);gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, matDiffuse, 0);gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, lightAmbient, 0);gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, lightDiffuse, 0);gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, lightPos, 0);gl.glEnable(GL10.GL_DEPTH_TEST);gl.glDepthFunc(GL10.GL_LEQUAL);gl.glEnable(GL10.GL_TEXTURE_2D);gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);gl.glClearDepthf(1.0f);gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeBuff);gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texBuff);gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);gl.glEnable(GL10.GL_CULL_FACE);gl.glShadeModel(GL10.GL_SMOOTH);tex = loadTexture(gl, R.drawable.icon);}float xrot = 0.0f;float yrot = 0.0f;public void onDrawFrame(GL10 gl){gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);setupCube(gl);gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0);gl.glRotatef(xrot, 1, 0, 0);gl.glRotatef(yrot, 0, 1, 0);drawCube(gl);xrot += 1.0f;yrot += 0.5f;}

实例总共有14个!此处就学习了前三甲了!~

学习的目标是成熟!~~

开源项目之Android-GL(OpenGL 编程)相关推荐

  1. java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程

    作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...

  2. 从 bug 中学习:六大开源项目告诉你 go 并发编程的那些坑

    作者:richardyao,腾讯 CSIG 后台开发工程师 并发编程中,go 不仅仅支持传统的通过共享内存的方式来通信,更推崇通过channel来传递消息,这种新的并发编程模型会出现不同于以往的bug ...

  3. 使用ConnectBot开源项目在android设备上管理你的linux系统

    最近,工作中有使用android通过ssh管理linux系统的需求,找到了这个ConnectBot这个开源项目https://github.com/connectbot/connectbot.http ...

  4. 【开源项目】Android 手写记事 App(半成品)

    该项目已上传到 CSDN 的 Git 平台中 项目地址:https://code.csdn.net/gd920129/whiteboard GIT SSH:git@code.csdn.net:gd92 ...

  5. 开源项目之Android繁体中文输入法

    一款功能强大的输入法,集合 "广东话.拼音.仓颉.速成"四种常用中文输入法,以及英文.数字及符号键盘,一按独立切换键即可变更.同一键盘可作中英文输入,无需切换,支持联想字功能,融合 ...

  6. 【开源项目】Android开发内置App自动升级

    1.准备工作,首先需要在AndroidManifest.xml中的application中加入以下内容 <providerandroid:name="android.support.v ...

  7. 【开源项目】Android下自定义HASH【支持一个key对应多个value--根据key排序】

    package com.peace.love.carpo_test.tool;import java.util.List; import java.util.Map; import java.util ...

  8. 优秀的 Android 开源项目

    为什么80%的码农都做不了架构师?>>>    摘要  转载http://www.trinea.cn/android/android-open-source-projects-vie ...

  9. 最火的Android开源项目整理

    一.代码库 1.from  代码家 整理比较好的源码连接 *********************************************************************** ...

  10. Java开源Android开源项目

    FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 更多FBRea ...

最新文章

  1. 金融业加速智能化,解析360金融AI基础架构和应用
  2. 区块链智能合约入门:Hello world(2)
  3. react-native 小米手机和 mac 安装
  4. 面向中文短文本的实体链指任务竞赛亚军DeepBlueAI团队技术分享
  5. CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群
  6. Web应用的负载均衡、集群、高可用(HA)解决方案整理总结
  7. 计算机98k音乐,【土豆】handclap 98K 完整版
  8. Win10怎样彻底关闭安全中心
  9. 无连续重复的随机算法
  10. 短视频追剧的末日来了?
  11. 一条让人不安的坐地龙
  12. 坚果云 linux 使用方法,树莓派4B踩坑指南 - (10)安装坚果云(暂时失败)
  13. VUE中导出Excel功能的实现
  14. win10经常无法复制粘贴
  15. ssm+vue基本微信小程序的校园二手商城系统 计算机毕业设计
  16. HTMl+CSS 模仿京东网登录页面
  17. 这七种职业男人让多少日本女性着迷
  18. matlab合成和弦,基于Matlab实现音乐识别与自动配置和声的功能.pdf
  19. BackTrack V5的汉化
  20. win7下装ubuntu双系统 硬盘安装详细教程

热门文章

  1. [IOS]'Project Name' was compiled with optimization
  2. 6410修改键盘驱动 自定义6*5矩阵键盘
  3. PTA|pintia.cn计算摄氏温度
  4. 《如何阅读一本书》读后感1
  5. 区分概率中的事件关系
  6. python画一朵玫瑰花,制作成可执行文件
  7. QPSK调制与解调原理
  8. 【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(技术优化篇)
  9. WeBankBlockchain 数据治理全景
  10. java里remark是什么意思_remark_remark的意思和用法搭配