iPhone OpenGL-ES Видео Текстура - PullRequest
       30

iPhone OpenGL-ES Видео Текстура

1 голос
/ 05 октября 2011

У меня такое ощущение, что я упускаю что-то простое здесь ...

У меня есть приложение 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);

Буду признателен за любую помощь, которую вы можете оказать. Спасибо!

1 Ответ

3 голосов
/ 06 октября 2011

Параметры текстуры по умолчанию требуют полного набора мипмапов.

Попробуйте использовать GL_NEAREST или GL_LINEAR для GL_TEXTURE_MIN_FILTER.

Вам также могут понадобиться размеры текстур с степенью двойки.

...