`
lishubing1126
  • 浏览: 8452 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

一起学opengl android

 
阅读更多

一直只是在网上看贴,没有写过,在后续的写代码时发现好多东西其实以前做过,后来弄其他的东西后,回过头来又不会了。

所以现在开始到网上记录自己的学习路径,一来可以和许多人一起研究,又可以把做的一些小东西保存起来,也方便后来去看...,如果有错误希望有看到的人能指出...


1.opengl中的点线面

在android中其实写opengl很简单的,一个activity,一个GLSurfaceView类,一个Renderer类,就可以实现一个简单的opengl demo了,当然,你要写一些复杂的游戏,那就不是这么简单的了


首先我们create一个activity


这个是我的activity,在这里可以看到,我仍然是用的2d中常用的layout的方式来加载L01PointLinesFace-3dview的,这个不是关键,怎么写随你爱好。这个只是将view放到activity里面显示,主要实现就是L01PointLinesFace类,这个类我让器继承于GLSurfaceView并实现了Renderer接口,这样就要实现Renderer中的三个函数onSurfaceChanged,onDrawFrame,onSurfaceCreated,从名字就可以看出这些是干嘛的了,和surfaceview中如出一辙,只是有个onDrawFrame用于绘制实际要显示的东东



openg里面也解释的很清楚,怎么设置投影,怎么设置相机的位置,这里我没有设置,而是用的平移模型矩阵,都差不多。上面那么多其实都只是在走过场,就像你睡觉习惯性的脱衣服一样很平常,当然你脱了也不一定是去睡觉的,做别的事就看你个人爱好了。这个就体现在mTriangle这个类了,这个类里,我只是画了个三角形,线,点,复杂化的就看你自己的表现了。




上面我定义了7个顶点,并赋予了7种颜色



而真正的绘制就在这里了,先启用顶点和颜色数组,,然后设置顶点和颜色,设置线宽等,然后启用glDrawElements绘制。

效果如


怎么上传工程...


源码下载地址http://download.csdn.net/detail/lishubing1126/3731884

分享到:
评论

相关推荐

    android OPenGL基础范例一

    OpenGL是计算机图形学中的一个重要库,它为程序员提供了一个接口,可以用来绘制2D和3D图形。在Android平台上,OpenGL ES(OpenGL for Embedded Systems)是其对应的版本,专为移动设备和嵌入式系统设计,它在Android...

    android opengl 开发的小游戏

    本项目"android opengl 开发的小游戏"就是一个基于OpenGL ES开发的赛车游戏,名为"Countryside Racing",让我们来深入探讨一下这个项目可能涉及的关键技术和知识点。 1. **OpenGL ES基础**: - **顶点坐标系统**:...

    Pro OpenGL ES for Android

    本书由多个章节组成,每个章节都深入探讨了OpenGL ES在Android平台上的应用及其相关的数学和图形学概念。 - **第1章:计算机图形学:从过去到现在** 这一章节回顾了计算机图形学的发展历程,从早期的简单图形渲染...

    openGL时间水印录制

    OpenGL时间水印录制技术主要涉及计算机图形学、视频处理和Android开发等领域,是将时间信息以水印形式嵌入到OpenGL渲染的图像帧中,并最终整合到MP4视频文件的过程。这一技术在视频监控、直播、游戏录制等多个场景中...

    OpenGLES demo - 5. 深度测试

    在Android平台上,OpenGL ES(Open Graphics Library for Embedded Systems)是一种广泛使用的图形库,用于在移动设备上绘制2D和3D图像。深度测试是OpenGL ES渲染过程中一个关键的特性,它确保了图形元素按照正确的...

    OpenGL ES 3D 坐标变换

    OpenGL ES 是一种针对嵌入式设备的图形处理标准,尤其在Android平台上被广泛使用。它是一种轻量级的版本,适合资源有限的移动设备。3D坐标变换是OpenGL ES编程中的核心概念,它涉及到物体在三维空间中的位置、旋转和...

    Android OpenGL 3D 立方体多纹理贴图源码.rar

    OpenGL是计算机图形学中的一种广泛应用的接口,它允许程序员直接与显卡进行通信,创建复杂的3D场景。在Android平台上,OpenGL ES(Embedded Systems的缩写)被用来开发图形密集型应用,比如游戏或者可视化工具。这个...

    opengl开发的的一个桌球游戏,教你opengl的纹理等应用

    在绘制球拍模型时,将纹理坐标与顶点坐标一起传递,然后在片段着色器中进行纹理采样。 3. 网球纹理:网球表面的纹理也很重要,可以是皮革或者织物的质感。同样地,将网球的纹理映射到其3D模型上,增加真实感。 4. ...

    OpenGL ES 2.0

    在Android游戏开发中,OpenGL ES 2.0通常与EGL(Embedded GL)一起使用,以管理上下文和表面,以及处理多窗口和多配置的图形渲染。同时,Android SDK提供了一个名为`GLSurfaceView`的组件,它简化了在Android应用中...

    OpenGL ES基于安卓开发的地月星系(Android源码)

    颜色混合允许我们将多个图元组合在一起,创造出各种动态效果。光照模型则是模拟真实世界中的光线交互,使3D物体看起来更加立体。例如,GLSL着色语言可以用来编写自定义的着色器,实现各种复杂的光照效果。深度测试则...

    AndroidOpenGL-3D-立方体多纹理贴图源码.zip

    OpenGL是计算机图形学中的一种广泛应用的接口,尤其在Android平台上,它被用于创建复杂的2D和3D图形。本项目“AndroidOpenGL-3D-立方体多纹理贴图源码”是一个示例,展示了如何在Android设备上使用OpenGL ES进行3D...

    使用 C++ 和 OpenGL ES 2 为 Android、iOS 和 Web 开发一个简单的空气曲棍球游戏_C语言_代码

    对于Android平台,项目可能使用了NDK(Native Development Kit),它允许开发者用原生语言(如C++)编写应用程序的一部分,然后与Java代码一起编译和运行。NDK有助于提高性能,特别是对于图形密集型应用。 在iOS...

    OpenGL ES 3.0

     在最后一章中,我们抛开API的细节,讨论如何为iOS 7、Android 4.3 NDK、Android 4.3 SDK、Windows和Linux构建OpenGL ES样板代码。该章的意图是作为一个指南,帮助你在所选择的OpenGL ES 3.0平台上建立和运行样板...

    opengles吹气膨胀特效

    例如,当顶点膨胀时,相应的纹理坐标也相应地拉伸,使得贴图看起来像是随着物体一起膨胀。 4. **法线处理**:膨胀物体的表面法线也需要调整,以反映形状变化,确保光照效果正确。这可以通过计算新位置的法线并更新...

    android图形系统编程学习

    Android图形系统编程主要涉及到的是如何在...Android图形系统编程不仅涉及到OpenGL ES的知识,还需要了解Android应用程序的生命周期、视图系统和多线程等基础知识,才能将图形与应用的其他部分有效地结合在一起。

    (android 源码)拍苍蝇

    【描述】"这是一款经典的android和游戏源码,供大家一起学习"意味着,这款“拍苍蝇”游戏不仅具备了娱乐性,还兼具教学价值。开发者可以借此机会了解游戏的逻辑结构、用户交互、图形渲染、音频处理以及性能优化等多...

    ARNavigation:利用OpenGL ES、手机传感器、相机和调用百度语音包服务,实现AR+语音播报导航功能(导航功能为模拟,Android)

    6. **开发流程**:从项目源代码中,开发者可以了解到整个开发过程,包括设置环境、集成百度语音服务API、处理传感器数据、实现OpenGL ES渲染、以及将所有组件整合到一起。 通过ARNavigation项目,开发者不仅可以...

    OpenGL ES 3D 添加颜色

    OpenGL ES 是一种针对嵌入式设备的图形处理标准,它主要应用于移动设备,如智能手机和平板电脑。OpenGL ES 3D 添加颜色...总之,OpenGL ES 3D编程涉及多个层次的知识,包括图形学理论、GPU编程和Android系统API的使用。

    AndroidOpenGLDemo-master:OpenGL 3D开发原始程序圆顶

    说明这是一个Android OpenGLES2.0从零开始的Demo程序,仅做个人学习OpenGLES的记录,并提供给后来初学者参考。若有相关问题,也非常乐意与大家一起讨论共同进步。关于Android OpenGLES2.0学习的博客,也相当于这个...

Global site tag (gtag.js) - Google Analytics