Motion Blur без шейдеров
Автор: Богдан Мазуренко
Простая реализация эффекта Motion blur в DirectX без использования шейдеров
Идея:
1. Рисуем всю сцену в текстуру
2. Рисуем текстуру на екран с после такого кода:
m_pd3dDevice-> SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ) ;
m_pd3dDevice-> SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVBLENDFACTOR ) ;
m_pd3dDevice-> SetRenderState( D3DRS_DESTBLEND, D3DBLEND_BLENDFACTOR ) ;
m_pd3dDevice-> SetRenderState( D3DRS_BLENDFACTOR, RGB( blend, blend, blend) ) ;
После такой процедуры действий получаем довольно неплохой Motion Blur.
#DirectX , #FFP , #motion blur
12 октября 2009
Комментарии [11 ]
В результате будут идущие друг за другом четкие кадры, уменьшающейся интенсивности. Где здесь blur?
Да это фейковый блюр, причем древнейший боян. При значительном изменении
положения объекта на экране, будет выглядеть жутко.
такой блюр был в макс пейне)))
"...будет выглядеть жутко..."
Любой мошен блюр выглядит жутка. Нужен только для вызывания отвращения у игрока.
И даже нет учёта времени кадра.
Такой эффект если и делать, то с хитрой зависимостью от яркости, получатся следы, которые реально бывают.
А motion blur нормально выглядит только при сложении кадров, но тогда нужен fps в несколько раз выше...
Я эту подсказку сдал сюда пару лет назад(тогда только начал заниматься графикой). На своем старом компе с радеон 9200 такой метод покатил на 60 фпс в небольших гонках. Блур был довольно хороший. Тем более на шейдерах 1_1 или 1_4 я бы такого не сделал.
Если будет время - попробую накатать статью про более продвинутый моушн блур.
ЗЫ Это подсказка, сюда могут залесть новички и им такой метод может подойти.
Che@ter
> Тем более на шейдерах 1_1 или 1_4 я бы такого не сделал.
Можно и получше сделать на 1_1.
Впрочем, и против данного метода ничего не имею.
.Scotina
> Любой мошен блюр выглядит жутка. Нужен только для вызывания отвращения у
> игрока.
В HL2 Ep2 мошен блюр кстати норм
А простой на буфере аккумуляции дейтвительно противен
Прошло более 1 года
Ребята не подскажете где можно скачать эту программу DirectX ,не где нет..( Очень надо...:)
Taniaaaa
Либо очень толсто, либо тебе пока рано качать программы OpenGL и DirectX.