android平台opengl学习的一些记录, 持续更新

问题1

什么是EGL, 有什么用? 怎么用? 为什么要用?
目前我还不能很好的回答这几个问题, 只是知道了, 在android平台, 至少可以跳过这个问题, 也就是不关注egl而直接通过GLSurfaceView来实现一些opengl绘制.
具体的示例可以参考谷歌官方:https://developer.android.com/training/graphics/opengl/environment

而至于直接使用egl来初始化环境的例子, 可以参考我的GitHub项目:https://github.com/shaopx/MediaPlayerTest
其中的EglImpl1Activity.java .
这个示例来自系列博文:https://www.jianshu.com/p/9db986365cda 建议先看看这个浅显易懂的系列.
其中提到, 如果不想opengl环境随着页面销毁而自动销毁, 那么可以尝试使用egl自己初始化opengl环境, 也许这个理由对我们上面的问题是一个回答. 但是目前我还不能确定.

问题2.

各种示例中眼花缭乱的gl版本是怎么回事? 在onDrawFrame(GL10 gl10)生命周期回调方法中的参数是GL10 类型的, 而大部分示例, 包括谷歌官方的示例目前都是直接这么使用opengl的:

 GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f)
 GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT) 
....

那到底怎么使用才是最正确的? 却别又是什么? 为什么会有GL10 和GLES20的区别? 为什么会有对象实例的调用和静态方法调用两种?

目前看, GL10 gl10参数基本没用了, 太老了. 只所以留下来, 可能是为了兼容老版本程序吧.
现在不只有GLES20, 还有GLES30, 甚至还有GLES31 它们对应的支持版本查看:https://developer.android.com/guide/topics/graphics/opengl

而关于实例调用和静态方法调用, 不管使用哪种调用方法, 效果基本是一样的, 据说静态方法调用更高效:
https://stackoverflow.com/questions/2759734/difference-between-gl10-and-gles10-on-android
所以以后就直接使用静态方法调用吧.

问题3

安卓平台的系统UI绘制 最终是如何跟opengl关联的?
------ 简单说, 是在SurfaceFlinger中与egl关联的, 当然应用程序也可以通过使用GLSurfaceView直接与opengl交互.

image.png

是不是可以认为, 如果我实在受不了android的这套view框架, 那我可以通过自定义GlsurfaceView 来搭建自己的view系统. 这会我的measure, layout就不用在ui线程了.

问题4

如何对camera中的数据直接从后台进行处理, 而不是渲染到可视控件上.
这对于一些监控类的程序好像是个功能点, 目前还没搞清楚. 隐约感觉到需要使用egl创建一个pbuffer类型的输出, 然后从其中读取数据, 保存到文件. 但是怎么把camera数据导向到pbuffer类型的输出, 怎么处理YUV类型的数据 都还没想清楚.

问题5

编写顶点着色器时, 如果加上#version 300 es , 会编译失败, 无法生成顶点着色器对象. 这个文件头不是标准的吗?
in 和 out参数描述符也会导致失败, 不明白为什么 ---- 目前glsl的版本必须在3.3以上才能支持in out , 看来安卓平台仍然不支持这个版本. 这几个版本指标好乱啊.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,563评论 25 707
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,614评论 0 3
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,471评论 2 59
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,078评论 2 44
  • 艾殇笑了笑,道:“既然君公子无意见,那么,五日后起程,如果顺利,一月后便可回,此行程,还需做改么?” ...
    言妖子阅读 311评论 3 5