问题标签 [opengl-es-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
993 浏览

opengl-es - 具有 GL_UNSIGNED_BYTE 类型的 RGBA4 格式

我可以用 UNSIGNED_SHORT_4_4_4_4 理解 RGBA4,其中每个颜色分量都是 4 位。但是,如果我们对无符号字节类型的纹理使用 RGBA4 内部格式,那么如何解释呢?

我能理解的是这里每个组件都是 8bits ,但是 '4' 在 RGBA4 中意味着什么?它会考虑每 8 位/组件的前 4 位而忽略其他吗?

0 投票
0 回答
472 浏览

c++ - 使用 openGL es 3.0 进行体积渲染

我正在尝试渲染 3D 体积,原始数据已成功从主内存上传到图形内存,但屏幕上仍然没有任何内容。这是我的着色器代码,有人可以帮我找到问题所在。

0 投票
1 回答
3912 浏览

opengl-es - 如何在opengles 3.0中实现多个渲染目标

我想在opengl es 3.0中实现MRT。因此创建了一个带有纹理的帧缓冲区作为 GL_RGBA32UI 类型的 GL_COLOR_ATTACHMENT0 附件。在该帧缓冲区上渲染 GL_RGBA32UI 的纹理图像。然后将帧缓冲区数据作为纹理读取,并将其作为默认缓冲区中的纹理应用。(基本上使用INTEGER纹理渲染到纹理)

我正在尝试为我的自定义 FBO 和默认的 FBO 使用相同的片段着色器。

想要使用 uex_color 渲染到自定义帧缓冲区和 ex_color 渲染到默认帧缓冲区。

尝试对我的 FBO 使用 glDrawBuffer(1, {GL_COLOR_ATTACHMENT0 }),但无法了解如何将 ex_colour 用于默认帧缓冲区。

0 投票
0 回答
407 浏览

java - OpenGL ES 3.0 上的 OpenGL ES 2.0 着色器

我在使用 OpenGL ES 3.0 的 Android 设备上编译“工作”着色器时遇到问题。

我的着色器在本机使用 OpenGL ES 2.0 的设备上运行良好(它是针对该版本编写的)。我正在尝试在使用 OpenGL ES 3.0 且无法编译的设备上运行我的着色器“未编辑”。我正在使用 GLES20.glCompileShader 编译源代码,但代码永远不会从该函数返回。我还有另一个为 OpenGL ES 2.0 编写的着色器,它似乎可以工作。由于 NDA 的原因,我无法显示着色器的任何代码,但我可以说我正在使用不同的变量、制服和特殊扩展名“#extension GL_OES_EGL_image_external:require”。但是确实有效的着色器也使用了这个扩展,所以这不是问题。

真正的问题甚至不是崩溃。我无法通过 GLES20.glCompileShader(...)。它只是在使用“损坏的”着色器时挂起。我不确定为什么。提前感谢您的任何答案。

0 投票
1 回答
128 浏览

opengl-es-3.0 - 对于格式为 GL_RGBA8 且带有无符号字节和最小/磁力过滤器 GL_NEAREST 的纹理,是否会出现块状现象?

当格式 GL_RGB5_A1 与 unsigned_byte 纹理数据(无 mipmap)一起使用时,应用的纹理是带有 min/mag 过滤器 GL_NEAREST 的块状。当格式 GL_RGBA8 使用相同的代码时,应用的纹理是平滑的。我的假设是,对于使用 GL_NEAREST 过滤器的 RGBA8,纹理图像应该是块状的。OPGNELES 3.0 支持纹理的这种格式和类型。它使用 glTexImage3D 应用大小为 256x256x256 的 3D 纹理,视口设置为 640x480。纹理生成如下

是预期的吗?

  1. RGB5_A1 格式的图像
  2. RGBA8 格式的图像

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
464 浏览

android - GLES2 glTexStorage 在 Nexus 7 2013 上不起作用?

我是如何使用的glTexStorage

glTexStorage2DEXT直接符号也是如此。但是我也检查了eglGetProcAddress(),它们是相同的地址。

代码片段:

然后这给出GL_INVALID_OPERATIONglTexSubImage2D

但这并没有给出错误:

我的使用有什么问题glTexStorage2DEXT

0 投票
0 回答
755 浏览

android - OpenGL ES 3.0 设备在 2.0 上下文中不支持 GL_OES_texture_float?

我有一个依赖于GL_OES_texture_float扩展的 OpenGL ES 2.0 应用程序。过去 3 年中几乎所有设备都有它,所以这不是问题。

但是,使用带有 Adreno 330 GPU 的 Galaxy S5,我遇到了问题。Adreno 330 支持 OpenGL ES 3.0,其中包括原生的浮动纹理支持,无需扩展。事实上,从设备上的 OpenGL 获取扩展字符串并不会报告GL_OES_texture_float为有效扩展。

但是,当在此设备上使用 OpenGL ES 2.0 上下文时,浮动纹理的使用无法绑定,尽管它显然具有该功能,因为 GPU 支持 3.0。看来它只是不起作用,因为我处于 2.0 环境中,并且他们不再将其报告为扩展。

有没有其他人遇到过这样的情况?

0 投票
1 回答
162 浏览

opengl-es - 深度纹理使用什么坐标系?

我有一个深度纹理,我想知道存储在深度纹理内的值是在哪个坐标系中。齐次坐标、相机坐标、世界坐标还是模型坐标?

我还想知道深度纹理中存储了哪些值以及它们的含义。

谢谢。

0 投票
1 回答
5408 浏览

android - AssetManager 不能从 NDK 工作

我正在使用 OpenGL ES 3.0 并使用 Eclipse NDK 通过 Google Nexus 渲染体积数据。我正在使用 AssetManager 将体积数据(16 MB 的原始文件)加载到真实设备,但它无法正常工作。我也将资源存储在包含标题的资产文件夹中,但我仍然在 logcat 中收到相同的错误 __load_uniform_float:802>:GL_INVALID_OPERATION 我尝试谷歌搜索一些相关示例但找不到任何相关示例。

这是我的代码:

0 投票
1 回答
1356 浏览

android - Android 上的 HDR 渲染

我的目标是 OpenGL ES 3.0,它保证支持浮点纹理,但需要OES_color_buffer_half_floatOES_color_buffer_float实际渲染到它们。

我渴望在 Android 上编写和测试 HDR 渲染。未来几个月内是否有任何 Android 设备上市或进入市场,支持该OES_color_buffer_half_float扩展?或者,有没有办法将 HDR 实现为后处理效果而不渲染到浮点纹理?