急性胃肠炎用什么抗生素| 土字生肖有钱收是什么生肖| 什么药能治阳痿早泄| cpi是什么意思啊| rna检测是什么意思| 汕头市花是什么花| 多喝水有什么好处坏处| 洋葱不能和什么食物一起吃| 175是什么尺码| 小孩尿不出来尿是什么原因| 丙氨酸氨基转移酶是查什么的| 和解少阳是什么意思| 耳聋吃什么药| 耳朵后面长痘痘是什么原因| 早泄什么症状| 登高是什么意思| cashmere是什么意思| 伪娘是什么| 肚脐眼上面痛是什么原因引起的| 磨牙齿有什么方法可以治| 月经病是什么意思啊| 手汗症是什么原因| 猫不能吃什么东西| 鼻干眼干口干属于什么症状| 是什么元素| 冰箱什么牌子好又省电质量又好| 花圃是什么意思| 怀孕40天有什么症状| 梦见很多蛇是什么意思| 经常放屁吃什么药好| 得宝松是什么药| 峰值是什么意思| 米粉和米线有什么区别| 男生为什么会勃起| 全脂牛奶和脱脂牛奶有什么区别| 卖酒需要办理什么证| 无限极是干什么的| 什么时候做人流才是最佳时间| 晚上经常做梦是什么原因| mil是什么单位| 喝酒头晕是什么原因| 脸上长斑是什么原因引起的| henry是什么意思| 胸前有痣代表什么意思| 舌头有麻木感什么原因| 异位性皮炎是什么意思| 发烧反反复复是什么原因| 冠脉cta是什么检查| 地球上什么东西每天要走的距离最远| 清热燥湿是什么意思| 痛风用什么消炎药最好| 父亲节什么时候| 3月6号是什么星座| 为什么要小心AB型血的人| 爽肤水是什么| 热闹非凡是什么意思| 尿道炎吃什么药比较好的快| 便溏吃什么药| 紫五行属什么| 菊花什么季节开| 崩漏带下是什么症状| 经常干呕是什么原因| 社恐到底在害怕什么| 梦见下大雨是什么征兆| 阴虚吃什么食物补得快| 疑似是什么意思| 三个为什么| 老年人脚肿是什么原因引起的| 姜什么时候种植最好| 口腔起血泡是什么原因| 红面是什么面| 腹痛挂什么科| 五行缺什么查询免费| 过生日吃什么菜寓意好| 安欣是什么电视剧| 郫县豆瓣酱能做什么菜| 泡沫尿挂什么科| 三伏贴能治什么病| 什么是质子| 什么品种的芒果最好吃| hc是胎儿的什么| 喷砂是什么意思| 心代表什么生肖| 腿发热是什么原因引起的| 电动车电池什么牌子好| 狗狗身上有皮肤病用什么药| 怀孕第一个月吃什么对胎儿好| 三亚免税店什么最便宜| 多多益善的意思是什么| 金字旁有什么字| 前列腺增大有什么危害| 感染幽门螺旋杆菌吃什么药| 三国是什么朝代| 面部痉挛吃什么药| 眼睛酸疼是什么原因| 大浪淘沙下一句是什么| 25岁属什么| 处方药是什么标志| rash什么意思| 不什么而同| 秋天开什么花| 新疆古代叫什么| 丹参泡水喝有什么功效| 槟榔为什么那么贵| 喉咙疼痛吃什么药效果最好| 科技布是什么材质| 浪琴表属于什么档次| 看腰挂什么科| a股是什么意思| 白醋洗脸有什么效果| 突然高血压是什么原因引起的| 来月经量少吃什么可以增加月经量| 嗳气打嗝吃什么药| 减肥期间吃什么好| 脾胃不和吃什么药| 云南有什么名酒| 男性生殖长水泡是什么原因| 总是拉肚子是什么原因| 艳阳高照是什么生肖| 镶牙与种牙有什么区别| 儿童包皮手术挂什么科| 什么好| 农历六月十七是什么日子| aba是什么意思| 溢于言表什么意思| 眼睛干涩是什么原因| bliss是什么意思| 为什么乳头会疼| 什么事情只能用一只手去做| 什么原因不来月经| bcm是什么意思| 才华横溢是什么生肖| 什么花在什么时间开| 晚上难以入睡是什么原因| 白色念珠菌是什么病| 1978年五行属什么| 叹服是什么意思| 五台山是求什么的| 什么是职业病| 社保指的是什么| 鬼火是什么意思| 世界上最大的哺乳动物是什么| 涩是什么意思| 打新股需要什么条件| 超声是什么检查| 为什么晕车| pisen是什么牌子| 麻豆是什么意思| 小产吃什么好恢复营养| 想改名字需要什么手续| 想吐头晕是什么原因| 滑档是什么意思| 难以启齿是什么意思| 口干是什么原因引起的怎么治疗| 阅后即焚什么意思| 脑电图轻度异常什么病| 2002年属什么| 双字五行属什么| 咳嗽能吃什么| 一什么而入| 卡介苗是预防什么的| 主张是什么意思| 天方夜谭是什么生肖| 综合体是什么意思| 林黛玉是个什么样的人| 脂溢性脱发用什么洗发水好| 路痴是什么意思| 抓兔子的狗叫什么名字| 什么私语| 嗓子干疼吃什么药| 宫颈息肉不切除有什么危害| 三点水加个有字念什么| 江西景德镇有什么好玩的地方| 白天为什么能看到月亮| 间质瘤是什么性质的瘤| 轻断食是什么意思| 下发是什么意思| 醋泡脚有什么好处和坏处| 受害者是什么意思| 11月份什么星座| 矢的意思是什么| 什么东西补肾最好| 芒果过敏吃什么药| 骨癌的前兆是什么症状| 梦见自己被警察抓了是什么意思| 6.21什么星座| s是什么车| 白带正常是什么颜色| 免疫力低吃什么| 甲状腺结节低回声什么意思| 怀孕了吃什么药可以打掉| 杨家将是什么生肖| 宫颈口出血是什么原因| 麻古是什么| 指甲凹陷是什么原因引起的| 九品芝麻官是什么级别| 雾化是什么意思| 痛风吃什么最好| 搞破鞋什么意思| 皮秒是什么| 什么叫做洗钱| 猫喜欢什么样的人| 贵州有什么好玩的| 梦见杀鸡是什么意思| 十指纤纤尽夸巧是什么生肖| 什么都不放的冬瓜清汤| 戒腊什么意思| 因地制宜是什么意思| 生理期可以吃什么水果| 狡兔三窟什么意思| 尿特别黄是什么原因| 孩子高烧不退是什么原因| 卵巢囊肿吃什么药| 肝斑一般在脸上的什么地方| 什么满天下| 雷锋属什么生肖| 紧急避孕药什么时候吃最好| 小孩睡觉磨牙齿是什么原因| 创意是什么意思| 菩提树长什么样| 葛根粉有什么功效和作用| 守望先锋是什么类型的游戏| 豆浆机什么牌子好| 驻马店以前叫什么名字| 低度鳞状上皮内病变是什么意思| 五指毛桃长什么样子| 三餐两点什么意思| 不成敬意是什么意思| 1992年五行属什么| 今年72岁属什么生肖| 胆毒是什么原因引起的| 阑尾炎应该挂什么科| 兆后面是什么单位| 湖北有什么山| 西瓜跟什么不能一起吃| 海马有什么功效作用| 尿液可以检查出什么| 十月十日什么星座| 孕囊小是什么原因| 壬寅年五行属什么| 中老年人吃什么油好| 超声诊断科是做什么的| 西夏是现在的什么地方| 准生证有什么用| 什么枝什么叶| foryou是什么意思| 小孩便秘吃什么食物好| 吃什么水果对眼睛好| 儿童包皮挂什么科| 舌苔发黑是什么病| 嘴子是什么意思| 高血压能喝什么饮料| 白天不懂夜的黑什么意思| 什么的遐想| 认干妈有什么讲究| 来龙去脉指什么生肖| c14阳性是什么意思| 舌头上有白苔是什么原因| 0和1什么意思| 什么于怀| 浓度是什么意思| 球蛋白是什么意思| 吃什么东西越吃越饿| 吃什么可以解决便秘| 百度

