问题标签 [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 回答
101 浏览

opengl-es - 是否可以验证非颜色渲染内部格式的组件大小?

在 OpenGL ES 3.0 规范中,我们可以阅读:

§ 4.4.5

当相关的framebuffer绑定非零时,如果当前绑定的framebuffer对象不是framebuffer complete,则表6.34中列出的状态变量的值是未定义的。

表 6.34 包含x_BITS常数。这意味着我们可以创建一个不可颜色渲染的纹理或渲染缓冲区,但我们无法验证它的大小是否合适。

有什么办法可以解决这个问题,还是我的想法完全歪曲并且这些信息是无关紧要的(这会使问题不正确)?

0 投票
3 回答
40594 浏览

opengl-es - OpenGL ES 2.0 和 OpenGL ES 3.0 有什么区别

OpenGL ES 2.0我想知道和之间有什么区别OpenGL ES 3.0

主要优点是OpenGL ES 3.0什么?

0 投票
4 回答
2585 浏览

opengl-es - ETC2 压缩纹理的块大小是多少?

GL_COMPRESSED_RGB8_ETC2a和GL_COMPRESSED_RGBA8_ETC2_EAC纹理的块大小是多少?

我正在使用 ((w+3)/4)*((h+3)/4)* 8for GL_ETC1_RGB8_OES,但找不到有关 ETC2 的任何信息(Khronos 文档对此不太清楚)。

0 投票
2 回答
5148 浏览

opengl-es - Android NDK r9 中的 OpenGL ES 3.0

最近的 Android NDK r9 推出了对 OpenGL ES 3.0 的支持。有一个示例samples/gles3jni演示了如何从 JNI/native 代码中使用 OpenGL ES 3.0。可以通过两种不同的方式构建示例:

  • 与 API 级别 11 及更高版本兼容
  • 需要 API 级别 18 或更高版本。

两个版本都包含 OpenGL ES 2.0 后备路径,适用于不支持 OpenGL ES 3.0 的设备。但是,第一种情况下的示例使用LOCAL_LDLIBS选项静态链接到 OpenGL ES 2 -lGLESv2。在第二种情况下,它以相同的方式与 GLES 3 静态链接。

初始化是这样的:

如何完全省略静态链接并从中动态加载 GLES 2 或 3 .so

0 投票
2 回答
5711 浏览

c++ - 在 Android 上使用 OpenGL ES 3?

我下载了 Android NDK r9 并编译了一个示例应用程序。我有一部升级到 Android 4.3 的 Galaxy Nexus 智能手机。

如何以编程方式确定我的设备是否支持 OpenGL ES 3?

0 投票
1 回答
4583 浏览

android - 如何在 Android 的着色器中声明 OpenGL 版本?

我正在试验 OpenGL ES 3.0 并在快速参考表中找到以下语句:

“#version 300 es”必须出现在使用 GLSL ES 版本 3.00 编写的着色器程序的第一行。如果省略,着色器将被视为针对版本 1.00。

所以我尝试在着色器的开头添加它,但这只会导致错误

由于无效的顶点着色器,链接失败。

据报道.glGetProgramInfoLog。如果我用“#version 300 gl”语句删除第一行,着色器就会编译并工作。

这是我的顶点着色器的代码

我还在顶点和片段着色器中添加了版本语句,但仍然得到相同的错误。

我调用setEGLContextClientVersion(3)了我的 GLSurfaceView,并添加<uses-feature android:glEsVersion="0x00030000" android:required="true" />到我的清单中以指示该应用程序需要 OpenGL ES 3.0。

我是否错误地阅读了 OpenGL ES 文档并且不需要添加此版本声明?如果我需要添加它,我做错了什么总是导致错误?

0 投票
1 回答
2921 浏览

android - OpenGL ES 3.0 在 Android 中的 glReadPixels 性能提升

我找到了一些通过 OpenGL ES 3.0 加速 glReadPixels 的方法,但我不确定它是否有效。

  1. 将glReadPixels()的第五个参数指定为GL_BGRA以避免不必要的混乱。
  2. 如上所述使用PBO_

为了验证,我更新到最新的Android SDK和ADT,并尝试使用OpenGL ES 3.0。但是,我找不到GL_BGRA我预期的定义,也不知道如何使用glMapBuffer(). 我错过了什么吗?

总结一下,

  • 除了使用 glReadPixels() 之外,还有其他更快的方法来访问帧缓冲区吗?
  • 如何在 Android 上通过 OpenGL ES 3.0 使用 GL_BGRA 和 PBO?

如果有人知道,请指出我。一些代码片段会更好。提前致谢。

0 投票
1 回答
367 浏览

opengl-es - 没有属性的顶点着色器

我们可以有没有属性的垂直着色器吗?

0 投票
1 回答
310 浏览

java - 将FBO纹理与后处理后的主图像结合起来以实现发光效果

我正在尝试创建发光效果。我正在使用 OpenGL ES 3.0。我可以使用模板缓冲区创建对象(立方体)的轮廓,所以我对此没有任何问题。我还可以使用 FBO 将此轮廓渲染为纹理,并使用框模糊或高斯模糊实现模糊效果。但是,我遇到问题的部分是得到的模糊辉光轮廓(即后处理图像)与我的原始对象结合起来,以便它排列立方体的边缘。我可以将模糊的纹理粘贴到屏幕上——但这会将低分辨率的模糊复制到的高分辨率立方体上——这意味着我再也看不到我的立方体,只能看到模糊的轮廓纹理。

问题:如何将两者合并为屏幕上的一张图像?

我想制作一个包含两个图像的合成图像。

这可能很简单,但我想不出办法。伪代码会很有帮助。

谢谢

0 投票
1 回答
1906 浏览

ios - ios opengl 3.0 不编译版本

我正在 xcode 5 中试用 opengl 3.0

这就是我编译着色器的方式

这是我的着色器

我尝试:

返回 235,这是预期的。但我明白了

从编译日志中,我尝试了很多版本号,只有 100 个有效。然后我得到

怎么了?我在 iphone 4 64 位模拟器上运行它,在我的 mac air 上使用 Intel HD Graphics 3000 384 MB 图形