2011-03-11 60 views
0

顶我想用一个固定的纹理摄像机的图像凹凸映射...凹凸贴图上的iPhone相机

我发现下面的线索: Bump Mapping on the iPhone

上一般凹凸映射技术。但他们没有真正的例子或教程来说明如何去做。

现在,以防万一,有谁知道如何在iPhone上凹凸贴图或如何修改与iPhone的iPhone相机饲料好教程? PS:最后最后做了一些不同的事情,即refracting my Image using the OpenGL ES 2.0 refract function

+2

人们倾向于相当松散地使用这个术语 - 你对凹凸贴图的定义是什么?例如,你是否肯定询问一些不能用作普通地图的东西? – Tommy 2011-03-11 16:00:13

+0

嗯,我想我自己想到了整个凹凸贴图,但是iPhone iPhone 3D编程虽然有帮助。现在更大的问题是如何将OpenGL效果添加到相机输出。 – Bersaelor 2011-03-15 13:20:34

回答

1

响应您的评论,要将OpenGL效果添加到相机输出中,您需要使用iOS 4中引入的AVFoundation。可用于从相机获取像素数据的实时提要,您可以将其上传到OpenGL作为一种纹理 - 允许你随后做任何你想做的事情。

如果你会原谅我参考我过去提供的答案,那么开始接收合适缓冲区的基本内容是here

你会在辅助线程收到您的委托方法CMSampleBuffers:

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

您可以使用CMSampleBufferGetImageBuffer获得CVImageBuffer和使用的CVPixelBufferLockBaseAddressCVPixelBufferGetBaseAddressCVPixelBufferGetBytesPerRow组合,并可能CVPixelBufferGetWidthCVPixelBufferGetHeight得到像素的C数组。在我对iPhone 4和iPhone 3GS进行测试时,缓冲区只能回到紧密排列的状态(所以在行之间没有填充),这意味着它可以立即作为GL_BGRA上传,因为所有iPhone支持APPLE_texture_format_BGRA8888扩展名日期。

从那里你很明显需要弄清楚在顶点和片段着色器方面要做什么,这取决于你是否有一个法线贴图,你实际上想要影响可见形状的凹凸贴图(如果是的话,是否通过顶点扰动或光线投射)或其他。