新疆电信与新疆友好联手开展《朗读的力量》公

本文详细介绍了Android中使用OpenGL ES的基础知识,包括OpenGL ES的概念、GlSurfaceView的作用及其使用,以及如何创建和渲染图形。通过一个简单的三角形绘制实例,解释了OpenGl的视图设置、投影、相机视图、矩阵变换和颜色修改等关键步骤,适合初学者入门。
百度 一般认为,急性胰腺炎的症状包括腹痛,位于上腹部,常向背部放射,多为急性发作,呈持续性;腹胀,常伴恶心、呕吐;发热、寒战、黄疸等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习五部曲,弄清楚5个W一个H(when(什么时候使用)、where(在哪个地方使用?)、who(对谁使用)、what(是个什么东西)、why(为什么要这么用?).一个H即:how(到底该怎么用?)),基本的概念篇主要围绕这几个方面进行分析

1. What? openGl是什么?openGl ES又是什么?

相信很多人从事开发的都或多或少听到过有关OpenGl这个东西,但是平时用的少,只知道有这么个东西,而且学起来不简单,所以大多数人都不能讲出个个所以然来。

官方对OpenGl的描述为:

OpenGL(Open Graphics Library开发图形接口)是一个跨平台的图形API,用于指定3D图形处理硬件中的标准软件接口。

