问题标签 [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 投票
3 回答
807 浏览

android - 支持 android SDK 2.2 的顶点缓冲区对象

我正在为android制作一个带有opengl es 2.0的程序。

我正计划使用 VBO 来存储我的顶点数据。但是当我开始这样做时,我注意到我错过了这个功能

带有一个覆盖,它将缓冲区中的偏移量作为最后一个参数而不是缓冲区本身。

我注意到以下关于 android 2.3 的发布摘要的引用

android 2.2 中没有对此的支持吗?

如果是这样,是否有其他方法可以做到这一点?(我不想仅仅因为这个而使用 NDK)

到目前为止,我想到的唯一解决方案是仅在 android 版本为 2.3+ 时才使用 VBO。但如果可以的话,我宁愿一直使用它们

0 投票
1 回答
5283 浏览

opengl - OpenGL ES 2.0 和 OpenGL 4 的区别

OpenGL ES 2.0 和 OpenGL 4.1 之间的确切区别是什么。我知道 OpenGL ES 2.0 是 OpenGL 4.1 的子集。但究竟有哪些功能在 OpenGL ES 2.0 中不可用。

我想开始单独使用 OpenGL ES 2.0 子集开发桌面应用程序(因为我们有一个很棒的 OpenGL ES 编程指南形式的学习材料),我想知道我会错过什么。

0 投票
1 回答
701 浏览

android - 在 android 上处理输入的问题,即在 hello-gl2 中

如何使输入处理在单独的线程中运行?我已经像这样修改了 hello-gl2 示例:

当我连续触摸屏幕时,我试图减少系统延迟,我已经看到这个解决方案被用于 android 上的其他 openGL 应用程序,尽管没有使用 openGl ES 2.0。问题是调用thread.sleep时我的渲染冻结了。但是它不是假设在一个不影响渲染线程的单独线程中吗?

0 投票
2 回答
1208 浏览

iphone - 在 iPhone 上使用着色器平移正方形

我正在尝试在 iPhone 上更新我对 OpenGL ES 1.1 到 2.0 的(少量)知识。iPhone 的默认 OpenGL ES 应用程序模板会绘制一个正方形,并使其上下平移并正常工作。他们的实现对着色器本身的 Y 值变化进行了数学运算,这几乎没有用。因此,我将顶点着色器更改为:

这似乎是正确和普遍的(从我的研究中看到)。显然,我对代码进行了必要的更改,例如绑定制服,并且为了帮助进行数学计算,我获得了 esUtil.h 代码的源代码。在绘图方法上,我的代码如下所示:

这应该可行,但不幸的是,我得到的与简单的翻译完全不同。

截屏

我已经重新启动模板几次,但我无法弄清楚我在这里做错了什么......旋转似乎按预期工作,我相信......

任何帮助,将不胜感激。

0 投票
2 回答
1282 浏览

android - Android GLES20 大纹理四边形非常慢(在 Nexus One 上)

我仅使用 GLES20 上下文渲染了 2 个覆盖整个表面的三角形。现在的问题是,以这种方式仅绘制一个纹理似乎异常缓慢。帧率从 58fps 下降到 21fps。

  • 问题确实似乎是所有四边形一起绘制的整体像素区域
  • 位图在加载时调整为 pow2
  • 位图以正确的内部 GL 格式加载
  • 使用 8888 或 565 位图不会改变任何东西
  • 顶点和片段着色器代码绝对是最少的
  • 启用/禁用混合不会改变任何东西
  • 在一个图块或多个图块中绘制整个位图没有帮助
  • glDrawTexiOES 似乎不适用于 GLES20(GL 枚举错误)

我在这里不知所措;我认为在 GL 中对单个图像进行 blitting 至少应该与使用 Canvas 一样快,但似乎并非如此。

有人可以提供有关此性能影响的提示或解释吗?

更新:

我刚刚调整了我的渲染线程以支持画布而不是 EGL 上下文,我做的完全一样;显示 fps 文本和 blitting 背景纹理。猜猜看:只显示文本我得到 58fps,添加背景图片我得到...... 57fps!

现在我正式并且非常生气。我希望我只是不够聪明,不能很好地使用 GLES20,否则似乎如果你想对 2D 图形进行 blit - 你就拿 Canvas;并且当且仅当您想要许多 3D 三角形时,您才可以使用 OpenGL。

OpenGL 不应该总是至少与 Canvas 提供的 2D API 一样快吗?

0 投票
1 回答
2334 浏览

opengl-es - 无法在 OpenGL 中的 2D(正交)之上绘制 3D(平截头体)

我正在尝试在背景图像(正交投影)上使用 Frustum 投影渲染一些网格。无论我做什么,背景图像都会一直位于场景的顶部(隐藏网格)。

我尝试了一个小测试——当我用相同的投影矩阵渲染它们时,它们的顺序是正确的——背景图像在网格后面。

这些是投影矩阵和深度缓冲区初始化:

我正在清理缓冲区: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

最后一件事.. 当我禁用 GL_DEPTH_TEST 时,网格被绘制在背景图像的前面,因为首先调用背景..

我不知道是深度缓冲区还是投影矩阵导致了这个问题。screenWidth = 960 和 screenHeight = 640 的矩阵的值:

我究竟做错了什么?阿米尔。

编辑:这就是我用正交投影绘制图像的方式:

这就是我用平截头体投影绘制网格的方式:

0 投票
1 回答
298 浏览

iphone - 将 2 个纹理绑定到一个或两个 FBO 是否更快?

我想一个接一个地运行几个着色器(主要是图像处理),一个的输出是以下的输入。我想知道仅使用一个绑定到所有需要的纹理的 FBO 是否会提高性能,或者为每个纹理创建一个 FBO 是否相同?

如果重要的话,目标平台是 iPhone,因此使用 OpenGL ES 2.0。

谢谢

0 投票
1 回答
1280 浏览

android-emulator - 姜饼模拟器支持 opengl es 2.0

可能重复:
Android 模拟器是否支持 OpenGL ES 2.0?

在这里读到android sdk 2.3 具有对 opengles 2.0 的模拟器支持。

但是,在使用最新的 sdk 升级我的 eclipse 环境后,我找不到任何支持。老实说,我在文档中找不到它声称支持的位置。

我有一个小型 2.2 目标应用程序,可以在 Galaxy s 2.2 上运行,但不能在任何模拟器上运行。

我错过了什么吗?

0 投票
0 回答
1325 浏览

c++ - 编译着色器时出错

我尝试在一本书中编译着色器:Opengl es 2.0 编程指南-第 10 章-RenderMonkey 和 Visual Studio 2008 的线性雾

但它抛出了同样的错误:错误链接程序

顶点信息

致命错误 C9999: * 编译期间出现异常 *

我尝试修复它,但仍然无法修复。你能告诉我什么是问题以及如何解决它吗???

顶点和片段着色器代码:

//--------------------------------------顶点着色器---------- -----------------------------------------

//-------------------------------------片段着色器---------- ----------------------------

0 投票
1 回答
60804 浏览

glsl - 在 OpenGL ES 2.0 / GLSL 中,您在哪里需要精度说明符?

您填充值的变量是否在等号右侧指示您正在使用的精度?

例如,这里的精度说明符是否有任何不同的含义:

这是另一个例子:

如果您采用一些浮点数,并从中创建一个向量或矩阵,该向量或矩阵是否会采用您填充的值的精度,或者这些值是否会转换为另一个精度级别?

我认为优化这将最好地回答这个问题:

我的意思是,如果你想要它尽可能快,它是否需要走这么远,或者其中一些是无用的?

我知道您可以定义浮点的默认精度,并且这应该用于之后的向量和矩阵。假设出于教育目的,我们之前已经定义了这个: