android studio | openGL es 3.0增强现实(AR)开发 (5) GLSurfaceView浅解

本文介绍了OpenGL ES与EGL的关系,阐述了EGL在创建Context、Surface及Framebuffer配置中的作用。同时,解释了Surface的概念,它是屏幕缓冲区的载体。GLSurfaceView作为SurfaceView的扩展,专门用于OpenGL渲染,通过单独线程实现3D图形绘制。文章还概述了GLSurfaceView的使用流程以及渲染管线在图形绘制中的重要性。

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

1.什么是EGL?

EGL 是 OpenGL ES(嵌入式)和底层 Native 平台视窗系统之间的接口。EGL API 是独立于OpenGL ES各版本标准的独立API ,其主要作用是为OpenGL指令创建 Context 、绘制目标Surface 、配置Framebuffer属性、Swap提交绘制结果等。此外,EGL为GPU厂商和OS窗口系统之间提供了一个标准配置接口,下面是一个EGL布局图。


这里写图片描述


2.什么是surface?如何理解

Handle onto a raw buffer that is being managed by the screen compositor。surface对应了一块屏幕缓冲区,每个窗口对应一个surface,而每个Activity都会持有一个窗口,所以,我们通常在Activity里设置的view(通过setContentView),从java抽象上看其最终的绘制目标就是在Surface上。

3.什么是GLSurfaceView?

GLSurfaceView是一个视图类,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染,是OpenGL ES 与 View系统之间建立的桥梁。SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。

4.一般的GLSurfaceView的使用步骤

初始化GLSurfaceView –> 定制android.View.surface –>选择EGL配置 –> 调式行为 –> 设置渲染器 –>选择渲染器。

5.surfaceView 和 GLSurfaceView分别是2D和3D的图形的画布。

6.什么是渲染管线?

渲染管线也称渲染流水线,一般由GPU内部的处理图形信号的并行处理单元组成。渲染管线就是指一系列的绘制过程,这些过程输入的是待渲染的3D物体的相关描述信息,经过这个渲染管线输出的就是一帧想要的图像。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值