Использование Motion Blur на OpenGL ES

Я новичок в текстурировании OpenGL ES 1.1(для IOS), и у меня есть проблема с созданием эффекта размытия в движении. Во время поиска в Google я обнаружил, что в разные моменты времени я должен рендерить свою сцену в несколько текстур, а затем рисовать все эти текстуры на экране с различными значениями альфа. Но проблема в том, что я не знаю, как все это реализовать! Итак, мои вопросы:

  1. Как нарисовать 2D текстуру на экране? Должен ли я сделать квадрат и наложить на него свою текстуру? Или, может быть, есть способ нарисовать текстуру непосредственно на экране?
  2. Как нарисовать несколько текстур (одну на другую) на экране с разными значениями альфа?

Я уже выдвинул некоторые идеи, но я не уверен, верны они или нет. Заранее спасибо!

1 ответ

Ну, конечно же, первый совет: поймите основы, прежде чем пытаться делать что-то сложное. Кроме этого:

  1. Да, действительно, чтобы нарисовать полноэкранную текстуру, вы просто рисуете текстурированный квадрат размером с экран. Ортогональная проекция была бы хорошей идеей в этом случае, чтобы упростить выравнивание экрана квадратора и его правильную настройку. Для получения текстур в первую очередь (путем рендеринга в них), FBO могут быть полезны, но я не уверен, что они поддерживаются на устройствах ES 1, в противном случае старый добрый glCopyTexSubImage2D будет делать тоже, хотя требуется операция копирования.

  2. Ну, вы просто рисуете несколько текстурированных четырехугольников (см. 1) один над другим. Вы можете настроить текстуру среды, чтобы масштабировать цвет текстуры с помощью базового цвета четырехугольника (glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)) и придать вашим квадратам цвет (1, 1, 1, alpha) (конечно освещение должно быть отключено). Кроме того, вы должны включить альфа-смешивание (glEnable(GL_BLEND)) и использовать соответствующую функцию смешивания (glBlendFunc(GL_SRC_ALPHA, GL_ONE) следует сделать).

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

Другие вопросы по тегам