如何在Android上使用OpenGL ES 2.0绘制点

2025-05-11 06:09:28
推荐回答(1个)
回答1:

FrameBuffer对象的概念可以参见前面文章AndroidOpenGLES开发教程(23):FrameBuffer。简单的和2D图像类比,FrameBuffer如果对应到二维图形环境中,就是一个2D的内存数组空间,缺省情况为屏幕的显存,也可以创建Offscreen内存空间,此时FrameBuffer可以是一个二维数组,数组每个元素代表一个像素颜色。对于三维图形来说,除了需要代表颜色的二维数组(ColorBuffer),还需要深度二维数组(DepthBuffer)或遮罩数组(StencilBuffer),因此在OpenGL中的FrameBuffer为上述ColorBuffer,DepthBuffer,StencilBuffer的集合。如果手机具有GPU,其缺省的FrameBuffer也是3D屏幕显示区域。通过OpenglES扩展支持,应用程序也可以创建内存中的FrameBuffer对象(不用于屏幕显示)。通过这种应用程序创建的FrameBuffer对象,OpenGL应用可以将图像显示输出重新定向到这个非屏幕显示用FrameBuffer对象中,类似于二维图形绘制中常用的Offscreen技术。和缺省的屏幕显示FrameBuffer一样,由应用程序创建的FrameBuffer对象也是由ColorBuffer,DepthBuffer和StencilBuffer(可选)的集合组成。这些Buffer在FrameBuffer对象中可以称为FrameBuffer-attachable图像,FrameBuffer定义了一些接入点(AttachmentPoint)可以用于连接(Attach)这些Buffer数组。OpenGLES定义了两种FrameBuffer-attachable图像,Texture和renderbuffer,简单的可以将Texture理解为Colorbuffer或是2D图像,renderbuffer对应于depthbuffer。