问题标签 [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.
android - 支持 android SDK 2.2 的顶点缓冲区对象
我正在为android制作一个带有opengl es 2.0的程序。
我正计划使用 VBO 来存储我的顶点数据。但是当我开始这样做时,我注意到我错过了这个功能
带有一个覆盖,它将缓冲区中的偏移量作为最后一个参数而不是缓冲区本身。
我注意到以下关于 android 2.3 的发布摘要的引用
android 2.2 中没有对此的支持吗?
如果是这样,是否有其他方法可以做到这一点?(我不想仅仅因为这个而使用 NDK)
到目前为止,我想到的唯一解决方案是仅在 android 版本为 2.3+ 时才使用 VBO。但如果可以的话,我宁愿一直使用它们
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 编程指南形式的学习材料),我想知道我会错过什么。
android - 在 android 上处理输入的问题,即在 hello-gl2 中
如何使输入处理在单独的线程中运行?我已经像这样修改了 hello-gl2 示例:
当我连续触摸屏幕时,我试图减少系统延迟,我已经看到这个解决方案被用于 android 上的其他 openGL 应用程序,尽管没有使用 openGl ES 2.0。问题是调用thread.sleep时我的渲染冻结了。但是它不是假设在一个不影响渲染线程的单独线程中吗?
iphone - 在 iPhone 上使用着色器平移正方形
我正在尝试在 iPhone 上更新我对 OpenGL ES 1.1 到 2.0 的(少量)知识。iPhone 的默认 OpenGL ES 应用程序模板会绘制一个正方形,并使其上下平移并正常工作。他们的实现对着色器本身的 Y 值变化进行了数学运算,这几乎没有用。因此,我将顶点着色器更改为:
这似乎是正确和普遍的(从我的研究中看到)。显然,我对代码进行了必要的更改,例如绑定制服,并且为了帮助进行数学计算,我获得了 esUtil.h 代码的源代码。在绘图方法上,我的代码如下所示:
这应该可行,但不幸的是,我得到的与简单的翻译完全不同。
我已经重新启动模板几次,但我无法弄清楚我在这里做错了什么......旋转似乎按预期工作,我相信......
任何帮助,将不胜感激。
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 一样快吗?
opengl-es - 无法在 OpenGL 中的 2D(正交)之上绘制 3D(平截头体)
我正在尝试在背景图像(正交投影)上使用 Frustum 投影渲染一些网格。无论我做什么,背景图像都会一直位于场景的顶部(隐藏网格)。
我尝试了一个小测试——当我用相同的投影矩阵渲染它们时,它们的顺序是正确的——背景图像在网格后面。
这些是投影矩阵和深度缓冲区初始化:
我正在清理缓冲区: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
最后一件事.. 当我禁用 GL_DEPTH_TEST 时,网格被绘制在背景图像的前面,因为首先调用背景..
我不知道是深度缓冲区还是投影矩阵导致了这个问题。screenWidth = 960 和 screenHeight = 640 的矩阵的值:
我究竟做错了什么?阿米尔。
编辑:这就是我用正交投影绘制图像的方式:
这就是我用平截头体投影绘制网格的方式:
iphone - 将 2 个纹理绑定到一个或两个 FBO 是否更快?
我想一个接一个地运行几个着色器(主要是图像处理),一个的输出是以下的输入。我想知道仅使用一个绑定到所有需要的纹理的 FBO 是否会提高性能,或者为每个纹理创建一个 FBO 是否相同?
如果重要的话,目标平台是 iPhone,因此使用 OpenGL ES 2.0。
谢谢
android-emulator - 姜饼模拟器支持 opengl es 2.0
我在这里读到android sdk 2.3 具有对 opengles 2.0 的模拟器支持。
但是,在使用最新的 sdk 升级我的 eclipse 环境后,我找不到任何支持。老实说,我在文档中找不到它声称支持的位置。
我有一个小型 2.2 目标应用程序,可以在 Galaxy s 2.2 上运行,但不能在任何模拟器上运行。
我错过了什么吗?
c++ - 编译着色器时出错
我尝试在一本书中编译着色器:Opengl es 2.0 编程指南-第 10 章-RenderMonkey 和 Visual Studio 2008 的线性雾
但它抛出了同样的错误:错误链接程序
顶点信息
致命错误 C9999: * 编译期间出现异常 *
我尝试修复它,但仍然无法修复。你能告诉我什么是问题以及如何解决它吗???
顶点和片段着色器代码:
//--------------------------------------顶点着色器---------- -----------------------------------------
//-------------------------------------片段着色器---------- ----------------------------
glsl - 在 OpenGL ES 2.0 / GLSL 中,您在哪里需要精度说明符?
您填充值的变量是否在等号右侧指示您正在使用的精度?
例如,这里的精度说明符是否有任何不同的含义:
这是另一个例子:
如果您采用一些浮点数,并从中创建一个向量或矩阵,该向量或矩阵是否会采用您填充的值的精度,或者这些值是否会转换为另一个精度级别?
我认为优化这将最好地回答这个问题:
我的意思是,如果你想要它尽可能快,它是否需要走这么远,或者其中一些是无用的?
我知道您可以定义浮点的默认精度,并且这应该用于之后的向量和矩阵。假设出于教育目的,我们之前已经定义了这个: