问题标签 [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 - 如何在 Opengl es 2.x 中加载多个纹理(在带有 libgdx 的 android 中)
我可以像这样绑定 1 个纹理......但是如果我不知道如何绑定更多纹理。
iphone - 具有 OpenGL 性能问题的全屏背景纹理 (iPad)
我对在 OpenGL 中使用带纹理的三角形网格绘制全屏背景时看到的糟糕性能感到非常困惑:使用最基本的着色器仅绘制背景而没有其他任何东西的最大速度为 40 fps,使用默认设置为 50 fps管道。
虽然 40 fps 似乎并不算太糟糕,但在此之上添加任何其他东西会使 fps 下降,并且考虑到我需要在此之上绘制 100-200 个其他网格,我最终得到了一个微不足道的 15 fps,这根本不是可用。
我已经将相关代码隔离到一个可用的 XCode 项目中,但它的本质是规范的纹理贴图示例:
顶点着色器:
片段着色器:
将矩形大小除以 2 会使帧速率加倍,因此渲染时间显然取决于绘图在屏幕上占用的空间。这完全有道理,但对我来说没有意义的是,似乎不可能用超过 15 fps 的 OpenGL 纹理映射网格覆盖整个屏幕。
然而,那里有数百个游戏可以做到这一点,所以这是可能的,我一定做错了什么,但它是什么?
iphone - OpenGL ES 2.0 的推荐实践环境?
我决定学习一些 OpenGL ES 2.0,并尝试为它选择一个练习平台。什么是可能的目标平台,它可以是 Android、iPhone 或 WebGL。但我不想花费太多时间和精力来正确设置环境。
你会推荐 WebGL 来快速开始学习 OpenGL ES 2.0 还是其他什么?
编辑:我正在使用 Mac,目前我对 ES 1.x 并不感兴趣。
ios4 - 将 Opengl 纹理从第一个 fbo 绑定到第二个 fbo,使用着色器并渲染第二个结果(乒乓球)
我一直在研究乒乓球着色,并认为在我上一个问题之后我已经破解了它。但是,随着对着色器的进一步了解,看起来虽然我能够在 FBO A 和 FBO B 上运行着色器,但 A 的输出并未用作 B 的源。换句话说,我没有正确绑定它。
我正在使用的代码如下。第二个着色器的输出显示基于颜色的输出,但第一个着色器将数据设置为灰度。因此,我知道这不能按要求工作。
我将不胜感激任何(进一步的!!)帮助。
下面的代码,
干杯,
西蒙
java - OpenGL ES2.0 框架(包括加载模型)
我必须在 android2.2 上制作 OPEN GLES2.0。
所以我想要火焰作品(包括加载模型)。(COLLADA 或 OBJ)
请让我知道它或工具的框架。
iphone - OpenGL-ES 2.0 VS OpenGL-ES 1.1,哪个更快?
我已经使用 OpenGL-ES 1.1 编写了一个应用程序,但我想知道切换到 2.0 是否可以提高速度。有没有人用大多边形数模型做过任何测试?我只想渲染具有不同颜色的三角形,没什么特别的。但是,我想为我的比较测试渲染大约 100 万个三角形。
qt - 运行 OpenGL 应用程序时出现 X11 错误 BadRequest
我为我正在为 ARM 设备构建的自定义 Linux 编译了 Xorg。我正在尝试使用 EGL 和 Qt 框架运行 OpenGL 应用程序,但出现以下错误:
还有这个:
重复了很多次。这是什么意思?我如何调查出了什么问题?使用 OpenGL 在屏幕上正确绘制了一些东西,但之后一切都搞砸了。我的 Xorg 中似乎缺少某些内容,但我找不到关于这些扩展 198 和 160 的任何信息。如何找出缺少的内容或有什么问题?我是否必须编译任何特定的东西才能为 X11 运行 OpenGL 应用程序?谢谢!
iphone - 在 3D 场景中定位对象,然后确定用户点击了什么
我正在使用 OpenGL ES 2.0 用 C++ 构建一个跨平台游戏。目前的目标是iPhone。我是编码游戏的新手,但不是编码的新手。
我对如何构建游戏感到困惑。 但具体来说,我问的是如何设置在场景中定位模型所需的对象。
我有一个代表场景的对象。有5个场景。一次只显示一个场景。一个场景就像一个游戏关卡。每个场景都有渲染、游戏逻辑、鼠标和键盘处理的所有代码。触摸屏处理就像鼠标点击一样处理。
每个场景都有: 它自己的投影矩阵。它是自己的“视图”矩阵——目前未使用——总是设置为单位矩阵要渲染的模型列表
每个模型都有: 顶点列表 用于渲染自身的 GLSL 程序 纹理 一个“模型”矩阵
我使用正交投影矩阵。
由于我们使用的是 GLES 2,因此我几乎必须手动完成所有操作。包括矩阵。所以我不使用 glPushMatrix、glPopMatrix、glTranslate 等。它们不可用。相反,我有自己的函数,可以对自己的 Matrix 对象进行操作。
好的,这就是我觉得奇怪的地方。
1)设置投影矩阵(使用正交矩阵)
2) 将视图矩阵保留为单位矩阵
3)加载每个模型
4)每个模型的“模型”矩阵默认为单位矩阵
5) 我现在缩放每个模型以使它们彼此成比例地位于右侧。缩放函数调整模型的“模型”矩阵。
6) 将每个模型移动到位
7) 渲染每个模型
对我来说似乎很奇怪: 转换模型的矩阵是否合适?
当我尝试 glUnProject 鼠标/触摸屏坐标时,冒险的部分就来了。
1) 获取鼠标/触摸屏坐标
2)取消投影它们。
现在我有了相对于视图矩阵的坐标。哪个是单位矩阵。这意味着 x,y 坐标被转换为最大垂直和水平范围正好为 1.0 的坐标系。
如何确定单击了哪个对象?
看来,为了回答我的最后一个问题,我需要更好地了解我定位它的位置。
我想我已经过度设计了这个。帮助。
c++ - 在 3D 场景中存储模型位置的好方法是什么?
我想知道在 3D 场景中存储对象位置的最佳方法是什么。就我而言,场景实际上是游戏的关卡。
每个场景都有:
- 它是自己的投影矩阵。
- 要渲染的模型列表
每个模型都有:
- 顶点列表
- 一个 GLSL 程序来呈现自己
- 质感
- “模型”矩阵
我正在使用 GLES 2。所以没有 glPushMatrix、glPopMatrix、glTranslate 等。它们不可用。相反,我有自己的函数,可以对自己的 Matrix 对象进行操作。
1)设置投影矩阵(使用正交矩阵)
2)加载每个模型
3) 缩放每个模型,使它们彼此成比例地位于右侧。缩放函数调整模型的“模型”矩阵。
4) 将每个模型移动到位
7) 渲染每个模型
对我来说似乎很奇怪: 为了定位模型而转换模型的矩阵是否合适?
我应该将模型 ID 与旋转、缩放和平移因子一起存储在某个文件中吗?