2011-10-05 96 views
1

我有我俯瞰簡單的東西在這裏的感覺......iPhone的OpenGL-ES視頻紋理

我有一個顯示在標記檢測3D對象的AR應用。該對象只是一個扁平的三維矩形 - 我可以將圖像紋理綁定到沒有問題的位置。但是,我需要綁定視頻文件(.m4v)作爲對象紋理。我成功地使用AVAssetReader讀取文件,但是當像這樣綁定紋理時,該對象顯示爲白色。

CMSampleBufferRef sampleBuffer = [mOutput copyNextSampleBuffer]; 
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); 
CVPixelBufferLockBaseAddress(pixelBuffer, 0); 
glBindTexture(GL_TEXTURE_2D, texture); 
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 320, 240, 0, GL_BGRA, GL_UNSIGNED_BYTE, CVPixelBufferGetBaseAddress(pixelBuffer)); 
CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);  
CFRelease(sampleBuffer); 

我會很感激任何幫助,你可以給。謝謝!

回答

3

default texture parameters需要一套完整的mipmap。

嘗試使用GL_NEARESTGL_LINEARGL_TEXTURE_MIN_FILTER

您可能還需要冪次冪紋理尺寸。

+0

非常感謝,我現在已經進行了更正。新問題在於它將紋理投影爲相機流 - 因此它出現我的AVAssetReader無法正常工作。奇怪,因爲我能夠拉出框架並將它們單獨保存爲圖像,只有當其投影出現爲相機饋送時。 – Josh