问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么使用 android opengl

发布网友 发布时间:2022-05-09 20:26

我来回答

1个回答

热心网友 时间:2023-10-17 20:34

准备为了开始本次的教程,你必须具备: 1.一款支持Android开发的IDE,如果你没有的话,可以在Android Developer website下载最新版本的Android studio。 2.一款运行Android4.0之上Android手机,并且GPU支持OpenGL ES2.0 3.对OpenGL的基本知识了解设置OpenGL ES环境创建GLSurfaceView为了显示OpenGL的图形,你需要使用GLSurfaceView类,就像其他任何的View子类意义,你可以将它添加到你的Activity或Fragment之上,通过在布局xml文件中定义或者在代码中创建实例。在本次的教程中,我们使用GLSurfaceView作为唯一的View在我们的Activity中,因此,为了简便,我们在代码中创建GLSurfaceView的实例并将其传入setContentView中,这样它将会填充你的整个手机屏幕。Activity中的onCreate方法如下:protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GLSurfaceView view = new GLSurfaceView(this); setContentView(view);}123456123456因为媒体效果的框架仅仅支持OpenGL ES2.0及以上的版本,所以在setEGLContextClientVersion 方法中传入2;view.setEGLContextClientVersion(2);11为了确保GLSurfaceView仅仅在必要的时候进行渲染,我们在setRenderMode 方法中进行设置:view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);11创建RendererRenderer负责渲染GLSurfaceView中的内容。创建类实现接口GLSurfaceView.Renderer,在这里我们打算将这个类命名为EffectsRenderer,添加构造函数并覆写接口中的抽象方法,如下:public class EffectsRenderer implements GLSurfaceView.Renderer { public EffectsRenderer(Context context){ super(); } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { } @Override public void onDrawFrame(GL10 gl) { }}123456789101112131415161718123456789101112131415161718回到Activity中调用setRenderer方法,让GLSurfaceView使用我们创建的Renderer:view.setRenderer(new EffectsRenderer(this));11编写Manifest文件如果你想要发布你的App到谷歌商店,在AndroidManifest.xml文件中添加如下语句:<uses-feature android:glEsVersion="0x00020000" android:required="true" />11这会确保你的app只能被安装在支持OpenGL ES2.0的设备之上。现在OpenGL环境准备完毕。创建一个OpenGL平面定义顶点GLSurfaceView是不能直接显示一张照片的,照片首先应该被转化为纹理,应用在OpenGL square之上。在本次教程中,我将创建一个2D平面,并且具有4个顶点。为了简单,我将使用一个长方形,现在,创建一个新的类Square,用它来代表形状。public class Square {}123123默认的OpenGL系统的坐标系中的原点是在中心,因此4个角的坐标可以表示为:左下角: (-1, -1)右下角:(1, -1)右上角:(1, 1)左上角:(-1, 1)我们使用OpenGL绘制的所有的物体都应该是由三角形决定的,为了画一个方形,我们需要两个具有一条公共边的三角形,那意味着这些三角形的坐标应该是:triangle 1: (-1, -1), (1, -1), 和 (-1, 1)triangle 2: (1, -1), (-1, 1), 和 (1, 1)创建一个float数组来代表这些顶点:private float vertices[] = { -1f, -1f, 1f, -1f, -1f, 1f, 1f, 1f,};123456123456
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
水笔在手上画画会不会被衣服搽掉下来 老人每天大便次数很多量不多也不稀,每天还会拉三四次水应经三个月了... 从大连飞机场怎么去大连经济开发区5彩城K区的大连金港大酒店 除了打 ... 请问从大连周水子国际机场到经济技术开发区怎么走最省钱? 中国古代名刀总录中国古代十大名刀 怎样把qq安装到iphone里面 苏科大什么梗 苏科大叫什么名字 lol苏科大是苏州科技大学的吗 lol苏州科技大学为什么这么厉害 优尔精医用降温贴是不是保健品? OpenGL ES 3.1怎么开启,手机是支持的? 哪些手机支持OpenGL 2.0 为为什么vivo手机中的那个ppsspp渲染模式中就只有一个OpenGL? 手机opengl是什么啊 手机里的“OpenGL跟踪”是干什么的? 三角插美国队长这么叠 qq上怎么删除个性签名的历史记录 n读音是怎样? 台式电脑二线主板和一线主板有什么区别 电脑一线生产商的主板和二线生产商的主板有什么差别? 电脑 主板 什么品牌 属于 一线 品牌 国产电脑一线主板有哪些? 100个三角插能做什么 歼击机的名称及代号 怎样叠三角插 世界顶尖先进战机值多少钱,歼 折三角插用多大规格的纸拼起来才不会太大 马小辣老成都串串火锅(滨江店)怎么样,好不好的评论 米格-23战斗机的装备与战史是怎样的? 请问折三角插可以用那些纸,都有什么规格? 华为mate有一个启用opengl什么意思 我下载一个游戏,不能运行 说需要手机支持opengl es3.0 有什么办法吗 小米手机OpenGL什么意思 请问千牛卖家中心发布宝贝开始能点开后来点不开了这是怎么回事? 千牛工作台为什么我的店铺,卖家中心打不开 千牛卖家中心的实时数据插件打不开什么原因(普云,爱用)都不可以 帝骑有没有把创骑踢成卡片? 怎么卖家中心进入不了,像出售宝贝,退款处理,都没法处理,等等,都是打不开 千牛工作台登进去了但进卖家中心就成这样一点反应也没有这是怎么回事啊 《假面骑士decade》为什么叫帝骑? 千牛卖家中心怎么变了这个也没了怎么回事??? 帝骑的dx卡盒能与csm的卡联动吗,望大佬告知? 在淘宝上买了件衣服但是尺码不对,去快递公司换货应该怎么弄 最新版的千牛客户端,点击卖家中心,没有反应 帝骑的卡片用完了还能再用么 《假面骑士》帝骑剧场版有哪些? 淘宝换货怎么换?卖家发地址给我然后我给他寄回去就可以了吗?什么快递都可以? 别人发的200元红包怎么没到账? 假面骑士 帝骑和W 哪个厉害? 微信红包转账的银行卡上边没有到账怎么查询呢请问一下?