草庐IT

iphone - 来自相机的 AVCaptureSession CVImageBufferRef 上的图层 OpenGL 内容

我现在想合并两个成功的概念。我成功地将CATextLayer分层到CVImageBufferRef相机框架上,然后使用AVAssetWriterInputPixelBufferAdaptor通过AVAssetWriter保存它.我这样做:-(void)processNewBuffer:(CVImageBufferRef)cameraFrame{NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];//////updateCALayeronmainqueue////UIKitisnotthreadsafedispatch_sync(d

ios - 多重纹理的最有效方法-iOS,OpenGL ES2,优化

我正在尝试找到在iOS上的OpenGLES2中处理多重纹理的最有效方法。“高效”是指即使在较旧的iOS设备(iPhone4及更高版本)上最快的渲染速度,但也兼顾了便利性。我考虑(并尝试)了几种不同的方法。但是遇到了一些问题。方法1-我的基本和正常值为rgb,没有ALPHA。对于这些对象,我不需要透明度。我的发射和镜面信息分别只是一个channel。为了减少texture2D()调用,我认为我可以将发射存储为基准的Alphachannel,将镜面反射存储为法线的Alpha。每个文件都保存在自己的文件中,如下所示:到目前为止,我的问题是找到一种文件格式,该格式将支持完整的非预乘alphac

cocoa-touch - 来自 CALayer (AVPlayerLayer) 的 OpenGL 纹理

我有一个AVPlayerLayer,我想从中创建一个OpenGL纹理。我对opengl纹理很满意,甚至对将CGImageRef转换为opengl纹理也很满意。在我看来,下面的代码应该可以工作,但我得到的只是纯黑色。我究竟做错了什么?我需要先在CALayer/AVPlayerLayer上设置任何属性吗?CGColorSpaceRefcolorSpace=CGColorSpaceCreateDeviceRGB();intwidth=(int)[layerbounds].size.width;intheight=(int)[layerbounds].size.height;CGContext

ios - OpenCV:旋转/平移向量到 OpenGL 模型 View 矩阵

我正在尝试使用OpenCV来做一些基本的增强现实。我要解决的方法是使用findChessboardCorners从相机图像中获取一组点。然后,我沿z=0平面创建一个3D四边形,并使用solvePnP获得成像点和平面点之间的单应性。据此,我认为我应该能够设置一个模型View矩阵,它允许我在图像顶部渲染一个具有正确姿势的立方体。documentationforsolvePnP表示它输出一个旋转矢量“(与[平移矢量]一起)将模型坐标系中的点带到相机坐标系中。”我认为这与我想要的相反;因为我的四边形在平面z=0上,所以我想要一个模型View矩阵,它将那个四边形转换为适当的3D平面。我认为通过以

ios - 使用 OpenGL 自定义 iOS 界面方向更改动画

我有一个iPad应用程序,正在使用openGL绘制主视图,我想在设备旋转时为自己的更改设置动画。请注意,此应用程序只是偶尔绘制,而不是持续动画。我的场景也是(非常复杂的)2D绘图,而不是3D。我只是希望它在设备方向更改期间简单地围绕显示中心旋转,保持正确的纵横比。目前我只有以下代码:-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationduration:(NSTimeInterval)duration{//nothingyet}-(void)didRotateFromI

ios - 多个 OpenGL View (Cocos2D)

注意:任何可以帮助我完全解决此问题的人都将获得100点赏金!!!在我的应用程序中,我将UIKit与Cocos2D混合在一起,我使用addSubview和removeFromSuperview调用做了一些简单的自定义View动画。我最近需要在我的应用程序中添加另一个CCScene,以摆脱Cocos2D可以轻松处理的一些复杂的UIKit代码。所以我的应用程序中有一个基本View,它是一个带有一些按钮的UIViewController。在这些按钮的后面是一个CCGLView,Cocos2D将在其上执行任何操作。效果很好。然后当我想转到我的第二个ViewController(我们称之为我的游戏

ios - 使用 OpenGL ES 2.0 着色器的平滑纹理线

我们有一个iOS绘图应用程序。目前,绘图是使用OpenGLES1.1实现的。我们使用一些算法来平滑贝塞尔曲线等线条。因此,当触摸事件发生时,我们从触摸事件点(基于算法)中得到一些点集并绘制这些点。我们还为点使用笔刷纹理,以获得更自然的外观。我想知道是否可以在OpenGLES2.0着色器中实现这些算法。类似于调用OpenGL函数来绘制由触摸点组成的线条,并在输出时呈现平滑的画笔纹理曲线。这里的点P0、P1、...P4是触摸事件和红色曲线上的点-输出点,T的步长使得曲线上两个相邻点之间的距离不大于1个像素。这里是贝塞尔算法解释的链接:Béziercurve-Wikipedia,thefre

ios - 在 iOS 上将 CIImage 渲染为 OpenGL ES 2.0 纹理

有人知道如何通过drawImage:inRect:fromRect:从iOS上的EAGLCIContext将CIImage直接渲染到OpenGLES2.0纹理中吗?通过createCGImage:fromRect:通过普通CIContext进行渲染,然后通过GLKTextureLoader加载图像对我来说太慢了。 最佳答案 有一个Wwdcsession恰好涵盖了这一点。2012Session511(接近尾声)。基本上你想要做的是:-创建输出纹理-使输出纹理成为帧缓冲区的目标-绑定(bind)纹理帧缓冲区作为输出而不是屏幕-现在使用d

ios - 如何使用 OpenGL 避免透明度重叠?

我正在iOS上开发手写应用程序。我从iOS文档中找到了由OpenGLES实现的示例项目“GLPaint”,并对其进行了一些修改。我跟踪触摸点并计算点之间的曲线,并单独绘制粒子图像曲线,使其看起来像手指经过的地方。glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,width,height,0,GL_RGBA,GL_UNSIGNED_BYTE,brushData);//burshDataisfromCGImage,itis//vertexBu

objective-c - 使用 opengl View 时出现 "renderincontext"问题

我有一个关于openGLView的问题。我有两个openGLView。第二个View作为subview添加到主视图。这两个openglView是在两个不同的opengl上下文中绘制的。我需要用两个openglView捕获屏幕。问题是,如果我尝试在如下上下文中渲染一个CAEAGLLayer:CGContextRefcontext=UIGraphicsGetCurrentContext();CGContextTranslateCTM(context,1*(self.frame.size.width*0.5),1*(self.frame.size.height*0.5));CGContext