OpenGl的前身是SGI公司为其图形工作站开发的IRIS GL,后来因为IRIS GL的移植性不好,所以在其基础上,开发出了OpenGl。OpenGl一般用于在图形工作站,PC端使用,由于性能各方面原因,在移动端使用OpenGl基本带不动。为此,Khronos公司就为OpenGl提供了一个子集,OpenGl ES(OpenGl for Embedded System)

什么是OpenGl ES呢?

OpenGl ES是免费的跨平台的功能完善的2D/3D图形库接口的API,是OpenGL的一个子集。

移动端使用到的基本上都是OpenGl ES,当然Android开发下还专门为OpenGl提供了android.opengl包,并且提供了GlSurfaceView,GLU,GlUtils等工具类。

2. How? Android中的openGL 如何使用?

在了解OpenGl的使用之前,我们需要了解两个基本类别的Android框架:GlSurfaceView和GlSurfaceView.Renderer

3. GlSurfaceView是什么? GLSurfaceView的作用是什么? GLSurfaceView如何使用?

GlSurfaceView从名字就可以看出,它是一个SurfaceView,看源码可知,GlSurfaceView继承自SurfaceView。并增加了Renderer.它的作用就是专门为OpenGl显示渲染使用的。

GLSurfaceView的使用方法:
可以通过创建的实例使用这个类,并增加你的Renderer.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        GLSurfaceView glSurfaceView = new GLSurfaceView(this);
        glSurfaceView.setRenderer(new GLSurfaceView.Renderer() {
            @Override
            public void onSurfaceCreated(GL10 gl, EGLConfig config) {

            }

            @Override
            public void onSurfaceChanged(GL10 gl, int width, int height) {

            }

            @Override
            public void onDrawFrame(GL10 gl) {

            }
        });
        setContentView(glSurfaceView);
    }

4. GlSurfaceView.Renderer是什么?GLSurfaceView.Renderer的作用?GLSurfaceView.Renderer的用法?

