哪些 OpenGL ES 2.0 纹理格式可进行颜色、深度或模板渲染?

2024-01-28

From OpenGL ES 2.0 规范 http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf第 4.4.5 节:

“表 4.5 中未列出的格式,包括压缩的内部格式。不包括在内。 颜色、深度或模板可渲染,无论它们包含哪些组件。”

然后还有扩展该表的扩展,例如:

  • OES_深度24 http://www.khronos.org/registry/gles/extensions/OES/OES_depth24.txt
  • OES_深度32 http://www.khronos.org/registry/gles/extensions/OES/OES_depth32.txt
  • OES_rgb8_rgba8 http://www.khronos.org/registry/gles/extensions/OES/OES_rgb8_rgba8.txt
  • ARM_RGBA8 http://www.khronos.org/registry/gles/extensions/ARM/ARM_rgba8.txt

如果我正确理解了规范,表 4.5 会影响纹理和渲染缓冲区格式。在这种情况下,例如,每个组件 8 位的 RGB 和 RGBA 纹理无法进行颜色渲染,除非支持扩展 OES_rgb8_rgba8(或用于 RGBA 的 ARM_rgba8)。

在支持 OES_rgb8_rgba8 的测试设备上,以下纹理格式有效,即,当作为颜色附件附加到 FBO 时,帧缓冲区已完成:

  • RGB 565
  • RGB 888
  • RGBA 4444
  • RGBA 5551
  • RGBA 8888

这些不是:

  • Alpha 8
  • 亮度8
  • 亮度阿尔法 88

结果符合我的假设(至少在一台设备上),但我想知道我是否正确理解了规范,还是这是偶然的?


是的,你的假设是正确的。

官方规范中的可渲染格式列表正是 OpenGL ES 2.0 实现的内容required支持。大多数支持比此处列出的要多得多。

但是,没有任何 OpenGL / OpenGL ES 实现支持可渲染颜色的 alpha 或亮度纹理。您可以使用纹理混合扩展和/或 GLSL 矢量混合来复制该行为。扩展名:EXT_texture_rg添加纹理可用的红色和红色/绿色图像格式and渲染缓冲区。当您想要使用 FBO 绘制为一通道或两通道图像格式时,这两种格式非常有用(因为GL_LUMINANCE, GL_ALPHA and GL_LUMINANCE_ALPHA不是可色彩渲染的格式)。

一般来说,渲染缓冲区图像格式集是纹理图像格式的子集。您可以使用压缩图像格式(ES 2.0 中可选)、亮度和 alpha 图像格式进行纹理和像素传输操作,但渲染缓冲区不支持它们。这意味着虽然您可以使用这些纹理进行绘制,但您无法通过将它们附加到 FBO 来绘制它们。要绘制到纹理中,它必须具有以下图像格式both渲染缓冲区格式和纹理格式。

