问题标签 [glkit]

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 投票
2 回答
541 浏览

xcode - 一些(随机)纹理在 OpenGL 中颠倒渲染?

我在 Objective-C 中使用 GLKit (OpenGL ES2) 来制作 iPhone 游戏。

我在这方面没有太多经验,所以如果我做错了什么,我不会感到惊讶,但我正在生成一堆对象,它们几乎都是一样的。事实上,我为它们使用了一个类,只是制作了更多类的实例来创建更多对象,但不知何故,有些对象的纹理映射颠倒了。

我根本看不出这是怎么可能的,因为它是用于所有对象的相同代码,其中一些是正确的,而有些则不是。

任何帮助/想法将不胜感激。

0 投票
1 回答
546 浏览

ios - GLKit 内存泄漏 copywithZone

当我循环遍历一个数组并绘制一些简单的立方体对象时,针对我正在编写的游戏运行仪器实用程序会显示一堆与使用 Zone 进行复制相关的内存泄漏。

由于我是 OpenGL 编程的新手,因此我不确定跟踪此问题的最佳方法。我的程序正在使用 ARC,并设置为为 IOS 5 构建。我正在初始化 GLKit 以使用 OPenGl 2.0 并使用 BafeEffect,因此我不必编写自己的着色器等。这不应该是火箭科学。我猜我一定没有在绘图功能中释放一些东西。下面是我的绘图功能的代码。你们能看看有没有什么突出的问题?

要注意的另一件事是我使用了 15 种不同的纹理,立方体可以是 15 种不同的纹理中的一种。我在纹理的立方体类上设置了一个属性,并在我在那里创建立方体时设置它。但是当我的程序视图加载开始时,我确实加载了所有 15 个。它们是小的 .jps 文件,每个文件小于 7​​5k,每个立方体都使用相同的纹理,所以应该不是太大的问题。

这是我的绘图功能的代码:

0 投票
0 回答
159 浏览

iphone - iOS 在 GLKit 游戏的方向旋转时缺少 touchesEnded 事件

我正在使用 GLKitViewController 制作 iOS 游戏,并且我支持 LandscapeLeft 和 LandscapeRight。如果我在旋转设备时将手指放在屏幕上并在播放旋转动画时将其从屏幕上松开,则我永远不会收到该触摸的 touchesEnded 事件。

我想这是因为它在旋转动画时没有更新我的应用程序,所以事件没有被调度。但是,我不确定处理此问题的最佳解决方案是什么。

任何建议将不胜感激!

谢谢!

0 投票
1 回答
761 浏览

ios - GLKit:[绘制像素] 初始化 GLfloat 数组

我正在使用 GLKit 绘制像素。如果我有,我可以成功地在 (10, 10) 坐标处绘制像素:

但是我想在运行时决定要绘制像素的数量和确切位置,所以我尝试了这个,但它在 (10, 0) 处绘制像素,这里出了点问题:

请帮帮我。

编辑: 问题 实际上问题是:我不知道有什么区别:

0 投票
1 回答
1873 浏览

ios - OpenGL Es 2.0 GLKit 绘制像素

我需要一点帮助来在屏幕上绘制像素。我编写的代码在模拟器上运行良好,但是当我在设备上部署时它会输出垃圾。所以这是我的代码:

我有 GLKViewController 设置,这是 viewDidLoad:

这是我绘制点/像素的地方:

当我在模拟器上运行时,它工作正常,即相应地绘制像素,但是当我在 iPod4 上部署时,它显示一些垃圾。我是初学者,所以需要帮助来显示简单的像素。

0 投票
1 回答
2407 浏览

ios5 - GLKit:使用 GL_POINTS 绘制点

我正在使用 GLKit 选择 opengl es 2.0。我可以成功地绘制正方形、三角形、立方体等形状。

我在绘制点时遇到问题,这是我的代码在设备(iPod 4)上不起作用,尽管我可以在视网膜模拟器中看到点/点。

这是我的更新方法,仅供参考:

以下是我如何定义效果:

这样这些点在白色背景上可见。

有人可以指出这段代码中的任何缺陷吗?我不确定为什么它没有显示在设备上,因为三角形、正方形和立方体都可见。任何帮助表示赞赏。

编辑:

我以前没有使用过着色器,所以这是我第一次。正如本提到的示例代码。这就是我现在正在做的事情:

我有VertexShader.glslFragmentShader.glsl文件:

顶点着色器.glsl

片段着色器.glsl

我在创建效果之前和设置 EAGLContext 之后设置着色器:

这里是 createShaderWithFile 方法:

我还更新了上面的 drawRect 方法。

这是该项目的链接:http: //dl.dropbox.com/u/36638938/Template.zip

0 投票
1 回答
630 浏览

objective-c - 如何使用 GLKMatrixStack?

我正在编写一个在屏幕上绘制许多立方体的 iOS 游戏,但我在定位立方体时遇到了问题。

我有一个draw_voxel绘制立方体的函数:

我通过它 a GLKMatrixStackRef,将当前矩阵推到顶部并用于GLKMatrixStackTranslate转换顶部矩阵。但是,所有立方体仍然在 (0, 0, 0) 处绘制。

draw_voxel这样称呼:

我在互联网上找不到任何关于 GLKit 矩阵堆栈的有用信息,我真的被困住了。如何“应用”顶部矩阵以便平移立方体?

0 投票
1 回答
648 浏览

ios - 如何在 GLKit for iOS 中使用 VBO?

我正在使用 GLKit(OpenGL ES 2)为 iOS 制作游戏,并且想使用 VBO 和 VAO,因为我认为它们会大大提高性能(当我在其中测试我的应用程序时,Instruments 会推荐它)。

我有很多纹理对象实际上不会改变位置、大小、纹理等,所以我认为 VBO 会有所帮助。

目前我正在使用 GLKVector2 数组来存储顶点和纹理坐标数据,我不太确定如何从这里转到 VBO。

有人能帮忙吗?

干杯,尼克。

0 投票
1 回答
1720 浏览

iphone - GLKViewControllerDelegate 被阻止

我有一个 GLKViewController 来处理一些 OpenGL 绘图。我已经实现了glkView:drawInRectandupdate方法并将preferredFramesPerSecond属性设置为 30(默认值)。

问题是当用户与应用程序的其他部分交互时,委托方法停止触发。我见过发生这种情况的两种情况是用户滚动 UITableView 或与 MKMapView 交互时。

有没有办法确保这些代表总是触发,而不管应用程序的其余部分在做什么。我希望这些停止的唯一时间是应用程序进入后台时(这是自动执行的)。

0 投票
1 回答
707 浏览

iphone - 使用 OpenGL 和 GLKit 的基于图块的游戏性能低下

我将 openGL 与 GLKit 一起使用来制作基于图块的游戏。在游戏中,屏幕中放置了大约 1024 个图块,问题是我每次调用 drawInRect 时都在渲染图块,并且性能损失非常大。

这就是我的渲染方式(tilesArray 是静态的,ballsArray 在屏幕上移动):

正如我所说,tilesArray 在屏幕中是静态的,但 ballsArray 在屏幕上移动得非常快(每次更新)。如果我只放球,它会非常快,如果我添加瓷砖,它会非常慢(仅在模拟器中尝试过)

这就是我渲染的方式: