GL_TEXTURE_2D和GL_TEXTURE_EXTERNAL_OES有什么区别?

8
我是一个新手,在安卓开发中使用OpenGL ES。在学习过程中,我发现了两种纹理类型:
  1. GL_TEXTURE_2D
  2. GL_TEXTURE_EXTERNAL_OES
有人告诉我它们之间不兼容。
我的问题如下:
  1. 它们之间有什么区别?它们是完全不同的纹理类型吗?
  2. GL_TEXTURE_EXTERNAL_OES 纹理必须是 YUV 格式吗?如果不是,是什么决定了数据格式?
1个回答

14

它们之间有什么区别?

常规纹理由OpenGL ES定义、分配和管理。

外部纹理在其他地方定义和分配,并以某种实现定义的方式导入到OpenGL ES中。一个常见的用途是导入YUV视频,因此外部采样器还必须能够处理色彩空间转换和非标准存储布局(例如,多平面YUV表面)。

GL_TEXTURE_EXTERNAL_OES纹理是否必须为YUV格式?

不是。系统中的某些外部实体定义了格式- 应用程序看不见,颜色空间转换由驱动程序堆栈自动处理。支持哪些格式完全由实现来定义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接