该接口定义了用于绘制在图形所需的方法GLSurfaceView。你必须提供这个接口作为一个单独的类的实现,并将其连接到您的GLSurfaceView使用实例 GLSurfaceView.setRenderer()。如上面的代码所示。作用就是提供各种渲染方法,OpenGl的渲染操作均在此接口中实习。下面说下实现该接口的方法含义:

  • onSurfaceCreated():系统调用这个方法一次创建时GLSurfaceView。使用此方法来执行只需要发生一次的操作,比如设置OpenGL的环境参数或初始化的OpenGL图形对象。
  • onDrawFrame():系统调用上的每个重绘此方法GLSurfaceView。使用此方法作为主要执行点用于绘制(和重新绘制)的图形对象。
  • 系统调用此方法时的GLSurfaceView几何形状的变化,包括尺寸变化GLSurfaceView或设备屏幕的取向。例如,当设备从纵向变为横向的系统调用这个方法。使用此方法可以在变化做出反应GLSurfaceView容器。

介绍完了GlSurfaceView和GlSurfaceView.renderer之后,接下来说下如何使用GlSurfaceView;
1. 创建一个GlSurfaceView
2. 为这个GlSurfaceView设置渲染
3. 在GlSurfaceView.renderer中绘制处理显示数据

5. OpenGl的简单使用实例(绘制一个三角形)

  1. 在使用OpenGl之前,需要在AndroidManifest.xml中设置OpenGl的版本:这里我们使用的是OpenGl ES 2.0,所以需要添加如下说明:
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
  1. 使用GLSufaceView(上面有介绍)
  2. 具体在GlSurfaceView.Renderer中的绘制步骤:
    • 设置视图展示窗口(viewport) :在onSurfaceChanged中调用GLES20.glViewport(0, 0, width, height);
    • 创建图形类,确定好顶点位置和图形颜色,将顶点和颜色数据转换为OpenGl使用的数据格式
    • 加载顶点找色器和片段着色器用来修改图形的颜色,纹理,坐标等属性
    • 创建投影和相机视图来显示视图的显示状态,并将投影和相机视图的转换传递给着色器。
    • 创建项目(Program),连接顶点着色器片段着色器。
    • 将坐标数据传入到OpenGl ES程序中:
使用OpenGl修改背景颜色

创建一个GlSurfaceView,并为其设置渲染OneGlRenderer;

public class OneGlSurfaceView extends GLSurfaceView {
   
   
    private final OneGlRenderer mRenderer;
    public OneGlSurfaceView(Context context) {
        super(context);
        // Create an OpenGL ES 2.0 context
        setEGLContextClientVersion(2);

        mRenderer = new OneGlRenderer();

        // Set the Renderer for drawing on the GLSurfaceView
        setRenderer(mRenderer);
    }
}

实现渲染接口

public class OneGlRenderer implements GLSurfaceView.Renderer {
   
   
    public void onSurfaceCreated(GL10 unused, EGLConfig config) {
        // Set the background frame color
        GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    }

    public void onDrawFrame(GL10 unused) {
        // Redraw background color
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    }

    public void onSurfaceChanged(GL10 unused, int width, int height) {
        GLES20.glViewport(0, 0, width, height);
    }
}

展示渲染后的GlSurfaceView

public class OneOpenGlActivity extends AppCompatActivity {
   
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        OneGlSurfaceView glSurfaceView = new OneGlSurfaceView(this);
        setContentView(glSurfaceView);
    }
}

效果如下:就是简单给GlSurfaceView渲染一层黑色。

这里写图片描述

使用OpenGl绘制几何图形

一:图形创建

创建一个几何图形(这里主要列举三角形和正方形),需要注意一点,我们设置图形的顶点坐标后,需要将顶点坐标转为ByteBuffer,这样OpenGl才能进行图形处理。

三角形图形创建:

public class Triangle {