从历史记录来看,有些渲染缓冲区格式不能用作纹理。多重样本格式就是一个例子,多重样本纹理是在创建初始 FBO 规范后添加的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哪些 OpenGL ES 2.0 纹理格式可进行颜色、深度或模板渲染? 的相关文章

  • Android:OpenGL ES 2.0 - 纹理始终为黑色

    我试图使用顶点和片段着色器在 OpenGL ES 2 0 Android 4 0 4 Galaxy Nexus 中显示一个简单的纹理作为全屏背景 最终结果应该是在那里显示相机图像 但首先 文件中的简单纹理就足够了 我测试了很多东西 并且在我
  • 如何为 opengles 2.0 实现 glOrtho?有或没有 glOrtho 规范中的 tx、ty、tz 值?

    我试图从 opengles 文档中实现我自己的 glOtho 函数http www khronos org opengles documentation opengles1 0 html glOrtho html http www khro
  • OpenGL-ES 2.0 VS OpenGL-ES 1.1,哪个更快?

    我已经使用 OpenGL ES 1 1 编写了一个应用程序 但我想知道切换到 2 0 是否可以提高速度 有人用大多边形模型做过测试吗 我只想渲染具有不同颜色的三角形 没什么花哨的 然而 我想要渲染大约 100 万个三角形用于我的比较测试 O
  • 对于制服和顶点属性来说,OpenGL 索引和位置是一样的吗?

    在 OpenGL 参考页中 some https www opengl org sdk docs man4 html glUniform xhtml函数被标记为使用统一位置 而other https www opengl org sdk d
  • opengl中使用哪种图像类型

    当使用 OpenGL 为 Android 编程时 我似乎可以为图像使用 BMP JPG 和 PNG 文件类型 哪一个 如果有的话 最好 非常感谢 这不是 OpenGL 的问题 因为一旦你有了Graphics Bitmap对象来源很大程度上无
  • OpenGL ES 片段着色器可以更改片段的深度值吗?

    OpenGL ES 2 0 中的片段着色器可以更改像素的 Z 值 深度 吗 在 OpenGL ES 2 0 中这是如何实现的 No gl FragDepth 这是 GLSL 桌面版本的一部分 在 OpenGL ES 中不存在 但是 您可以检
  • iPhone iOS 5.0 OpenGl ES 2.0

    说真的 我已经花了几周甚至几个月的时间来寻求有关 iPhone 上使用 XCode 4 2 的 OpenGL 的一些认真帮助 我需要一个很好的教程 介绍如何从使用新的 XCode 4 2 的 OpenGL 游戏 模板开始 然后从那里开始进展
  • 在 OpenGL ES 2.0 / GLSL 中,哪里需要精度说明符?

    您要填充值的变量是否决定了您在等号右侧使用的精度 例如 这里的精度说明符在含义上是否有任何区别 gl FragColor lowp vec4 1 这是另一个例子 lowp float floaty 1 2 floaty lowp 1 low
  • 使用 OpenGL ES 2.0 进行模板制作

    I am trying to figure out a way to cut out a certain region of a background texture such that a certain custom pattern i
  • OpenGL ES 和 OpenGL 兼容着色器

    我想要 OpenGL ES 和 OpenGL Windows 具有相同的着色器源 为此 我想定义自定义数据类型并仅使用 OpenGL ES 函数 一种方法是定义 define highp define mediump define lowp
  • EGL 链接器错误

    我正在尝试在 Ubuntu Trusty 系统上使用 g 4 9 1 链接一个非常简单的 GLES2 和 EGL 程序 我正在使用台面库 我收到 EGL 函数的链接器错误 test cpp text 0x342 undefined refe
  • 如何使用 OpenGL ES 2.0 着色器完成这些图像处理任务?

    如何使用 OpenGL ES 2 0 着色器执行以下图像处理任务 色彩空间变换 RGB YUV HSL Lab 图像的旋转 转换为草图 转换为油画 我刚刚向我的开源添加了过滤器GPU图像框架 https github com BradLar
  • 在 OpenGL-ES 2.0 中渲染多个 2D 图像

    我是 OpenGL 新手 正在尝试学习 ES 2 0 首先 我正在开发一款纸牌游戏 需要渲染多个纸牌图像 我跟着这个http www learnopengles com android lesson four introducing bas
  • 使用着色器创建模糊过滤器 - 从片段着色器访问相邻像素?

    我想使用 OpenGL ES 2 0 中的片段着色器创建模糊效果 我感兴趣的算法只是一个平均模糊 将所有相邻像素添加到我自己中并除以 9 进行标准化 但是我有两个问题 1 这是否需要我首先渲染到帧缓冲区 然后切换渲染目标 或者有更简单的方法
  • 如何在 WebGL 中创建合适的圆角矩形?

    我试图实现答案这个问题 https stackoverflow com questions 43970170 bordered rounded rectangle in glsl但似乎有点问题 如果您打开他们的 ShaderToys 并尝试
  • OpenGL ES 2.0 通过共享 C++ 代码在 ios 和 android 上进行抗锯齿或平滑处理

    我对 OpenGL 和 ES2 0 还很陌生 我共享了c opengl es2代码 我用它在ios和android上绘制 使用ndk CMake 它大部分都可以工作 但现在我需要抗锯齿并且它有点令人困惑 我看到的解决方案是依赖于平台和and
  • 具有 OpenGL ES 3.1 上下文的 GLSurfaceView

    我正在使用 OpenGL 开发 Android 我知道如何使用GLSurfaceView及其自定义派生类 使用以下方法创建 OpenGL ES 2 0 上下文GLSurfaceView setEGLContextClientVersion
  • LibGDX - 着色器适用于桌面但不适用于 Android

    我编写了一个简单的程序 可以在 3D 环境中渲染球体 并根据球体周围的四个光源为其着色 当我在桌面上运行该程序时 它工作得很好 但在 Android 设备上 球体只是纯色的 下面是一些图片来说明我正在谈论的内容 gt Desktop gt
  • 如何获取特定 GLSurfaceView 的 EGL 显示/上下文

    这是后续我原来的问题 https stackoverflow com questions 6509588 egl vs gles 2 0 on android e g java 这可能太宽泛 而这个可能太具体 但也许我可以应用牛顿法 我的具
  • iPhone glShader二进制

    有谁有如何编译着色器 保存着色器二进制文件以及使用 glShaderBinary 稍后使用 iPhone iOS OpenGL ES 2 0 加载着色器的示例 这是不可能的 至少对于 iOS 4 及更低版本 iOS 不支持任何预编译的二进制

