我想用固定纹理对相机图像进行凹凸贴图...
我找到了以下帖子: Bump Mapping on the iPhone
关于一般凹凸贴图技术。但他们并没有真正的例子或教程如何去做。
现在,为了以防万一,有没有人知道如何在iphone上进行凹凸贴图或如何使用openGL修改iPhone Camera Feed的好教程?
PS:最后结束了不同的事情,即refracting my Image using the OpenGL ES 2.0 refract function。
答案 0 :(得分:1)
在回答您的评论,添加你需要使用AVFoundation,这是iOS中4,可用于获取从相机,你可以上传到OpenGL的像素数据的鲜活饲料引进的OpenGL特效相机输出作为一种纹理 - 允许你随后做任何你想做的事。
如果你能原谅我引用我已经在过去提供的答案,基本的东西开始接收合适的缓冲是here
您将在委托方法的辅助线程上收到CMSampleBuffers:
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
可以使用CMSampleBufferGetImageBuffer
获得CVImageBuffer,并从使用的组合CVPixelBufferLockBaseAddress
CVPixelBufferGetBaseAddress
,CVPixelBufferGetBytesPerRow
,以及可能的CVPixelBufferGetWidth
和CVPixelBufferGetHeight
得到像素的C数组。在我对面的iPhone 4和iPhone 3GS测试,缓冲区才不会回来了紧凑(因此,行之间没有填充),这意味着它可以立即上传的GL_BGRA,因为APPLE_texture_format_BGRA8888扩展支持所有iPhone手机日期。
从那里,你显然需要弄清楚如何在顶点和片段着色器方面做,这取决于你是否有一个正常的地图,那你真的想影响可见形状(和凹凸贴图,如果是的话,无论是顶点扰动或通过射线投射)或其他东西。