问题标签 [glkview]

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 回答
392 浏览

objective-c - 将多个简单的 OpenGL 立方体添加到一个上下文并为各个立方体设置透视图

我有几个立方体形状的对象,我添加到一个上下文中,它在我的 GLKView 中。每一个立方体都是 NSObject 的一个子类,并且分别有自己的基础效果。我为每个立方体设置了投影矩阵和基础效果,如下所示:

现在,似乎所有人都有一个连接的投影。我想从前面看到他们所有人。但是,如果我将它们放置一点,那么我可以看到立方体的底部或顶部。

关于上面代码行的另一件事:我必须沿着 z 轴稍微移动我的模型视图矩阵以正确地构图它们。我不能将投影矩阵向后移动一点吗?我尝试了几个值,但无济于事。

容器设置如下所示:

- (void)glkView:drawInRect:方法中的立方体数组中,我使添加到数组中的所有立方体都执行它们的-draw方法:

有人可以阐明这个问题吗?

0 投票
0 回答
155 浏览

ios - 在 ios 上并排显示 2 个 OpenGLES 视图

我是 ios 上的 opengl 编程新手。所以我从 Xcode 中的 opegles 游戏模板开始。照原样工作。但是,我一直在努力并排设置两个 opengles 视图。这是我的实现。

ViewController 派生自 GLKViewController。我目前正在使用一种非常粗糙的方式在 VC 中并排放置两个视图,如下所示:

当我在 iPad 上运行此代码时,当调用 glkView:(GLKView*) drawInRect:(CGRect) 时出现此错误:OpenGLGame[1183:907] 无法制作完整的帧缓冲区对象 8cd6。

第一个视图正确显示,但全屏显示。

有人可以帮我弄清楚我在这里缺少什么吗?

谢谢

0 投票
3 回答
1572 浏览

ios - GLKit 的 -drawRect: 在屏幕旋转期间不被调用

我有GLKit基于应用程序的应用程序,其中显示了一些简单的对象。

一切正常,除了屏幕旋转,在此期间GLKView不更新(-drawRect:不调用)。因此,在旋转期间,投影矩阵不会根据动态变化的屏幕尺寸进行更新,并且对象看起来很糟糕(拉伸)。

0 投票
1 回答
2609 浏览

objective-c - 将 GLKViewController 添加到子视图 - GLKView 上下文导致崩溃

我有一个非常简单的设置,有一个 mainViewController,上面有一个 GLKViewController。这个想法是将我的 GLKViewController 放在一个盒子里,占据屏幕的 1/3,在 mainViewController 上。这可以在下面看到:

在此处输入图像描述

那个白框是我自己的自定义 GLKViewController ,代码如下:

boxViewController.h

boxViewController.m

在我mainViewController的中,viewDidLoad我只是像这样调用 boxViewController:

效果很好。

请注意,在我的 boxViewController.m 中,我已经view.context = self.context注释掉了。如果您取消注释它,我的应用程序将崩溃而没有任何错误消息(它EXC_BAD_ACCESSobjc_msgSend汇编代码中以 a 中断 [具体为第 8 行])。

当我设置应用程序崩溃的上下文时,我做错了什么?从所有教程中,我注意到它们具有相同的设置,除了没有将控制器设置在另一个控制器上。虽然我不明白为什么 GLKViewController 不能被框架在另一个控制器上,所以我认为这不是问题。

0 投票
1 回答
1950 浏览

iphone - 如何使用 UIViewController - IOS 在 GLKView 上显示 UIButton?

我是 OpenGL 的新手,我一直试图在 GLKView 上显示一个按钮,但没有显示按钮。这是我所做的...

编辑:

我创建了一个 UIViewController,将一个 GLKView 作为子视图添加到 self.view,除上述问题外一切正常(glkview 上未显示 UI 按钮)。任何想法如何做到这一点。

0 投票
1 回答
1543 浏览

nested - GLKView 嵌套子视图帧大小和边界大小不正确

这是我编写的示例“GLKView Subview”应用程序,基于 Xcode 4.5 中的 OpenGL 游戏示例项目。它创建一个 GLKView 子视图,其委托设置为文件所有者的 GLKViewController,以便两个 OpenGL ES 2 视图都由一个控制器控制:

http://dh.st/7R1

这是一个屏幕截图,我将子视图的背景染成红色以进行对比:

http://dh.st/om4

我很高兴我有一种直接的方法可以在一个 GLKViewController 和 EAGLContext 下添加多个 GLKView(用于共享纹理等),直到我意识到帧大小被打破:

使用 iPhone 4" Retina 在 iOS 模拟器中的输出:

子视图的框架应该是 {100, 100} 但由于某种原因它会出现在 {248, 100}。我已经尝试了我能想到的一切,甚至将它嵌入到 UIView 中,认为如果主 GLKView 是它的父级,它的自动调整大小约束可能设置错误。如您所见,UIView 的大小是正确的,但子 GLKView 的大小是不正确的。

