问题标签 [opengl-es]

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 投票
9 回答
10112 浏览

学习 OpenGL ES 1.x

加快 OpenGL ES 1.x 速度的最快方法是什么?

假设我对 OpenGL 一无所知(这并不完全正确,但距离我上次使用 OpenGL 已经有一段时间了)。我最感兴趣的是学习这个用于与 iPhone 相关的开发,但我也有兴趣了解它如何在其他平台上工作。

我找到了OpenGL ES 2.0 Programming Guide这本书,但我担心它可能不是最好的方法,因为它关注的是 2.0 而不是 1.x。我的理解是 2.0 不向后兼容 1.x,所以我可能会错过一些重要的概念。

注意:有关学习通用 OpenGL 的答案,请参阅https://stackoverflow.com/questions/62540/learning-opengl


我发现的一些资源:

0 投票
5 回答
4527 浏览

Android Phone Emulator 对性能的反映如何?

我一直在玩OpenGL ESAndroid 上的开发。OpenGL ES应用程序似乎在我的开发机器上的模拟器中运行缓慢。这是否反映了实际硬件的可能性能?如果图形性能变得迟缓,我担心会花费太多时间来开发应用程序。

0 投票
2 回答
3465 浏览

如何在 iPhone 上的 OpenGLES 中创建缩放效果?

我有一个 OpenGL ES 游戏,我正在一起破解。其中一部分涉及查看一个大的“类似地图”的区域,然后双击一个部分以“放大”它。您将如何使用 OpenGL ES 来提供这种效果(假设它可能需要放大地图的不同部分)。

我听说过 glScale 和 glOrtho,但我不清楚它们实际上是如何工作的,因为整个 openGL 世界对我来说都是非常新的。

0 投票
2 回答
3194 浏览

如何使用 OpenGL ES 1.1 实现海洋表面效果?

我正在开发一款发生在海面上的 iPhone 游戏。有人可以推荐一些示例代码或教程来在 OpenGL 中实现波浪或涟漪吗?

在我写这篇文章时,iPhone 只支持 OpenGL ES 1.1,所以不支持着色器或其他花哨的效果。

我不需要太花哨的东西。例如,我不需要反射。我不想让设备负担过重。我只需要一些看起来像海洋的东西。(但如果它看起来像锦鲤池一样漂亮就好了。)

0 投票
2 回答
1696 浏览

iPhone 应用程序中奇怪的 OpenGL ES 行为

我正在为 iPhone 制作一个简单的 2D 游戏。它基于 CrashLanding。所以它基本上是一个背景纹理和一些移动的矩形纹理。

我有这个奇怪的小图形问题:一些小的 2d 项目(可以假设只是矩形)在它们上面有这个闪烁的小黑条(背景纹理几乎完全是白色的,所以小条很明显)。

我使用的纹理是小(~1Kb)png。

有没有其他人遇到过这个?这是一个常见的openGL问题吗?

顺便说一句,这发生在模拟器和实际设备上。

0 投票
2 回答
1471 浏览

抖动 gouraud 着色的顶点色多边形以去除条带

我在低分辨率嵌入式设备上使用OpenGL ES

我已经使用顶点着色将垂直颜色渐变应用到用作渲染场景背景的大多边形上。我可以在颜色渐变中看到清晰可见的条带伪影。

我的主要经验是使用软件渲染器。使用软件渲染器,通常会抖动掉马赫带和其他带状伪影。我们经常在渲染帧的量化步骤中执行此操作,其中浮点、高精度的颜色表示被转换为较低精度的输出(通常带有整数分量)。我们通过随机向上或向下舍入最终整数分量来实现抖动,以在图像中插入最微小的噪声,从而欺骗眼睛看到颜色之间的连续和平滑混合。

我的问题是我是否可以使用 OpenGL ES 来实现这一点?这种抖动是OpenGL管道的一部分,还是我应该跳过顶点着色并将渐变渲染到纹理并对其应用一些噪声?

0 投票
6 回答
65110 浏览

有没有办法将 3D 模型导入 Android?

是否可以创建一个简单的 3D 模型(例如在 3DS MAX 中)然后将其导入 Android?

0 投票
5 回答
3107 浏览

为什么我的 OpenGL ES iPhone 游戏在我第一次打开手机时会闪烁?

我使用 OpenGL ES 为 iPhone 制作了一个简单的游戏。除此问题外,一切正常:

我完全关闭手机,然后重新打开,然后启动我的应用程序,我得到了这个奇怪的闪烁!每隔一帧都是正确的……不正确的帧只是一遍又一遍的同一帧。如果我退出应用程序,再次启动它一切都很好。如果我连续退出并重新启动 10 次,那么每次都很好。

但是,如果我关闭手机,然后重新打开,然后启动应用程序,我会在第一次启动应用程序时得到同样的闪烁。

为什么会这样?!

有没有其他人有这个问题?

干杯!

0 投票
2 回答
8058 浏览

OpenGL ES 中的大滚动背景

我正在为 iPhone 开发 2D 滚动游戏。我有一个大的图像背景,比如 480×6000 像素,只有一部分是可见的(正好一个屏幕的价值,480×320 像素)。在屏幕上获得这样的背景的最佳方法是什么?

目前,我将背景拆分为多个纹理(以绕过最大纹理大小限制),并将每个帧中的整个背景绘制为带纹理的三角形条。滚动是通过平移模型视图矩阵来完成的。剪刀框设置为窗口大小,480×320 像素。这并不意味着要快,我只是想要一个工作代码,然后再进行优化。

我认为也许 OpenGL 实现足够聪明,可以丢弃背景的不可见部分,但根据我编写的一些测量代码,它看起来背景平均需要 7 毫秒来绘制,最多需要 84 毫秒。(这是在模拟器中测量的。)这大约是整个渲染循环的一半,即。对我来说很慢。

绘制背景应该像将一些 480×320 像素从 VRAM 的一部分复制到另一部分一样简单,或者换句话说,速度极快。接近这种性能的最佳方法是什么?

0 投票
8 回答
15278 浏览

在 OpenGL 中更改纹理不透明度

希望这是一个简单的问题:我有一个 OpenGL 纹理并且希望能够改变它的不透明度,我该怎么做?纹理已经有一个 alpha 通道并且混合效果很好,但我希望能够降低整个纹理的不透明度,使其淡入背景。我已经摆弄了glBlendFunc,但没有运气 - 似乎我需要类似的东西GL_SRC_ALPHA_MINUS_CONSTANT,这是不可用的。我正在使用 OpenGL ES 开发 iPhone。