Android: создание размытой текстуры с помощью наложения в OpenGL 1.1 - PullRequest
1 голос
/ 01 февраля 2012

Кто-нибудь имел большой успех на Android с созданием размытых текстур, используя смешивание, чтобы размыть текстуру?

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

1 Ответ

2 голосов
/ 01 февраля 2012

«Размытие на месте» - это то, что может делать процессор, но при использовании графического процессора, который обычно работает параллельно, у вас должен быть другой буфер изображений в качестве цели рендеринга.

Даже с новыми шейдерами, чтение и записьиз / в тот же буфер может привести к повреждению, потому что они могут быть переупорядочены.Аналогичная проблема заключается в том, что ядро ​​размытия по Гауссу, которое может обрабатывать размытие за один проход, зависит от соседних фрагментов, которые могли бы быть изменены ядром, примененным по их координате фрагмента.

Если у вас нетРасширение framebuffer_object, доступное для рендеринга в renderbuffers или даже текстуры (дополнительно требуется расширение render_texture), вы должны выполнить рендеринг в задний буфер, как в примере, а затем выполнить glReadPixels(), чтобы получить изображение обратно для загрузки в исходный код.текстуру или сделайте быстрый и прямой glCopyTexImage2D() (у OpenGL * 1.1 есть это).

Если цель рендеринга слишком мала, вы можете рендерить несколько плиток.

...