草庐IT

ios - 将 CIFilter 应用于 OpenGL 渲染到纹理

我正在尝试在我的全屏渲染输出上应用CoreImage过滤器,但看起来我遗漏了一些东西,因为我得到的是黑屏输出。首先我将整个场景绘制到纹理上。然后我从该纹理中创建CoreImage,我最终绘制并展示了它。但我得到的只是黑屏。我正在遵循Apple关于绘制到纹理以及将CoreImage与OpenGLES集成的指南:WWDC2012511和https://developer.apple.com/library/ios/documentation/3ddrawing/conceptual/opengles_programmingguide/WorkingwithEAGLContexts/Work

ios - 如何正确更新 OpenGL Es 2.0 中的顶点数组?

当我在iOS上使用OpenGL2.0更新我的顶点数组时,原始顶点数据保留在屏幕上——即第一次刷新是持久的(我发送到GPU的初始点集在每一帧都被渲染),但是第2、3、4、..第n次刷新似乎都覆盖了相同的内存。所以我在做:vectorrawDynamicData;glGenVertexArraysOES(1,&va);CHECK_GL;glBindVertexArrayOES(va);CHECK_GL;glGenBuffers(1,&vb);CHECK_GL;glBindBuffer(GL_ARRAY_BUFFER,vb);CHECK_GL;glBufferData(glBufferDat

iphone - 对于具有不同上下文的多个线程,OpenGL 线程安全吗?

我知道在线程之间共享单一上下文是个坏消息。我知道当主线程上的GL没有发生任何事情时,我可以在辅助线程上安全地创建和使用带有屏幕外帧缓冲区的上下文。对于我是否可以在两个不同的线程上安全地创建两个上下文(例如,一个主线程绘制到屏幕,一个辅助线程执行屏幕外绘制工作)的问题,我还没有找到明确的答案并让它们同时进行GL函数调用。换句话说,只要上下文不同,两个线程是否可以“共享”CAPI,从而共享GPU?或者这是天生不可共享的东西?或者这是特定于实现的?专门询问iOS上的OpenGLES,但这可能是一个一般的GL问题。 最佳答案 是的,您需要为

iphone - 将核心动画与 OpenGL ES 结合

编辑:我想除了下面的长篇解释之外,我可能还会问:将-setNeedsDisplay发送到CAEAGLLayer的实例不会导致要重绘的图层(即-drawInContext:未被调用)。相反,我收到此控制台消息::calling-displayhasnoeffect.有没有办法解决这个问题?我可以在调用-setNeedsDisplay时调用-drawInContext:吗?详细解释如下:我有一个OpenGL场景,我想使用CoreAnimation动画制作动画。按照在CALayer中为自定义属性设置动画的标准方法,我创建了CAEAGLLayer的子类,并在其中定义了一个属性sceneCent

android - 在 iOS 和 Android 上将(非交互式)动画(使用 Maya 制作)加载到 OpenGL ES 的推荐方法

到目前为止,我们已经能够将静态OBJ文件(转换为.h)成功加载到我们的OpenGL应用程序中。然后我们可以对这些对象应用变换,以便为它们设置动画。我们项目的下一步是让专业的3D动画师在Maya中制作动画,并创建一个“加载器”以使用OpenGL以3D形式显示它们。我们在网上找到了很多处理视频游戏和加载静态模型的示例,但是我们的动画绝对是由动画师预先定义的,我们只需要加载它们即可。重要的是要提一下我们不能将它渲染成oa视频,因为我们是在AR库的基础上构建它,它可以让用户真正地在动画中走动,这部分已经解决,我们只需要让动画渲染使用OpenGL。我调查了thisquestion关于动画师从Ma

ios - 将部分纹理( Sprite 表/纹理贴图)应用于 iOS OpenGL ES 2.0 中的点 Sprite

看起来这应该很容易,但我在使用带有点Sprite的部分纹理时遇到了很多困难。我在谷歌上广泛搜索并找到了各种答案,但没有一个能解决我遇到的具体问题。到目前为止我学到了什么:BasicsofpointspritedrawingHowtodealwithpointspritesrenderingassolidsquaresHowtoalterorientationofapointspriteHowtousemultipletextureswithapointsprite,越来越近了..之前已经做过sprites+spritesheets这一点,但只能在OpenGLES2.0(不是1.0)中实

iOS - 如何使用 openGL 绘制 YUV 图像

目前,我正在尝试使用openGL绘制图像(图像更新非常频繁,因此必须重新绘制)。以前,我将我的图像从YUV转换为RGB,然后使用这个新图像通过openGL进行绘制。一切正常,但转换过程不是特别快。我现在正尝试更改代码,以便在openGL着色器中处理转换。环顾四周后,我发现了一些代码片段(特别是着色器和我的大部分renderImage函数)帮助我获得了基线,但我似乎无法真正正确地绘制图像-我曾经看到的是黑色图像。我很可能遗漏了一些极其简单和重要的东西——我在openGL方面的经验相当有限。如果有人可以看一下,看看他们是否发现任何错误,请告诉我。我应该指出,我正在努力支持iOS4.x,所以

iphone - 如何在全屏 OpenGL ES 应用程序上显示 iPhone/iPad 键盘

我正在开发一款有时需要键盘输入的应用。我的应用程序使用OpenGLES进行显示,我有自己的图形框架可以显示文本字段,并且知道如何管理光标和呈现文本。此代码在其他具有物理键盘的平台上运行良好,例如Windows和OSX。要让我的应用程序的iOS版本正常工作,我需要的只是能够以编程方式上下移动键盘,并将用户的按键事件发送到我的View中,以便我可以将它们路由到我的框架自己的事件系统。我看到了thisquestion,但我无法使那里描述的解决方案起作用。不确定是因为我做错了什么,还是因为它不适用于当前的iOS版本。编辑:指出一个工作应用程序的源代码会很有帮助,该应用程序以编程方式创建任何UI

objective-c - 顶点数组对象 (VAO) 能否在 OpenGL ES 中的 EAGLContext 之间共享?

剧透:我相当有信心答案是NO,但这只是在经过一天非常沮丧的调试之后。现在我想知道情况是否确实如此(如果是这样,我怎么知道的),或者我是否只是在做一些完全错误的事情。情况是这样的。我正在使用OpenGLES2.0渲染我从各种文件(.obj、.md2等)加载的一些网格。为了性能和用户体验,我将这些网格及其相关纹理的实际加载委托(delegate)给使用GCD的后台线程。根据Apple'sinstructions,在每个后台线程上,我创建并设置了一个新的EAGLContext,它与主渲染上下文具有相同的shareGroup。这允许在后台线程上创建的OpenGL对象(如纹理和缓冲区对象)立即由

ios - iOS 中基于实时矢量的 OSM 渲染器(使用 OpenGL ES)

我正在研究一种解决方案,该解决方案将允许使用OpenStreetMap数据在iOS中渲染基于矢量的二维顶Viewmap,而不是使用来自服务器的预渲染图block。类似于iOS6+中的Apple和Googlemap。我对此事进行了广泛的研究,但没有找到太多信息。有许多iOS应用程序可以执行此操作,但没有关于它们如何实现的信息。其中一些应用程序是:ForeverMap2byskobblerGalileoOfflineMapsOffMaps2前2个应用程序的工作方式类似于Apple和Googlemap。每当缩放比例发生变化时,map都会实时绘制。最后一个似乎使用了稍微不同的方法。它以特定的缩