【发布时间】:2020-09-09 11:07:54
【问题描述】:
我是 OpenGL ES 在 android 开发中的新手。我在研究过程中发现了两种纹理:
GL_TEXTURE_2DGL_TEXTURE_EXTERNAL_OES
有人告诉我它们彼此不兼容。
我有两个问题:
- 它们之间有什么区别?它们是完全不同类型的纹理吗?
-
GL_TEXTURE_EXTERNAL_OES纹理必须是YUV格式吗?如果不是,是什么决定了数据格式?
【问题讨论】:
我是 OpenGL ES 在 android 开发中的新手。我在研究过程中发现了两种纹理:
GL_TEXTURE_2DGL_TEXTURE_EXTERNAL_OES有人告诉我它们彼此不兼容。
我有两个问题:
GL_TEXTURE_EXTERNAL_OES 纹理必须是YUV 格式吗?如果不是,是什么决定了数据格式?【问题讨论】:
它们有什么区别?
普通纹理完全由 OpenGL ES 定义、分配和管理。
外部纹理在别处定义和分配,并以某种实现定义的方式导入 OpenGL ES。一种常见用途是导入 YUV 视频,因此外部采样器还必须能够处理色彩空间转换和非标准内存布局(例如多平面 YUV 表面)。
GL_TEXTURE_EXTERNAL_OES 纹理是否必须是 YUV 格式?
没有。系统中的一些外部实体定义了格式 - 它对应用程序不可见,并且颜色空间转换由驱动程序堆栈神奇地处理。究竟支持哪些格式是实现定义的。
【讨论】: