1. 首页 > 笙耀百科 >

opengles20是什么 opengles31是什么

《Android3D游戏开发技术宝典OpenGLES2.0》pdf下载在线阅读,求百度网盘云资源

《Android 3D游戏开发技术宝典》(吴亚峰)电子书网盘下载免费在线阅读

opengles20是什么 opengles31是什么opengles20是什么 opengles31是什么


资源链接:

链接:

密码:2xnw

书名:Android 3D游戏开发技术宝典

作者:吴亚峰

出版年份:2012-5

页数:749

内容简介:

《Android 3D游戏开发技术宝典:OpenGL ES 2.0》内容简介:随着智能手机移动嵌入式平台硬件性能的不断提升,3D游戏应用也逐渐普及开来。《Android 3D游戏开发技术宝典:OpenGL ES 2.0》结合作者多年从事3D游戏应用开发的宝贵经验,全面介绍了与Android平台相关的必知必会的基础知识及大型完整3D案例,讲解上由浅入深,循序渐进,起点低、终点高,既适合初学者学习,也适合有一定基础的读者进一步提升之用。另外,由于OpenGL ES2.0的着色语言通用于各种移动嵌入式平台,因此,《Android 3D游戏开发技术宝典:OpenGL ES 2.0》中与着色器开发相关的60%左右的内容还可供iPhone、Windows Mobile、MeeGoo等平台的开发人员参考。全书共22章,其中第1章与第2章为Android平台相关的一些基础知识;第3章~第10章介绍了基于OpenGL ES2.0进行3D应用开发的一些必知必会的基本知识;第11章~第15章介绍了一些高级特效的实现方法;第16章~第17章介绍了3D游戏开发中相关的一些物理、碰撞检测知识以及常用的3D物理引擎JBullet:第19章介绍了3种人机交互的高级技术;第20章~第22章给出了3个完整的大型3D游戏案例,总代码量接近6万行。同时为了便于读者的学习,《Android 3D游戏开发技术宝典:OpenGL ES 2.0》附赠的光盘中包含了书中所有案例的完整源代码,同时给出了最后3个完整大型3D游戏案例的讲解视频,最大限度地帮助读者快速掌握相应的开发技术。

Android opengl es 2.0怎么学习

OpenGLES是一个让人崩溃的东西。在Andorid手机上做3D还就得用它。把我记的一些笔记分享在这里吧:

Android OpenGL ES简介 20011-6-3

Android系统使用OpenGL的标准接口来支持3D图形功能,android 3D图形系统也分为java框架和本地代码两部分。

本地代码主要实现的OpenGL接口的库,在Java框架层,javax.microedition.khronos.opengles是java标准的OpenGL包,

android.opengl包提供了OpenGL系统和Android GUI系统之间的联系。

Android的本地代码位于frameworks/base/opengl下,

JNI代码位于frameworks/base/core/com_google_android_gles_jni_GLImpl.cpp和frameworks/base/core/com_google_android_gles_jni_EGLImpl.cpp,

java类位于opengl/java/javax/microedition/khronos下

本地测试代码位于frameworks/base/opengl/tests。包括angeles、fillrate等14个测试代码,这些代码都可以通过终端进行本地调用测试(模拟器中使用adb shell)。

OpenGL ES 1.x

固定管线操作,支持glVertexPointer()等函数,不支持GLSL。头文件在ndk的GLES目录下,库文件是libGLESv1_CM.so。

OpenGL ES 2.x

可编程管线操作,不兼容1.x,不支持固定管线操作,例如glVertexPointer()等函数。支持GLSL(还必须用这个来编程)。头文件在ndk的GLES2目录下,库文件是libGLESv2.so。

OpenGL ES学习 2011-6-30

OpenGL定义了自己的数据类型。应该坚持使用这些OpenGL的数据类型,从而保证可移植性和效率。

OpenGL ES 目前不支持64位数据类型。

OpenGL ES 只支持三边形。

OpenGL ES 只支持gl开头的函数,glu库都不支持。

OpenGL ES 从 OpenGL中删除的功能:

1. glBegin/glEnd

2. glArrayElement

3. 显示列表

4. 求值器

5. 索引色模式

6. 自定义裁剪平面

7. glRect

8. 图像处理(这个一般显卡也没有,FireGL/Quadro显卡有)

9. 反馈缓冲

10. 选择缓冲

11. 累积缓冲

12. 边界标志

13. glPolygonMode

14. GL_QUADS,GL_QUAD_STRIP,GL_POLYGON

15. glPushAttrib,glPopAttrib,glPushClientAttrib,glPopClientAttrib

16. TEXTURE_1D、TEXTURE_3D、TEXTURE_RECT、TEXTURE_CUBE_MAP

17. GL_COMBINE

18. 自动纹理坐标生成

19. 纹理边界

20. GL_CLAMP、GL_CLAMP_TO_BORDER

21. 消失纹理代表

22. 纹理LOD限定

23. 纹理偏好限定

24. 纹理自动压缩、解压缩

25. glDrawPixels,glPixelTransfer,glPixelZoom

26. glReadBuffer,glDrawBuffer,glCopyPixels

OpenGL ES 2.0 2011-10-9

2.0和1.1不兼容。

