`
abc20899
  • 浏览: 929115 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android OpenGL es lession5

 
阅读更多
使用多边形和四边形创建3D物体,在这一课里,我们把三角形变为立体的金子塔形状,把四边形变为立方体。

先看看三角形的顶点变成啥了

private float[] mTriangleArray = {
           0.0f,1.0f,0.0f,
           -1.0f,-1.0f,1.0f,
           1.0f,-1.0f,1.0f,

           0.0f,1.0f,0.0f,
           1.0f,-1.0f,1.0f,
           1.0f,-1.0f,-1.0f,

           0.0f,1.0f,0.0f,
           1.0f,-1.0f,-1.0f,
           -1.0f,-1.0f,-1.0f,

           0.0f,1.0f,0.0f,
           -1.0f,-1.0f,-1.0f,
           -1.0f,-1.0f,1.0f
    };

    private FloatBuffer mTriangleBuffer;

一个四个面,每个面三个点,地面没画。
你们仔细看看每个面,都是按逆时针方向画的。当然,如果你没有增加Cull剔除代码(上节课最后提到),至于顺时针,逆时针都无所谓,都画。但是我们还是推荐使用按照方向来写的array。

三角形的颜色数组来了

private float[] mColorArray={
           1.0f,0.0f,0.0f,1.0f,
           0.0f,1.0f,0.0f,1.0f,
           0.0f,0.0f,1.0f,1.0f,

           1.0f,0.0f,0.0f,1.0f,
           0.0f,0.0f,1.0f,1.0f,
           0.0f,1.0f,0.0f,1.0f,

           1.0f,0.0f,0.0f,1.0f,
           0.0f,1.0f,0.0f,1.0f,
           0.0f,0.0f,1.0f,1.0f,

           1.0f,0.0f,0.0f,1.0f,
           0.0f,0.0f,1.0f,1.0f,
           0.0f,1.0f,0.0f,1.0f,    
    };

    private FloatBuffer mColorBuffer;

注意,同一个点是同一个颜色。

立方体的颜色数组来了
private float[] mQuadColorArray={
       0.0f,1.0f,0.0f,1.0f,
       0.0f,1.0f,0.0f,1.0f,
       0.0f,1.0f,0.0f,1.0f,
       0.0f,1.0f,0.0f,1.0f,

       1.0f,0.5f,0.0f,1.0f,
       1.0f,0.5f,0.0f,1.0f,
       1.0f,0.5f,0.0f,1.0f,
       1.0f,0.5f,0.0f,1.0f,

       1.0f,0.0f,0.0f,1.0f,
       1.0f,0.0f,0.0f,1.0f,
       1.0f,0.0f,0.0f,1.0f,
       1.0f,0.0f,0.0f,1.0f,

       1.0f,1.0f,0.0f,1.0f,
       1.0f,1.0f,0.0f,1.0f,
       1.0f,1.0f,0.0f,1.0f,
       1.0f,1.0f,0.0f,1.0f,

       0.0f,0.0f,1.0f,1.0f,
       0.0f,0.0f,1.0f,1.0f,
       0.0f,0.0f,1.0f,1.0f,
       0.0f,0.0f,1.0f,1.0f,

       1.0f,0.0f,1.0f,1.0f,
       1.0f,0.0f,1.0f,1.0f,
       1.0f,0.0f,1.0f,1.0f,
       1.0f,0.0f,1.0f,1.0f,  
    };

   

    private FloatBuffer mQuadColorBuffer;
不要晕,后面有了纹理就好了,不过这是基础,一定要掌握。
画图的代码来了

gl.glTranslatef(-1.5f, 0.0f, -6.0f);  
       gl.glRotatef(rtri, 0.0f, 1.0f, 0.0f);                 
//绕Y轴旋转   
//     gl.glColor4f(1f, 1f, 1f, 1f);   
       gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);  
       gl.glEnableClientState(GL10.GL_COLOR_ARRAY);  
        
       gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);  
        
       gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mTriangleBuffer);  
       gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 12);     //四棱锥有4个面,每个面3个点   
        
       gl.glLoadIdentity();  
       gl.glTranslatef(1.5f, 0.0f, -6.0f);  
       gl.glRotatef(rquad, 1.0f, 0.0f, 0.0f);  
   
       gl.glColorPointer(4, GL10.GL_FLOAT, 0, mQuadColorBuffer);  
       gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mQuadsBuffer);  
//依次画6个面   
       for (int i=0; i<6; i++){  
           gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, i*4, 4);           
       }  
       rtri+=0.2f;  
       rquad-=0.15f; 
分享到:
评论

相关推荐

    union2 Casptain Cook lession5-6 .docx

    union2 Casptain Cook lession5-6 .docx

    spring_lession5

    【压缩包子文件的文件名称列表】:spring_lession5 这个列表暗示了我们的学习资源可能包含了一系列Spring教程的第五部分。在这个部分,我们可以期待涵盖以下主题: 1. **依赖注入(Dependency Injection, DI)**:...

    Android教程视频 +源代码 9G

    Android面试.exe lession1_view.exe lession2_布局.exe lession2_线性布局.exe lession2_雨滴.exe lession3_按钮.exe lession3_图片.exe lession3_图片2.exe ...... lession15_手机端离线聊天.exe lession15_手机端...

    y_android_lession1:y_android_lession1

    小费计算器应用演示 这是小费计算器的第二个安卓应用程序。 花费时间:总共花费4小时 完成的用户故事: 用户显示指定输入金额的指定百分比的小费 用户输入交易总额 用户可以选择小费金额(即 10%、15%、20%) ...

    Lession03.sql

    Lession03.sql

    directx8_lession directx8_lession directx8_lession

    5. **设备状态** - 渲染设备的状态管理是Direct3D的重要部分,包括深度缓冲、模板缓冲、混合模式、裁剪平面等,这些都影响最终的渲染结果。 6. **DirectInput** - DirectInput用于直接与各种输入设备(如键盘、...

    Android代码-React-native-android 系列中文教材

    react-native-android-lession &gt; 老穆记录: react native andorid 关于iOS部分可以参考vczero的lession文章 &gt; React-Native 是Android端实现实现动态部署的另一种思路,绕过dexLoad【一些现有的Android插件框架...

    models-lession.zip

    models-lession.zip是一个压缩包,解压后包括目录slim,用于重新训练模型

    Lession3_4.java

    Lession3_4.java

    c++教学视频lession1

    "C++教学视频Lession1"旨在为初学者提供一个深入理解和掌握C++基础知识的平台。本教学视频系列从基础出发,通过直观且详细的讲解,帮助学习者构建扎实的C++编程基础。 在“Lession1”中,你将首先了解C++的历史背景...

    Lession2-week1.zip

    Lession2-week1.zip

    mooc_android_高仿qq登录界面设计与实现

    在本课程"mooc_android_高仿qq登录界面设计与实现"中,我们将深入探讨如何在Android平台上构建一个类似于QQ的登录界面。这个项目旨在帮助开发者掌握Android UI设计的基本技巧,特别是通过使用RelativeLayout和...

    lession1.zip

    标题 "lession1.zip" 提供的信息有限,但根据描述中的同样内容,我们可以推测这是一个教学材料或者编程课程的初级课件。这个压缩包包含了几个关键文件,这些文件名暗示了我们可能在处理一个关于C语言编程的基础教程...

    01.Origin概述_标清_LOT_origin_lession_

    【标题】"01.Origin概述_标清_LOT_origin_lession_" 涉及的知识点主要集中在"Origin"的概念上,这可能是指一个特定的IT产品或技术的起源、基础概念或者是某个学习课程的第一课。"LOT"可能是课程系列的缩写,暗示这是...

    Android视频播放器源码

    在Android平台上,开发一款视频播放器是一项常见的任务,它涉及到多媒体处理、网络通信以及用户界面设计等多个技术领域。本资源提供了“Android视频播放器”的源码,对于想要深入理解Android视频播放器开发的开发者...

    android水滴实现

    在`lession_2.view`中,可能包含了如何将自定义的水滴视图整合到Android布局中的示例。这可能涉及到`LinearLayout`、`RelativeLayout`、`ConstraintLayout`等布局管理器的使用,或者自定义的`ViewGroup`。 通过...

    02.Origin窗口结构与布局_标清_LOT_origin_lession_

    【标题】"02.Origin窗口结构与布局_标清_LOT_origin_lession_" 指的是一个关于Origin软件的教程视频,其中“标清”意味着视频质量为标准清晰度,适合在网络带宽有限的情况下观看。LOT可能代表Learning Objectives或...

    android简单单选框测试

    在Android开发中,单选框(Radio Button)是一种常见的用户界面元素,用于让用户在多个选项中选择一个。本文将深入探讨如何在...在lession_6的学习中,你可以深入实践这些知识,进一步提升对Android单选框的掌握。

    Lession1

    【标题】:“Lession1”通常意味着这是一系列教程或课程的第一部分,专注于某一特定主题。在这种情况下,由于没有提供具体细节,我们可以假设“Lession1”是关于TypeScript编程语言的基础教学。 【描述】:“自述...

    03.建立数据文件_标清_LOT_origin_lession_

    5. 数据组织:如何有效地组织数据,如行和列的结构,字段的定义,以及如何设置主键和外键来保持数据的完整性。 6. 安全与备份:学习如何保护数据文件免受意外丢失或损坏,以及定期备份的重要性。 7. "标清"可能指...

Global site tag (gtag.js) - Google Analytics