Войти
ПрограммированиеПодсказкиГрафикаГрафика

Зависимость коэффициента 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);
  // выводим на экран текстуру с изображением предыдущего кадра
....

#motion blur

16 октября 2009

Комментарии [1]

#1
1:54, 14 мар 2012

Спасибо за подсказку. Очень помогло.

ПрограммированиеПодсказкиГрафикаГрафика

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