随机推荐

  • 从具有开始/结束日期的行创建年份序列行的数据框

    我对 R 和编码来说是一个相对较新的用户 我已经搜索过但无法解决这个问题 我有以下数据 groupid start date end date Status 1 2014 01 01 2017 01 01 A 1 2018 01 01 20
  • Python - 检查字母是否在列表中

    如果一个字母 字符串 在列表中 find letter o 你好 c 再见 返回 True 否则返回 False def find letter lst lst o hello 1 n o if not lst return 0 elif
  • 响应式背景图像 bootstrap 3

    我正在使用 bootstrap 并试图使我的背景图像具有响应能力 但它不起作用 这是我的代码 html div class row div class bg img src img home bg jpg alt home backgrou
  • `Class of` 类型声明的含义是什么?

    在查看我的代码之一时 我陷入了如下的一项声明 TMyObjectClass class of TMyObject 我有点困惑 想知道这句话的含义是什么 作为TMyObjectClass声明之上没有任何声明 and TMyObject声明如下
  • ElasticSearch:未分配的分片,如何修复?

    我有一个有4个节点的ES集群 number of replicas 1 search01 master false data false search02 master true data true search03 master fals
  • 按下按钮刷新 tkinter 框架

    我正在使用来自的代码在 tkinter 中的两个框架之间切换 https stackoverflow com questions 7546050 switch between two frames in tkinter制作我的图形用户界面
  • 在 Swift 中将参数传递给选择器

    我正在构建一个应用程序来跟踪大学课程的阅读作业 每个 ReadingAssignment 都包含一个 Bool 值 指示读者是否已完成阅读作业 ReadingAssignments 被收集到 WeeklyAssignment 数组中 我希望
  • 具有相同标签的不同散点图标记

    我遇到了 类似 的问题Matplotlib 一个标签具有多个不同标记的图例 https stackoverflow com questions 9262307 matplotlib legend with multiple differen
  • 多个域的集成 Windows 身份验证

    我有一个针对域 A 用户的 Asp net 网站 具有集成 Windows 身份验证 现在B域的用户需要访问该网站 但域B用户访问网站时会弹出窗口输入验证信息 我的问题是 如何配置IIS或Windows Server 让B域用户像A域用户一
  • XAML 文件的智能感知 (Xamarin.Forms)

    在 Visual Studio 15 中 如何让 XAML Intellisense 适用于 Xamarin Forms 中的 XAML 文件 编辑 将答案与问题分开 这个解决方案是在这个论坛 https social msdn micro
  • 如何检测 Angular 中属性的更改

    我有一个带有子组件的组件timeline
  • $null 应该位于相等比较的左侧吗? (-eq 与数组)

    与同事讨论 应该 null是在支票的左边还是右边 有什么例子可以说明为什么这很重要吗 abc null null eq abc True abc eq null True All ok abc 6 7 null 8 9 null eq ab
  • 使用 NPOI 将图像插入 Excel 文件

    我正在使用 C 在 Visual Studio 2010 中编写一个程序 并且正在使用 NPOI 库 我正在尝试将图像插入到 Excel 文件中 我尝试了两种不同的方法 但都不起作用 Method 1 HSSFPatriarch patri
  • 服务重启后 Docker 节点宕机

    我的服务器似乎空间不足 并且某些已部署的 Docker 堆栈出现了一些问题 我花了一段时间才弄清楚 但最终我做到了 并删除了一些容器和图像以释放一些空间 我能够跑service docker restart它起作用了 然而 也存在一些问题
  • 通过java应用程序发送附有excel文件的电子邮件 - 不起作用

    我试图通过Java应用程序发送一封邮件 其中包含excel文件作为附件 而不实际创建该文件 excel文件中的数据来自数据库 我可以发送带有附件的邮件 但文件是文本 制表符分隔 格式 但我希望该文件仅为 Excel 格式 请帮忙 以下是代码
  • 在 Java 调试器中,如何忽略从未通过我的代码的异常

    我目前正在使用 IntelliJ IDEA 进行 Java 开发 但我也对针对其他 IDE 的答案或调试 Java 代码的一般概念感兴趣 因为我在许多 IDE 中都错过了这个功能 所以我不确定在从其他语言转移我的调试习惯时是否错过了工作流程
  • Google Dataflow(Apache Beam)JdbcIO批量插入mysql数据库

    我正在使用 Dataflow SDK 2 X Java API Apache Beam SDK 将数据写入 mysql 我创建了基于管道Apache Beam SDK 文档 https beam apache org documentati
  • 使用 window.open() 的多个窗口

    众所周知 如果您单击嵌入其中的提交按钮onClick windown open 这将打开一个新窗口 其中包含您指定的所有可爱属性 但是 如果继续单击父窗口并再次单击 提交 按钮而不关闭先前的弹出窗口 则同一窗口将被新数据覆盖 现在我需要一种
  • 词汇量和嵌入维度之间的首选比例是多少?

    例如使用时gensim word2vec或用于训练嵌入向量的类似方法我想知道什么是好的比率 或者嵌入维度与词汇量之间是否有首选比率 随着更多数据的出现 这种情况会如何变化 由于我仍在讨论这个主题 因此在训练嵌入向量时如何选择合适的窗口大小
  • 哪些 OpenGL ES 2.0 纹理格式可进行颜色、深度或模板渲染?

    From OpenGL ES 2 0 规范 http www khronos org registry gles specs 2 0 es full spec 2 0 25 pdf第 4 4 5 节 表 4 5 中未列出的格式 包括压缩的内