2011-03-11 58 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擴展名日期。

從那裏你很明顯需要弄清楚在頂點和片段着色器方面要做什麼,這取決於你是否有一個法線貼圖,你實際上想要影響可見形狀的凹凸貼圖(如果是的話,是否通過頂點擾動或光線投射)或其他。