    private F
本书共分两篇,第篇介绍了Android 3D游戏开发的基础知识,主要对OpenGL ES的相关内容进行了介绍。   章 名主 要 内 容   第1章 英雄还看今朝—Android简介本章介绍了市场上主流的手机平台,同时也分析了未来手机平台的发展趋势及Android平台的前景   第2章 数风流人物—当前流行游戏类型简介本章以分类的方式简要地介绍了当前流行的游戏的玩法,游戏的视觉效果,游戏的设计及《仙剑》等著名游戏的历史   第3章 不积跬步,无以至千里—游戏开发基础知识本章初步介绍了游戏开发的基础知识   第4章 千里之行,始于足下—3D开发基础知识本章介绍了3D开发中的基础知识,包括OpenGL ES的介绍及OpenGL ES中绘制模型的原理,并通过点、线和三角形的绘制介绍了OpenGL ES中模型的几种绘制方式。最后介绍了3D场景中常用的两种投影方式,并通过例子比较了这两种投影的区别   第5章 愿君多采撷,此物最相思—光照效果的开发本章介绍了光照的基础知识,包括环境光、散射光及镜面光   第6章 为伊消得人憔悴——纹理映射本章主要介绍了纹理的基础知识,以及纹理的不同拉伸方式和纹理过滤高级技术,从绘制三角形开始到绘制地月系,可能会经历很长时间,但是这对以后的学习是有帮助的   第7章 海阔凭鱼跃,天高任鸟飞—3D基本形状的构建在本章中介绍了圆柱体、圆锥体、圆环、抛物面、双曲面和螺旋面在OpenGL ES中的渲染方法。这些基本形状在3D世界中应用广泛,在构造些复杂物体时,经常会运用这些基本形状来进行拼装组合   第8章 执子之手,与子偕老—坐标变换本章介绍了坐标变换的应用。绘制3D场景的过程,主要是旋转和平移操作的组合,通过合理的堆栈操作,就比较容易绘制出所需的3D场景   第9章 孤帆远影碧空尽—摄像机与雾特效在本章中,首先对摄像机及其配置做了介绍。摄像机在3D编程中至关重要,没有正确的配置,摄像机可能不能获得想要的场景效果。然后对雾特效做了具体介绍,应用雾特效可以使场景更加逼真,并且可以减少场景渲染量来提高性能   第10章 假作真时真亦假—混合本章主要为读者介绍了混合,从混合的背景知识到如何配置源因子和目标因子。在介绍源因子和目标因子的时候,向读者介绍了些预定义常量和些常用的组合方式,以及如何启用混合   第11章 蓦然回首,那人却在灯火阑珊处—3D高级技术本章主要为读者介绍了3D的部分高级技术。每项技术通过讲解其原理和案例,使读者对3D高级技术有定的了解   第12章 心有灵犀点通—传感器在本章中,向读者介绍了Android中传感器的相关知识。包括传感器的种类、配置,并且着重介绍了姿态传感器的应用   第13章 千锤万凿出深山—游戏中的数学与物理在本章中对3D游戏中可能会用到的数学及物理知识进行了简单的介绍,这在3D游戏开发中是相当重要的。游戏中的核心算法,基本上都要用到数学和物理知识。款游戏的性能很大程度上取决于游戏设计的算法   第14章 山舞银蛇,原驰蜡象—AI基本理念本章主要介绍了AI、AI引擎的基本组成与设计,以及游戏AI中图的搜索和模糊逻辑,其中游戏AI中图的搜索为本章的重点。在本章中详细介绍了5种算法的原理与实现   第15章 独上高楼,望尽天涯路—开发小秘籍本章介绍了地图设计器、多键技术、虚拟键盘、查找表技术、状态机、AABB边界框、穿透效应、拾取技术,以及天空盒和天空穹在OpenGL ES中的应用 第二篇以7个比较大的案例来说明Android平台下3D游戏的开发流程,通过这7个案例的讲解,读者对3D游戏的开发将会有更深层次的理解。   章 名主 要 内 容   第16章 体育类游戏——《疯狂投篮》本章介绍了Android 3D游戏《疯狂投篮》的开发。通过该案例向读者介绍了在Android平台下进行3D游戏开发的相关知识和基本流程,并对游戏开发中的编程技巧进行了介绍,并主要介绍了篮球与地面、墙面及篮框的碰撞检测及运动动画的实现方法   第17章 益智类游戏——《旋转积木》本章介绍了Android 3D游戏《旋转积木》的开发。主要介绍了积木旋转的不同状态的实现方法和地图设计器的应用   第18章 休闲类游戏——《摩天大楼》本章介绍了Android 3D游戏《摩天大楼》的开发。主要介绍了楼层与楼层之间的衔接与碰撞及掉落后翻转动画的实现   第19章 动作类游戏——《3D空战》本章介绍了Android 3D游戏《3D空战》的开发。主要介绍了飞机的构造方法和我方战机与敌方战机的操控及动画实现   第20章 桌面类游戏——《激情台球》本章介绍了Android 3D游戏《激情台球》的开发。主要介绍了台球与台球的碰撞检测实现、台球与球桌的碰撞检测实现和进球的判定实现   第21章 射击类游戏——《抢滩登陆》本章介绍了Android 3D游戏《抢滩登陆》的开发。主要运用了灰度图生成技术并且主要介绍了坦克运动的实现方法及炮弹碰撞检测的实现   第22章 竞技类游戏——《乡村飙车》本章介绍了Android 3D游戏《乡村飙车》的开发。主要介绍了运用分层绘制和拼接绘制的策略进行场景的优化绘制,并且对场景部件进行了分类控制   本书面向的读者   本书的内容详细,且几乎涵盖了Android 3D游戏开发所有相关的技术,并向读者介绍了真实项目的开发流程,主要面向以下读者。   Android的初学者   本书详细介绍了OpenGL ES的基础知识,并对Android 3D游戏程序的开发进行了介绍。作为Android的初学者,通过本书的学习可以快速全面地掌握Android 3D游戏开发的相关知识,稳健地步入Android 3D游戏开发人员的行列。   有Android基础且希望学习Android 3D游戏开发的读者   有Android基础的读者通过阅读本书的前半部分便可快速掌握OpenGL ES的基础知识,然后通过7个真实案例的学习迅速掌握Android平台下应用程序的开发。   在职的开发人员
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
十指不沾阳春水是什么意思 鞠婧祎什么学历 为什么胸一碰就疼 潜规则是什么意思 囊性灶是什么意思
人流前需要检查什么项目 人参适合什么人吃 为什么会打呼噜 肚子咕咕叫是什么原因 辅助生殖是什么意思
不服是什么意思 两个土念什么字 气道高反应是什么意思 为什么无缘无故流鼻血 月经不调去医院要做什么检查
乐不思蜀什么意思 甲状腺是什么病严重吗 流产可以吃什么水果 胰腺是什么病 孕妇吃什么水果好
异常出汗是什么原因hcv9jop3ns9r.cn 右肺上叶为什么恶性多hcv8jop5ns5r.cn 0.5是什么意思hcv8jop6ns7r.cn 玉字是什么结构hcv8jop5ns0r.cn 归脾丸和健脾丸有什么区别hcv8jop5ns9r.cn
麸质是什么hcv9jop0ns6r.cn 阴阳两虚吃什么中成药hcv7jop9ns2r.cn plover是什么牌子hcv9jop2ns2r.cn 女生右手中指戴戒指什么意思hcv9jop0ns9r.cn 春风得意是什么生肖hcv9jop0ns5r.cn
炖鸡肉放什么调料hcv9jop2ns2r.cn 罗汉果泡水喝有什么作用hcv9jop4ns3r.cn 萝卜什么时候种hcv8jop3ns9r.cn 农历9月11日是什么星座travellingsim.com 长期喝苦荞茶有什么好处hcv8jop8ns0r.cn
一岁宝宝流鼻涕吃什么药hcv8jop4ns0r.cn 肾的作用和功能是什么hcv8jop4ns3r.cn 内分泌失调吃什么食物好bjhyzcsm.com 螃蟹吐泡泡是什么原因hcv8jop8ns6r.cn 建军节是什么时候inbungee.com
百度