Bump Mapping на верхней части камеры iPhone - PullRequest
0 голосов
/ 11 марта 2011

Я хочу нанести на карту изображения камер с фиксированной текстурой ...

Я нашел следующую ветку: Bump Mapping на iPhone

на общемметоды картографирования.Но у них действительно не было примеров или учебных пособий о том, как это сделать.

Теперь, на всякий случай, кто-нибудь знает о хороших учебных пособиях о том, как наносить удары по карте на iphone или о том, как модифицировать iPhoneПодача камеры с openGL?

PS: В конце концов, в итоге я сделал что-то другое, например преломление моего изображения с использованием функции преломления OpenGL ES 2.0 .

1 Ответ

1 голос
/ 15 марта 2011

Отвечая на ваш комментарий, чтобы добавить эффекты OpenGL к выходам камеры, вам нужно использовать AVFoundation, который был представлен в iOS 4. Это можно использовать для получения прямой передачи данных пикселей с камеры, которую вы можете загрузить в OpenGLв качестве текстуры - позволяя вам делать потом все, что вы хотите.

Если вы простите мне ссылку на ответ, который я давал в прошлом, базовый материал для начала получения подходящего буфера - здесь .

Вы получите CMSampleBuffers во вторичном потоке в методе делегата:

- (void)captureOutput:(AVCaptureOutput *)captureOutput 
     didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
     fromConnection:(AVCaptureConnection *)connection

Вы можете использовать CMSampleBufferGetImageBuffer, чтобы получить CVImageBuffer и откоторые используют комбинацию CVPixelBufferLockBaseAddress CVPixelBufferGetBaseAddress, CVPixelBufferGetBytesPerRow и, возможно, CVPixelBufferGetWidth и CVPixelBufferGetHeight, чтобы получить массив C пикселей.В моем тестировании на iPhone 4 и iPhone 3GS буфер только когда-либо возвращался плотно упакованным (то есть без заполнения между строками), что означает, что он может быть немедленно загружен как GL_BGRA, поскольку расширение APPLE_texture_format_BGRA8888 поддерживается на всех iPhone дляdate.

Оттуда вам, очевидно, нужно выяснить, что делать с точки зрения вершинных и фрагментных шейдеров, в зависимости от того, есть ли у вас карта нормалей, карта рельефа, на которую вы действительно хотите повлиять на видимую форму (и,если это так, будь то из-за возмущения вершины или из-за наложения лучей) или что-то еще.

...