作为开发人员,这似乎是首先要尝试的事情,但苹果通常有其他想法。如果没有自动调整大小,GLKView 对适用于任何设备尺寸的自由格式布局毫无用处。

我设法让多个 GLKViewControllers 共享一个 EAGLContext 作为不同项目中的子控制器。但我不明白为什么每次我们想向屏幕添加 GLKView 时,我们都必须背负创建 GLKViewController 的包袱。我的猜测是,当 GLKViewController 是不是它自己的视图的 GLKView 的委托时,它会感到困惑。

我还设法通过使用 glViewport() 手动使我的视图工作,并且在因 GLKView 问题而失去两天后,我可能会建议任何阅读这篇文章的人走这条路(也获得跨平台优势)。

我希望有一个简单的解释/修复,即使它只是“你必须为每个 GLKView 制作一个 GLKViewController”。提前感谢任何设法让它工作的人。如果没有,也许这个错误功能的一个例子会对某人有所帮助。

0 投票
1 回答
85 浏览

iphone - glDrawArray 是动态顶点的首选方式吗?

我目前正在使用 glDrawElements 来渲染一个网格(地形),它可能会偶尔对其进行更新(地形变形)。想知道我是否应该在技术上使用 glDrawArrays 代替?

0 投票
1 回答
2169 浏览

iphone - glkview drawinrect 委托方法只调用一次

我正在尝试将 GLKViewController 添加到我的 UserInterfaceViewController。我正在使用 raywenderlich 教程中的示例项目(http://www.raywenderlich.com/5235/beginning-opengl-es-2-0-with-glkit-part-2

这是我的代码片段

上面的代码在我期望的提到的框架中的我的 UserInterfaceViewController 视图中绘制上下文。HelloGLKitViewController 有代码在 GLKViewControllerDelegate 方法“更新”中旋转立方体,如下所示。但是当 HelloGLKitViewController 视图到我的 UserInterfaceViewController 视图时,GLKViewControllerDelegate 没有被调用.

我应该怎么做才能调用 GLKViewControllerDelegate 更新方法。

0 投票
1 回答
716 浏览

iphone - 如何增加立方体的大小-openGL

我正在尝试显示多维数据集并旋转它。我已成功执行此glkview drawinrect 委托方法,仅调用一次

我已经从这里获取代码来设置立方体http://www.raywenderlich.com/5235/beginning-opengl-es-2-0-with-glkit-part-2我在上面引用的链接中提到过。

现在我的问题是我想增加我的立方体的大小。

这是使我的代码旋转的代码。

有人可以指导我如何增加我的立方体吗?提前致谢。

0 投票
1 回答
781 浏览

c# - 子视图中的 Xamarin.iOS Sprite 动画

子视图中的 Xamarin Sprite 动画

我正在尝试使用 Xamarin 而不是 MonoGame 来渲染精灵。我想完整地描述我的情况,以帮助为我的问题提供一些背景信息。我想使用 UIViewController 在窗口上显示两个 UIView。一个 UIView,即 UIView A,将直接位于屏幕上第二个 UIView B 的上方,而不是覆盖它。UIView B 将强制一个事件在 UIView A 上渲染一个精灵。目前我有这个事件被 UIViewController 捕获并且控制器将事件抛出到 UIView A。我不知道如何渲染精灵在 UIView A 中。我做了大量的研究并提出了一些解决方案,但我都无法成功地工作。我将列出我找到的解决方案。我按照我更愿意尝试的顺序排列它们。

解决方案#1:GLKView 我发现很多人在使用 CoreAnimation 时会遇到动画延迟的问题。在 Objective-C 中,在 iOS 上,推荐使用 GLKView。我找不到这在 Xamarin 中是如何工作的。我找到了关于如何在 UIViewController 中启动 GLKView 的 Objective-C 示例,但都不是非常详细。没有明确说明如何设置委托函数来处理屏幕绘制。这也没有解释如何处理从精灵表中提取图像。

解决方案#2:Cocos2D 我发现许多iOS 2D 游戏都是使用Cocos2D 构建的,因为它能够轻松渲染精灵。我发现在 iOS 上的 Objective-C 中,你可以加载一个 UIView,它是一个 Cocos2D 视图。我知道人们已经使用 Xamarin 构建了 Cocos2D 游戏。但是,我还没有找到如何在 Xamarin 中执行此操作的可靠示例。

解决方案#3:UIImageView 我找到了如何使用 UIImageView 完成简单精灵动画的示例,位于:http: //docs.xamarin.com/recipes/ios/standard_controls/image_view/animate_an_imageview。但是,该示例加载了多个唯一图像,而不是从单个精灵表中提取的图像。我试图找到一个 Objective-C 示例和所有使用 Xamarin 中不存在的 GCImageRef 类的示例。该示例位于此处:如何将大精灵 png 切割成较小的 UIImages?.

我确信可能存在我尚未找到的其他解决方案,但我想要一些关于我应该采取什么解决方案的输入和示例。

谢谢,罗伯特