- 2.0使用的头文件是ndk的include目录下的GLES2目录,有gl2.h,gl2ext.h,gl2platform.h,而1.1使用的是GLES目录。

- 2.0使用的库文件是ndk的lib目录下的libGLESv2.so,而1.1使用的是libGLESv1_CM.so。

- 2.0中取消了很多1.1函数,例如glMatrixModel和glLoadIdentity等。

OpenGL着色语言(GLSL――OpenGL Shading Language)

- 使用2.0,必须学此语言。因为很多1.1的函数都被取消了。

san-angeles NDK OpenGL ES 1.1的例子程序 2012-3-8

San Angeles,查维基百科,是一个虚构的未来概念城市,位于南加州。常在电影中出现,来源自Los Angeles和San Diego.

该程序的演示效果是,观察一个宏伟的城市,地面是镜面有建筑倒影,城市中有飞船飞过。前后有5、6个观察点,而且镜头在每个观察点不停的移动。

这个例子,用NDK(C++)调用OpenGL ES 1.1来绘制了San Angeles这个城市。基本上全部使用了NDK,Java程序只有1个。

用vc2005演示一下,目的通过跟踪代码了解一些细节。方法是:

- 将jni下所有的.h文件,以及demo.c,app-win32.c复制出来,放在一个专门的目录下,然后改造成用OpenGL的而不是ES的。(或者干脆删除大段的绘制代码,保证编译通过)

首先分析Java代码

- DemoActivity.java,这是唯一的Java文件,它主要需要下列4个jni的接口:

- private static native void nativeInit(); // 初始化

- private static native void nativeResize(int w, int h);

- private static native void nativeRender(); // 绘制1帧

- private static native void nativeDone();

其次分析C++代码 app-android.c

- 首先,调用了importGLInit(),动态导入OpenGL的库。

- 其次,调用了 appInit(),在内存中建立了平台无关的3D对象集合。建立方法是用一个数组,用类似画圆拔高的方式产生诸多三角形。

- 然后,在每个时钟周期中调用appRender(),细节是:

- prepareFrame(width, height); // 准备OpenGL ES绘制框架。其实就是清空颜色和深度缓冲,重置投影和模型矩阵。

- camTrack(); // 算好在当前时钟周期,镜头的位置、朝向及焦距等。然后调用gluLookAt来实现。

- configureLightAndMaterial(); // 设置光源和材质

- drawModels(-1); // 先绘制倒影(其实就是将所有模型z轴倒过来画)

- 第一个循环,是画精致的物体

- 第二个循环,是画运动的物体

- drawGroundPlane(); // 再绘制镜子一般的地面。在绘制前取消光照,打开混合,然后绘制。绘制后还原状态。

- drawModels(1); // 再绘制所有模型

- drawFadeQuad(); // 最后绘制淡出框,用融合的方式画一个遮住整个视口的2D框,融合系数和时间相关。

王者荣耀是OpenGL ES2.0应用吗?

不是。

OpenGLES是KhronosGroup在2007年3月份制定的一种业界标准应用程序编程接口,可以大大提高不同消费电子设备的3D图形渲染速度,在嵌入式系统上实现了全面可编程的3D图形。

OpenGLES是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。

OpenGLES是从OpenGL裁剪的定制而来的,去除了glBeginglEnd,四边形、多边形等复杂图元等许多非绝对必要的特性。

如何查看android系统的openGL版本

现在中高端的机型 一定支持 gles 1.0 和 2.0 ,支持3.0的不多

像nexus ,三星note等几种是支持3.0的.

要查看是否支持3.0 ,需要用到egl的查询语句,来查询本机支持的glcontext 类型.

下载devcheck

在Android OpenGLES2.0(十四)——Obj格式3D模型加载中实现了Obj格式的3D模型的加载,加载的是一个没有贴图,没有光照处理的帽子,为了呈现出立体效果,“手动”加了光照,拥有贴图的纹理及光照又该怎么加载呢?

本篇博客例子中加载的是一个卡通形象皮卡丘,资源是在网上随便找的一个。加载出来如图所示:

obj内容格式如下:

mtl文件内容格式如下:

关于Obj的内容格式,在上篇博客中已经做了总结,本篇博客中使用的obj,可以看到f后面的不再跟的是4个数字,而是 f 2/58/58 3/59/59 17/60/60 这种样子的三组数,每一组都表示为顶点坐标索引/贴图坐标点索引/顶点法线索引,三个顶点组成一个三角形。而头部的 mtllib pikachu.mtl 则指明使用的材质库。

而mtl格式文件中,主要数据类型为:

模型加载和之前的模型加载大同小异,不同的是,这次我们需要将模型的贴图坐标、顶点法线也一起加载,并传入到shader中。其他参数,有的自然也要取到。

模型加载以obj文件为入口,解析obj文件,从中获取到mtl文件相对路径,然后解析mtl文件。将材质库拆分为诸多的单一材质。obj对象的 加载,根据具使用材质不同来分解为多个3D模型。具体加载过程如下:

顶点着色器

片元着色器

完成了以上准备工作,就可以调用 readMultiObj 方法,将obj文件读成一个或多个带有各项参数的3D模型类,然后将每一个3D模型的参数传入shader中,进而进行渲染:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息