问题标签 [opengl-es-2.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 回答
95 浏览

c - DisplayContext、displaySurface 和 displayBuffer 之间的区别?

平时在图形和显示上工作,我们会遇到Displaybuffer、DisplaySurface & DisplayContext之类的词?这些术语有什么不同?

0 投票
2 回答
4836 浏览

iphone - iPhone glTexImage2D 和 glReadPixels 上的 BGRA

查看文档,我应该能够将 BGRA 用于纹理的内部格式。我正在为纹理提供 BGRA 数据(将 GL_RGBA8_OES 用于 glRenderbufferStorage,因为似乎不允许使用 BGRA)。但是,以下方法不起作用:

虽然这给了我一个黑框:

这确实有效,但是蓝色/红色是反转的(我将 BGRA 数据提供给纹理):

...为什么我不能始终使用 BGRA?我确实注意到 glRenderbufferStorage 似乎不接受任何 BGRA 格式......我真的很困惑。BGRA 是我的数据唯一合适的格式,因为它来自 iphone 的相机。

0 投票
2 回答
2509 浏览

android - 如何在android上显示粒子?

我正在android上编写一个opengl es程序(NDK),我需要渲染一些粒子。谁能告诉我如何在android上显示粒子?谢谢!

0 投票
3 回答
2307 浏览

android - glDepthMask(GL_FALSE) 会破坏某些 GPU 上的帧缓冲区

glDepthMask(GL_FALSE)我有时会在渲染帧期间禁用深度缓冲区写入。这在某些 GPU(如摩托罗拉 Droid 的 PowerVR)上工作得非常好,但在带有 Adreno GPU 的 HTC EVO 上,我最终会发现帧缓冲区完全是垃圾(我看到我在某处渲染的网格的痕迹,但是整个屏幕大多是垃圾)。

如果我一直强制 glDepthMask 为真,那么一切正常。

我需要在部分 alpha 渲染期间关闭 glDepthMask。关闭深度写入会导致帧缓冲区被破坏的原因是什么?

0 投票
1 回答
728 浏览

opengl-es - OpenGL ES 2.0 以什么顺序读取矩阵的元素?

我很困惑。是吗:

或者是其他东西?

0 投票
2 回答
3696 浏览

android - 旋转 Android OpenGL ES 2.0 视口

我为我的 Android 应用程序获得的 OpenGL ES 2.0 渲染上下文处于纵向模式 (480x800),但我想以横向模式 (800x480) 进行渲染。

如何旋转 OpenGL 视口,最好不修改发送到着色器的矩阵?

我有一堆着色器,其中一些使用身份矩阵(如字体渲染器)。所以看起来我需要在几个地方向矩阵添加一个旋转组件。有没有办法以某种方式全局旋转视口?

我可以以某种方式从 Android 请求风景渲染上下文吗?

这个问题是否有任何架构模式?

0 投票
1 回答
961 浏览

iphone - 当我切换到纯 alpha (A8) pixelFormat 时,为什么我的片段着色器无法读取 alpha 信息?

我正在创建一个使用 OpenGL ES 2.0 的 iOS 应用程序。我对 OpenGL 有点陌生,所以这可能是一个微不足道的错误。

我创建了一个简单的着色器来处理使用 alpha 通道用另一个纹理遮盖一个纹理。蒙版纹理初始化如下:

glGenTextures(1, &name); glBindTexture(GL_TEXTURE_2D, 名称);

glTexParameterf(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1024, 768, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);

glGenFramebuffersOES(1, &buffer); glBindFramebufferOES(GL_FRAMEBUFFER_OES, 缓冲区);

glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, 名称, 0);

glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);

然后(稍后)我在遮罩纹理上绘制一些东西,并将遮罩纹理链接到这个片段着色器以将其应用到另一个纹理:

这完全呈现了我想要的样子。但是,为了减少绑定蒙版纹理缓冲区的开销(这似乎很大),我尝试对蒙版纹理使用 8 位仅 alpha 像素格式。但是,如果我从 RGBA 设置中更改代码:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1024, 768, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);

...仅 alpha 版:

glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 1024, 768, 0, GL_ALPHA, GL_UNSIGNED_BYTE, 缓冲区);

...片段着色器无法绘制任何内容。因为我首先只使用蒙版纹理中的 alpha,所以它似乎应该继续工作。任何想法为什么它不?

0 投票
4 回答
4103 浏览

android-ndk - C 矩阵库,适用于 Android 上的 opengl (NDK)

我正在使用带有 NDK 的 opengl es 2.0 在 C 中编写一个渲染例程。我对矩阵图形转换的(速度超过精度)库以及您可以推荐的任何最佳实践感兴趣。

编写自己的函数并非不可能,但我想在重新发明轮子之前先在这里问一下。谢谢。

0 投票
1 回答
3150 浏览

android - 无法编译已知在 android 上很好的着色器

我从 android SDK 示例中获取了以下着色器:

着色器来自他们的 opengl es 2.0 示例,当我编译示例时工作正常。

但是,当我尝试在我的程序中编译着色器时,我得到:

还有一个事实是该方法:

不返回任何信息(据我从谷歌研究中了解,我认为这是一个已知的错误)

有谁知道我做错了什么?

谢谢,杰森

0 投票
1 回答
1322 浏览

android - Android,触摸屏时jni中的openGL滞后

我目前正在 Android 平台上测试我的游戏所需的所有功能。我只修改了 hello-gl2 示例代码,并在两个渲染通道中添加了一些纹理、VBO、FBO 和简单着色器。

问题是,当我让应用程序在不触摸屏幕的情况下运行时,我有大约 35-45 fps。但是如果我开始连续触摸屏幕,渲染就会开始滞后!那么这是一个问题,因为输入和渲染在同一个线程中(正如 a 认为的那样?),甚至可以修复吗?如果我不能解决这个延迟问题,我的游戏可能无法运行得足够好,无法正常玩。(有一些重渲染的东西)

//提前致谢!