iPhone相机顶部的凹凸贴图

时间:2011-03-11 14:10:53

标签: iphone opengl-es camera

我想用固定纹理对相机图像进行凹凸贴图...

我找到了以下帖子: Bump Mapping on the iPhone

关于一般凹凸贴图技术。但他们并没有真正的例子或教程如何去做。

现在,为了以防万一,有没有人知道如何在iphone上进行凹凸贴图或如何使用openGL修改iPhone Camera Feed的好教程?

PS:最后结束了不同的事情,即refracting my Image using the OpenGL ES 2.0 refract function

1 个答案:

答案 0 :(得分:1)

在回答您的评论,添加你需要使用AVFoundation,这是iOS中4,可用于获取从相机,你可以上传到OpenGL的像素数据的鲜活饲料引进的OpenGL特效相机输出作为一种纹理 - 允许你随后做任何你想做的事。

如果你能原谅我引用我已经在过去提供的答案,基本的东西开始接收合适的缓冲是here

您将在委托方法的辅助线程上收到CMSampleBuffers:

- (void)captureOutput:(AVCaptureOutput *)captureOutput 
     didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
     fromConnection:(AVCaptureConnection *)connection

可以使用CMSampleBufferGetImageBuffer获得CVImageBuffer,并从使用的组合CVPixelBufferLockBaseAddress CVPixelBufferGetBaseAddressCVPixelBufferGetBytesPerRow,以及可能的CVPixelBufferGetWidthCVPixelBufferGetHeight得到像素的C数组。在我对面的iPhone 4和iPhone 3GS测试,缓冲区才不会回来了紧凑(因此,行之间没有填充),这意味着它可以立即上传的GL_BGRA,因为APPLE_texture_format_BGRA8888扩展支持所有iPhone手机日期。

从那里,你显然需要弄清楚如何在顶点和片段着色器方面做,这取决于你是否有一个正常的地图,那你真的想影响可见形状(和凹凸贴图,如果是的话,无论是顶点扰动或通过射线投射)或其他东西。