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

iphone - 为什么在 iPhone 应用程序中调用 glMatrixMode(GL_PROJECTION) 会给我 EXC_BAD_ACCESS?

我有一个 iphone 应用程序,我在 appDidFinishLaunching 中调用这三个函数:

当我使用调试器单步执行时,我在执行第一行时得到 EXC BAD ACCESS。任何想法为什么会发生这种情况?

顺便说一句,我有另一个应用程序,我做同样的事情,它工作正常。因此,我尝试复制该应用程序中的所有内容(#imports、添加 OpenGLES 框架等),但现在我被卡住了。

0 投票
1 回答
1201 浏览

opengl-es - 在 OpenGL ES 1.x 中使用顶点缓冲区对象时可以使用索引图元吗?

我有一个包含顶点列表的数组,我使用顶点缓冲区对象将其复制到 GPU。然而,顶点坐标本身是没有意义的,因为我还有一个整数数组,其中包含顶点数组的索引列表。

在这种情况下,可以创建另一个缓冲区对象来存储索引,然后在渲染函数中绑定顶点数组和索引数组以进行绘图:

我已经阅读了 api 并且以下内容使我感到困惑:
“虽然非零缓冲区对象绑定到 GL_ELEMENT_ARRAY_BUFFER 目标,但 glDrawElements 的索引参数传统上被解释为指向客户端内存的指针,而被解释为内部的偏移量以基本机器单位测量的缓冲对象。”

我对图形编程很陌生,所以如果其中任何一个没有意义,我深表歉意。

0 投票
2 回答
6288 浏览

iphone - OpenGL-ES 的“输入”和“输出”是什么?(从 OpenGL 移植)

似乎我能找到的所有关于 OpenGL-ES 的文档都说“OpenGL-ES 就像 OpenGL,但没有很多东西。例如,没有 glBegin 或 glEnd”。

太棒了。那么,还有什么 ELSE 没有的呢?或者有什么清单?或者也许是移植指南?

(具体来说,我正在尝试将现有的 GL 应用程序移至 iPhone,尽管我不想将 Q 限制在 iPhone 上。)

0 投票
5 回答
4963 浏览

iphone - OpenGL:如何实现“橡皮擦”工具?

我正在为 iPhone 开发一款涉及绘图/绘画机制的游戏,我在尝试创建一个可以擦除已经绘制的东西的工具时遇到了问题。

主要问题是绘制的背景不是纯色,而是静态图像或动画。我尝试在绘图中使用不同的混合选项和逻辑操作,但似乎没有任何效果。我是 OpenGL 的新手,所以我一定遗漏了一些东西。

有小费吗?

编辑:为了提供更多信息,我正在为我的画笔使用纹理并使用 glVertexPointer() 和 glDrawArrays() 来渲染它们。例如:

编辑 2:不幸的是,iPhone 上没有模板缓冲区。: (

编辑 3:iPhone 上提供了 Framebuffer 对象,这就是我所走的路。我还没有完全实现它,但到目前为止它看起来就像我想要的那样工作。谢谢大家!

0 投票
1 回答
2011 浏览

iphone - 在简单的 iPhone 游戏中重新显示 EAGLView

我正在开发一个基于开发人员中心的 CrashLanding 示例的非常简单的 iPhone 游戏。我对它进行了一些扩展,以便我没有一直使用 OpenGL 进行显示,而是将一个普通的 UIView 作为标题屏幕,一个 UITableView 用于高分屏幕,一个未修改的 EAGLView 用于游戏屏幕。

因此,除了当我尝试重新显示 EAGLView 时屏幕停止更新之外,所有设置都可以正常工作。我有一个游戏循环,当屏幕显示和隐藏时开始和停止,我最初认为这不是重新启动,而是通过调试看起来一切都很好的应用程序。然后我想也许我需要在重新显示 OpenGL 表面时重新创建它,所以我这样做了,屏幕从全黑变成全粉红色。

我正在使用 UINavigationController 来处理视图之间的移动。从根视图控制器(标题屏幕)转到 EAGLView(游戏屏幕)然后返回根视图控制器并再次进入游戏屏幕后会发生错误。

任何信息/帮助将不胜感激!

0 投票
4 回答
6110 浏览

iphone - OpenGL ES 中的自定义视图转换

我正在尝试创建一个自定义转换,以替代您将在此处获得的默认转换,例如:

我准备了一个基于 OpenGL 的视图,它对映射到平面的一些静态纹理执行效果(假设它是核心动画中翻转效果的副本)。我不知道该怎么做是:

  • 抓取当前视图内容并从中制作纹理(我记得看到一个功能可以做到这一点,但找不到它)
  • 如何对当前不在屏幕上并将替换当前视图的视图执行相同的操作
  • 是否有一些我可以连接的 API 以使我的转换类尽可能地原生(使其成为一种核心动画效果)?

非常感谢任何想法或链接!

更新

Jeffrey Forbes 的答案非常适合作为捕获视图内容的解决方案。

我还没有弄清楚的是如何捕获我想要转换到的视图的内容,在转换完成之前应该是不可见的。

另外,我应该使用哪种方法来呈现 OpenGL 视图?出于演示目的,我使用了 pushViewController。但是,这会影响导航栏,我实际上想用动画返回一个项目,请查看此视频以获取解释:

http://vimeo.com/4649397

另一种选择是使用 presentViewController,但会显示全屏。您认为创建另一个窗口(或视图?)可能有用吗?

0 投票
3 回答
8450 浏览

opengl-es - opengl:如何避免纹理缩放

如何应用始终保持其原始比例的重复纹理(纹理中的 1 个像素 = 屏幕上的 1 个像素),而不管应用的顶点数据如何。

我意识到这不是最常见的任务,但是否可以轻松设置 opengl 来执行此操作,或者我是否需要对尊重其原始外观的顶点数据应用某种掩码?

编辑:在我的具体情况下,我正在尝试使用相同的像素模式绘制不同大小的 2D 椭圆。椭圆是由三角形扇形制成的,我很难在上面画出任何类型的重复纹理。我希望有一些 opengl 配置组合可以轻松地做到这一点。另外,现在我意识到重要的是要提到我正在为 iphone 使用 opengles,因此 GLU 不可用。

0 投票
3 回答
2636 浏览

iphone - 如何从我的 EAGLLayer 中获取图像?

我正在寻找方法来获取我的 opengl(作为 UIImage)的内容,然后将其保存到文件中。我现在正在尝试 glReadPixels,尽管我不确定我是否在做正确的事情,我应该做什么样的 malloc。我收集到在 OSX 上它是 GL_BGRA 但在 iPhone 上不起作用......

0 投票
3 回答
8982 浏览

iphone - 如何为 iPhone OpenGL ES 渲染交互式地球/地球?

我正在寻找一个可以呈现类似于Smule产品中的交互式地球的示例。

0 投票
1 回答
2814 浏览

opengl-es - 使用 OpenGL 的 2D 游戏中的 3D 效果

我正在使用 OpenGL ES 开发 2D 游戏。我正在使用正交投影,因为它使 2D 的东西变得容易。现在我想创建一个简单的 3D 效果,比如围绕 Y 轴旋转一个精灵(类似于封面流)。如果我理解正确,这不能在正射投影中完成。是否可以在不弄乱其余代码的情况下做到这一点?就像在帧中间切换投影,把当前帧图像当作背景,在背景之上绘制3D的东西?