我是android开发中的OpenGL ES的新手。我在学习期间发现了两种类型的纹理:
GL_TEXTURE_2D
GL_TEXTURE_EXTERNAL_OES
有人告诉我他们彼此不兼容。
我有两个问题:
GL_TEXTURE_EXTERNAL_OES
纹理是否必须为YUV
格式?如果没有,那么什么决定数据格式?答案 0 :(得分:5)
它们之间有什么区别?
普通纹理完全由图形驱动程序定义,分配和管理。
外部纹理在其他位置定义和分配,并以某种实现定义的方式导入图形驱动程序。一种常见用途是导入YUV视频,因此外部采样器还必须能够处理颜色空间转换和非标准的内存布局(例如,多平面YUV表面)。
GL_TEXTURE_EXTERNAL_OES纹理是否必须为YUV格式?
不。系统中的某些外部实体定义了格式-应用程序看不到它,并且颜色空间转换由驱动程序堆栈神奇地处理。实现定义了确切支持哪种格式。