OpenGLES编程思想

本文深入探讨了OpenGLES的编程思想,包括它与EGL的关系、数据流、全编程管线、客户端与服务器的概念,以及状态机和对象模型。OpenGLES是一个用于嵌入式设备的图形硬件接口,它使用状态机和对象封装来管理有限的GPU资源。通过理解其设计原理,开发者能更高效地利用OpenGLES进行图形编程。

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

     最近在看gles的reference,想多了解一下gles的底层,gles是opengl在khronos在嵌入式设备上的图形硬件的软件访问接口,很多东西和opengl似曾相似,但是和opengl又有很大的不同,最新的标准是gles3.2,标准文档非常长,如果不是写引擎没必要对每个接口烂熟于心,但是为了能够了解他,我对他的编程思想做个总结,最重要的是理解gles的设计思路,然后在使用的时候也必将容易找到相关接口。所以本文基本不会列出gles的每个接口,不会记录讲解每个接口,而是希望能够通过总结gles的设计思想,让我们在开发过程中知道我们应该期待从gles中获得哪个接口。


1.gles是什么

  对于程序员开发者:非常简单,他就是一组控制gpu工作指令,所有的指令包括三种:1.描述shader程序,2.给shader设置数据,3.shader之外的绘制状态控制

  对于gl的实现者(那些具体为硬件实现gles驱动的厂商要做的):也很简单,控制对gpu的操作(当然也可能有无硬件的软渲染):1.在gpu的显存上存储数据和framebuffer,2.在gpu的处理器上运行可执行的gpu程序。


2.gles 和egl

  通常在嵌入式设备上,gles需要和egl协同工作,gles负责图像的绘制,但是对于创建和管理图形context,窗口,同操作系统和其他硬件协作这些需要依靠egl(Embedded-System Graphics Library"),这些不是gles的范围,egl也是一个跨平台的统一的标准,协调多种平台和硬件,具体来说你在手机上创建一个窗口供opengl渲染就需要egl。


3.Data Flow 数据流

 这是一个简化版的es3.2的数据流,bufferdata经历顶点,细分,及几何shader 后,进入光栅化,片段shader,最后到frambuffer,但是这里比2.0多了一条通路,在光栅化前,顶点数据可以feedbak回到一

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值