草庐IT

iphone - iOS OpenGL ES 2.0 : Offscreen render and save the result to an UIImage

我正在使用OpenGLES渲染一些特殊效果,我不想向用户展示这个,我只想将结果保存为UIImage,有人可以帮我吗?这是我正在使用的代码,我可以获得包含我使用的红色清晰颜色的图像,但没有显示几何图形。#import"RendererGL.h"#import#import#import#import#import#importstaticNSIntegerWIDTH_IN_PIXEL=400;staticNSIntegerHEIGHT_IN_PIXEL=300;typedefstruct{GLKVector3positionCoords;}SceneVertex;staticconstS

ios - Opengl ES 3.1 支持 ios 吗?

我对ios开发有点陌生,我想知道iOS是否支持新的opengGLES3.1?如果是这样,我在哪里下载图书馆? 最佳答案 目前没有。OpenGLES3.1是全新开发的。好消息是它主要是驱动程序改进(与3.0相比,需要2.0以上的新硬件)。糟糕的是,Apple有直接的竞争对手,并且可能希望保留OpenGLES3.1功能作为将游戏开发人员(和其他多媒体开发人员,并且计算并不真正限于游戏)推向他们的API的方式。此外,Apple目前没有任何OpenGLES3.1驱动程序(没有人有):http://www.khronos.org/confor

ios - 条件的 OpenGL ES 最佳实践

Apple在他们的着色器最佳实践中说到avoidbranching如果可能的话,尤其是对在着色器中计算的值进行分支。所以我用内置的clamp()函数替换了一些if语句。我的问题是,clamp()、min()和max()可能更高效,还是它们仅仅是方便(即宏)函数,可以简单地扩展到ifblock?我意识到答案可能取决于实现。在任何情况下,这些函数显然都更清晰并且明确了意图,编译器可以用它来做一些事情。 最佳答案 从历史上看,GPU支持按片段指令(例如MIN和MAX)的时间比它们支持任意条件分支的时间要长得多。桌面OpenGL中的一个示例

ios - 使用 OpenGL 的神秘应用程序崩溃

我正在使用GPUUIImage库来开发iOS相机应用。有时,当应用程序在2-3分钟后暂停时,Xcode让我在应用程序上崩溃,指向方法中的行:-(void)presentBufferForDisplay;{[self.contextpresentRenderbuffer:GL_RENDERBUFFER];}这次崩溃的原因可能是什么?我有一个很长的相机设置,代码本身在GPUImageContext类中。我在这里可能做错了什么? 最佳答案 当您的应用程序在后台运行(暂停)时,您根本无法访问OpenGLES。GPUImage对它所做的一切都

ios - 为 Retina 和非 Retina 显示器开发 OpenGL ES

在深入研究我的下一个项目之前,我正在寻求建议。我想支持iOS现在支持的所有各种分辨率(视网膜、非视网膜iPhone和所有3款iPad)。开发人员完成这项工作最常用的方法是什么?我看到过类似的问题,但具有特定的性质。我正在寻找完整的包裹。IE。我想支持不同分辨率的位图字体、图像等。是设备特定的开关,还是标准的if语句?感谢所有先进的帮助。E编辑:我从Apple找到了这个:BlockquoteIfyourapplicationusesOpenGLESforrendering,yourexistingdrawingcodeshouldcontinuetoworkwithoutanychang

iOS OpenGL ES 屏幕旋转,同时后台应用栏可见

我的应用使用GLKit通过OpenGLES渲染3D场景。除一件事外,一切正常。当我在iPad中启动我的应用程序并显示后台应用程序栏(双击“主页”按钮)然后更改设备的方向时,场景更新错误(最后渲染的图像只是拉伸(stretch)以填充新矩形)。我找到了原因。当后台应用程序栏出现时,GLKViewController'spaused自动设置为YES(应用程序委托(delegate)接收-applicationWillResignActive:)并且在此栏关闭之前不会进行渲染。我在Apple指南(OpenGLESProgrammingGuideforiOS/ImplementingaMult

ios - 为什么这个 OpenGL ES 2.0 着色器不能与我在 iOS 上的 VBO 一起使用?

如果有人能阐明这里出了什么问题,可能是gl命令顺序错误或其他一些不兼容的命令序列,我将非常感谢您的帮助。尽管谷歌进行了大量研究并仔细研究了“OpenGLES2.0编程指南”中的示例,但我一整天都在尝试让这段代码正常工作,但没有成功。我正在尝试在iPhone上的OpenGLES2.0中使用顶点缓冲区对象和自定义着色器。我正在尝试交错来自以下类型的一系列自定义结构的顶点数据:typedefstruct{floatx,y;//Position.floatradius;floatcolR,colG,colB,colA;//Colorrgbacomponents.}VType;顶点位置、点大小和

ios - OpenGL ES 异步纹理加载

简单的问题,是否可以使用iOS和OpenGLES异步加载纹理?这是我的加载方法,在单独的线程上调用://ImagesizeGLuintwidth=CGImageGetWidth(image.CGImage);GLuintheight=CGImageGetHeight(image.CGImage);//Createcontextvoid*imageData=malloc(height*width*4);CGColorSpaceRefcolorSpace=CGColorSpaceCreateDeviceRGB();CGContextRefcontext=CGBitmapContextCre

ios - iOS 上 OpenGL ES 2.0 中的浮点纹理,无需将它们限制为 [0, 1]

我需要gl_FragColor来“绘制”浮点值,它也可以是负数(x1.0。然后我想使用FBO的颜色附件,这个值渲染到并将它用作另一个FBO中的纹理。现在我已经阅读了http://www.khronos.org/opengles/sdk/docs/man/(在glTexImage2D下)所有值都限制在[0,1]范围内,而且我没有找到glClampColor指令。是否有可能在这里找到解决方法,或者有人有想法可以帮助我解决我的问题?:)已解决当使用浮点纹理时,这是可能的,并且值根本不会限制在[0,1],但它仅在使用GL_HALF_FLOAT_OES作为纹理的内部格式时才有效。改为使用GL_F

objective-c - 使用 OpenGL-ES 在 iOS 上播放视频

我尝试在iOS上播放视频(MP4/H.263),但结果非常模糊。这是初始化Assets阅读的代码:mTextureHandle=[selfcreateTexture:CGSizeMake(400,400)];NSURL*url=[NSURLfileURLWithPath:file];mAsset=[[AVURLAssetalloc]initWithURL:urloptions:NULL];NSArray*tracks=[mAssettracksWithMediaType:AVMediaTypeVideo];mTrack=[tracksobjectAtIndex:0];NSLog(@"T