网站首页 产经 > 正文
大家好,小豆豆来为大家解答以上的问题。Opengles3.1. Geometry shader这个很多人还不知道,现在让我们一起来看看吧!
1、OpenGLES是一个让人崩溃的东西。
2、在Andorid手机上做3D还就得用它。
3、把我记的一些笔记分享在这里吧:Android OpenGL ES简介 20011-6-3Android系统使用OpenGL的标准接口来支持3D图形功能,android 3D图形系统也分为java框架和本地代码两部分。
4、本地代码主要实现的OpenGL接口的库,在Java框架层,javax.microedition.khronos.opengles是java标准的OpenGL包,android.opengl包提供了OpenGL系统和Android GUI系统之间的联系。
5、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。
6、包括angeles、fillrate等14个测试代码,这些代码都可以通过终端进行本地调用测试(模拟器中使用adb shell)。
7、OpenGL ES 1.x固定管线操作,支持glVertexPointer()等函数,不支持GLSL。
8、头文件在ndk的GLES目录下,库文件是libGLESv1_CM.so。
9、OpenGL ES 2.x可编程管线操作,不兼容1.x,不支持固定管线操作,例如glVertexPointer()等函数。
10、支持GLSL(还必须用这个来编程)。
11、头文件在ndk的GLES2目录下,库文件是libGLESv2.so。
12、OpenGL ES学习 2011-6-30OpenGL定义了自己的数据类型。
13、应该坚持使用这些OpenGL的数据类型,从而保证可移植性和效率。
14、OpenGL ES 目前不支持64位数据类型。
15、OpenGL ES 只支持三边形。
16、OpenGL ES 只支持gl开头的函数,glu库都不支持。
17、OpenGL ES 从 OpenGL中删除的功能:1. glBegin/glEnd2. glArrayElement3. 显示列表4. 求值器5. 索引色模式6. 自定义裁剪平面7. glRect8. 图像处理(这个一般显卡也没有,FireGL/Quadro显卡有)9. 反馈缓冲10. 选择缓冲11. 累积缓冲12. 边界标志13. glPolygonMode14. GL_QUADS,GL_QUAD_STRIP,GL_POLYGON15. glPushAttrib,glPopAttrib,glPushClientAttrib,glPopClientAttrib16. TEXTURE_1D、TEXTURE_3D、TEXTURE_RECT、TEXTURE_CUBE_MAP17. GL_COMBINE18. 自动纹理坐标生成19. 纹理边界20. GL_CLAMP、GL_CLAMP_TO_BORDER21. 消失纹理代表22. 纹理LOD限定23. 纹理偏好限定24. 纹理自动压缩、解压缩25. glDrawPixels,glPixelTransfer,glPixelZoom26. glReadBuffer,glDrawBuffer,glCopyPixelsOpenGL ES 2.0 2011-10-92.0和1.1不兼容。
18、- 2.0使用的头文件是ndk的include目录下的GLES2目录,有gl2.h,gl2ext.h,gl2platform.h,而1.1使用的是GLES目录。
19、- 2.0使用的库文件是ndk的lib目录下的libGLESv2.so,而1.1使用的是libGLESv1_CM.so。
20、- 2.0中取消了很多1.1函数,例如glMatrixModel和glLoadIdentity等。
21、OpenGL着色语言(GLSL――OpenGL Shading Language)- 使用2.0,必须学此语言。
22、因为很多1.1的函数都被取消了。
23、san-angeles NDK OpenGL ES 1.1的例子程序 2012-3-8San Angeles,查维基百科,是一个虚构的未来概念城市,位于南加州。
24、常在电影中出现,来源自Los Angeles和San Diego.该程序的演示效果是,观察一个宏伟的城市,地面是镜面有建筑倒影,城市中有飞船飞过。
25、前后有5、6个观察点,而且镜头在每个观察点不停的移动。
26、这个例子,用NDK(C++)调用OpenGL ES 1.1来绘制了San Angeles这个城市。
27、基本上全部使用了NDK,Java程序只有1个。
28、用vc2005演示一下,目的通过跟踪代码了解一些细节。
29、方法是:- 将jni下所有的.h文件,以及demo.c,app-win32.c复制出来,放在一个专门的目录下,然后改造成用OpenGL的而不是ES的。
30、(或者干脆删除大段的绘制代码,保证编译通过)首先分析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的库。
31、- 其次,调用了 appInit(),在内存中建立了平台无关的3D对象集合。
32、建立方法是用一个数组,用类似画圆拔高的方式产生诸多三角形。
33、- 然后,在每个时钟周期中调用appRender(),细节是:- prepareFrame(width, height); // 准备OpenGL ES绘制框架。
34、其实就是清空颜色和深度缓冲,重置投影和模型矩阵。
35、- camTrack(); // 算好在当前时钟周期,镜头的位置、朝向及焦距等。
36、然后调用gluLookAt来实现。
37、- configureLightAndMaterial(); // 设置光源和材质- drawModels(-1); // 先绘制倒影(其实就是将所有模型z轴倒过来画)- 第一个循环,是画精致的物体- 第二个循环,是画运动的物体- drawGroundPlane(); // 再绘制镜子一般的地面。
38、在绘制前取消光照,打开混合,然后绘制。
39、绘制后还原状态。
40、- drawModels(1); // 再绘制所有模型- drawFadeQuad(); // 最后绘制淡出框,用融合的方式画一个遮住整个视口的2D框,融合系数和时间相关。
41、你说没用,肯定是不可能没用的,但是有更强壮的代替品,如游戏开发引擎unity3d和cocos等,都是个跨平台的开发工具。
42、所以学opengles到底最后往哪个方向发展呢?强壮的游戏引擎开发???我看很多人都没有这个能力。
本文到此分享完毕,希望对大家有所帮助。
版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
猜你喜欢:
- 2022-09-23 意识形态名词解释政治学原理(意识形态名词解释)
- 2022-09-29 我要活着回家歌曲(我要活着回家)
- 2022-12-30 行测数学秒杀实战方法(行测数学秒杀实战方法)
- 2022-11-08 别墅一家六口死亡案 新闻(三胞胎别墅杀人事件)
- 2022-12-07 武邑精英学校(精英学校)
- 2022-11-01 黄龙溪美食市集(黄龙溪美食)
- 2022-12-14 线切割铜线多粗(线切割铜线)
- 2022-09-30 电脑游戏下载(半岛游戏中心)
最新文章:
- 2023-03-07 电视剧冷枪演员表(电视剧冷枪)
- 2023-03-07 山林之王读后感500字(山林之王读后感)
- 2023-03-07 饭店坍塌事故处理结果(饭店坍塌致13人死亡)
- 2023-03-07 动漫游戏资源论坛(h5动漫资源论坛)
- 2023-03-07 缘尽情未了电视剧全集(缘尽情未了)
- 2023-03-07 光环地带动漫城搬去哪里了(光环地带)
- 2023-03-07 天津一汽威志轮胎型号是多少(天津一汽威驰)
- 2023-03-07 加索尔照顾科比老婆(科比妻女与加索尔夫妇一同出游)
- 热点推荐
- 热评文章