我觉得我忽略了一些简单的东西.
我有一个AR应用程序,在标记检测时显示一个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);我很感激你能提供的任何帮助。谢谢!
发布于 2011-10-05 22:45:37
默认纹理参数需要一套完整的mipmap。
尝试将GL_NEAREST或GL_LINEAR用于GL_TEXTURE_MIN_FILTER。
你也可能需要两个纹理尺寸的力量。
https://stackoverflow.com/questions/7656827
复制相似问题