Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Подсказки / Зависимость коэффициента motion blur от времени кадра.

Зависимость коэффициента motion blur от времени кадра.

Автор:

Многие программисты сталкиваются с тем, что фиксированный коэффициент для эффекта motion blur не подходит.
Потому что в такой ситуации при высокой производительности системы размытие становится слишком слабым,
а при низкой производительности, наоборот, слишком сильным.
Часто используют также экспоненциальную зависимость, но и она не даёт должного эффекта.
Наиболее правильно рассчитывать коэффициент как экспоненту из корня:

blur = exp ( - sqrt (frameTime) * K);

Где K - это некий коэффициент, который чем больше, тем слабее размытие,
а frameTime - время текущего кадра.

Пример использования:

....
  float blur = exp ( - sqrt (frameTime) * 2.0f);

  glDisable(GL_DEPTH_TEST),  
  glEnable(GL_BLEND),  
  glBlendFunc(GL_ONE, GL_SRC_ALPHA),
  glColor4f ( blur, blur, blur, 1.0f - blur);
  // выводим на экран текстуру с изображением предыдущего кадра
....

16 октября 2009

#motion blur

Комментарии:
SergioУдалёнwww14 мар. 20121:54#1
Спасибо за подсказку. Очень помогло.

/ Форум / Программирование игр / Графика

Тема в архиве.

2001—2017 © GameDev.ru — Разработка игр