1

我有一种感觉,我在这里忽略了一些简单的东西......

我有一个 AR 应用程序,可在标记检测时显示 3D 对象。该对象只是一个平坦的 3d 矩形 - 我可以毫无问题地将图像纹理绑定到该矩形。但是,我需要将视频文件 (.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);

我很感激你能提供的任何帮助。谢谢!

4

1 回答 1

3

默认纹理参数需要一整套 mipmap 。

尝试使用GL_NEARESTor GL_LINEARGL_TEXTURE_MIN_FILTER

您可能还需要二次幂纹理尺寸。

于 2011-10-05T22:45:37.723 回答