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

android - 将橙皮书着色器移植到 OpenGL ES 2.0

我正在尝试将橙皮书砖着色器移植到 OpenGL ES 2.0,但我遇到了照明问题。在没有灯光的情况下,我看到了砖块,但有了它,它的形状只是黑色的。 在此处输入图像描述在此处输入图像描述

垂直

碎片

这是我的Java

0 投票
1 回答
1940 浏览

iphone - 在 OpenGL ES 2.0 中我应该用什么代替 glTexCoordPointer()?

在 OpenGL ES 1 中,我有一个类似以下的函数来设置图像的坐标:

在 OpenGL ES 2.0 中与此等效的是什么?

0 投票
3 回答
14104 浏览

iphone - 如何使用 OpenGL ES 2 将纹理绘制成四边形?

Quads 不包含在 OpenGL ES 2.0 中,因为它们在 1.1 中。使用 OpenGL ES 2.0 提供的可编程管道,我怎样才能简单地将纹理(最初是 png 文件)绘制成 4 个定义的点?

我需要VBO吗?我需要计算透视矩阵吗?所有这些对我来说都是一团糟……使用的平台是 iPhone。

0 投票
1 回答
1102 浏览

opengl-es-2.0 - 旋转顶点es2

我如何在opengl es2中旋转顶点

在 es1 我可以做 glRotatef(transY, 0, 0, 1);

但是在 es2 下它崩溃了

在 es2 中是一样的吗

将 iphone sdk 用于 xcode

0 投票
3 回答
14077 浏览

debugging - OpenGL ES 2.0 调试

所以,我有一个OpenGL ES 2.0应用程序。它使用 Imgtec 的仿真器库(即PVRVframe)在 iPhone/iPad 模拟器、真正的 iPhone/iPad 和 Windows 下编译和运行。

在所述应用程序中,我有一个特定的绘图调用,导致没有像素写入目标,即使我可以查询的所有状态看起来都很合理(视口、深度测试/模板测试/剔除/混合、帧缓冲区完成等),并且AFAICT 我正在提交合理的顶点数据。

在这一点上我所追求的是一个类似于Pix / GPAD的工具,它可以让我逐步浏览场景并查看状态我无法在相关的绘制调用点直接从 OpenGL 查询(例如,实际的顶点/索引缓冲区内容)。

PVRTrace和OSX 仪器似乎没有捕获足够的状态来调试此类问题。特别是,它们不捕获顶点/索引缓冲区或纹理数据(OSX 仪器也不捕获着色器源)。

gDEBugger,以前是 Stack Overflow 上此类问题的答案,现在是 5.8 版 - 它已经免费了,这很好,但不再支持 OpenGL ES 2(在 Windows 下,无法通过 EGL 获得 ES2 可渲染配置;在OSX,无法将调试器附加到在模拟器或真实设备上运行的应用程序) - 这不是很好。

我错过了一些明显的东西吗?我有哪些选择?其他人如何调试他们的场景?

0 投票
1 回答
6097 浏览

map - 如何创建 OpenGL ES 2.0 SkyBox?

你能给我提示一下 OpenGL ES 2.0 中任何好的 SkyBox 示例吗?我只找到了 OpenGL,对我不起作用。我这样做是这样的:初始化:

绘制天空盒:

纹理加载正在工作。着色器已正确编译,如下所示: 顶点着色器:

片段着色器:

但我无法看到立方体。我做错什么了吗?谢谢

0 投票
2 回答
1497 浏览

iphone - iPhone glShaderBinary

有没有人有如何编译着色器、保存着色器二进制文件并使用 glShaderBinary 稍后使用 iPhone/iOS (OpenGL ES 2.0) 加载着色器的示例?

0 投票
1 回答
3025 浏览

iphone - iOS OpenGL ES 逻辑缓冲区加载

通过分析工具给出的 OpenGL API 使用性能警告列表,我发现我们每帧生成了几个逻辑缓冲区负载——在这些地方我们没有清除缓冲区,因为绘制调用完全覆盖了它。

与直觉相反,glClear()为这些情况引入调用只是将警告的位置移动到glClear()调用中。Apple 实现GL_EXT_discard_framebuffer,但是单独使用它也不足以阻止警告。AglDiscardFramebufferEXT()后跟 aglClear()确实会停止警告,并显着提高性能,但glClear()调用本身需要时间来清除缓冲区,这在我们的用例中是冗余操作。

其他人是否也发现他们需要调用这两个函数以避免重新加载成本,或者我错过了什么?是否有一种廉价的方式向 OpenGL 暗示帧缓冲区的内容即将被完全覆盖,因此不需要重新加载到 tile 内存中?

0 投票
5 回答
2530 浏览

opengl - 为跨平台桌面应用程序选择什么 OpenGL 版本

我正在开发一些带有大量二维图形的跨平台桌面应用程序。我使用 OpenGL 2.0 规范,因为我需要顶点着色器。我喜欢 3.2+ 核心 API,因为它简单且强大。我认为 3.2+ 核心可能是未来的选择。但我担心现在这个功能在某些平台上可能不可用(我的意思是旧的显卡和缺乏(?)现代 Linux 驱动程序)。也许,我应该使用类似 OpenGL ES 2.0 的 API 以便将来移植。

3.2+ 内核、显卡和 linux 驱动程序的情况如何?

0 投票
1 回答
1582 浏览

android - glGetUniformLocation 调用有多快/多慢?

在为着色器设置任何统一参数之前,我使用 glGetUniformLocation 来检索其位置,而不是在开始时执行一次并存储 int 位置值。像这样::

会大大影响我的表现吗?