【问题标题】:What's the difference between GL_TEXTURE_2D and GL_TEXTURE_EXTERNAL_OESGL_TEXTURE_2D 和 GL_TEXTURE_EXTERNAL_OES 有什么区别
【发布时间】:2020-09-09 11:07:54
【问题描述】:

我是 OpenGL ES 在 android 开发中的新手。我在研究过程中发现了两种纹理:

  1. GL_TEXTURE_2D
  2. GL_TEXTURE_EXTERNAL_OES

有人告诉我它们彼此不兼容。

我有两个问题:

  1. 它们之间有什么区别?它们是完全不同类型的纹理吗?
  2. GL_TEXTURE_EXTERNAL_OES 纹理必须是YUV 格式吗?如果不是,是什么决定了数据格式?

【问题讨论】:

    标签: android opengl-es


    【解决方案1】:

    它们有什么区别?

    普通纹理完全由 OpenGL ES 定义、分配和管理。

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

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

    没有。系统中的一些外部实体定义了格式 - 它对应用程序不可见,并且颜色空间转换由驱动程序堆栈神奇地处理。究竟支持哪些格式是实现定义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      相关资源
      最近更新 更多