15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Эффект воды, пламени и плазмы.

Автор: David Swigger

Sample Image

Компилятор: Visual C++ 4-6

Проект имеет 3 класса, которые позволяют добавить некоторые приятные видео эффекты на фоне картинки (в реальном времени).

После запуска демонстрашки кликните на кнопку 'Animate'. Затем переместите курсор мышки на картинку и кликните в любое место изображения. Так же можно поиграться с другими параметрами. Бегунки используются для изменения прозрачности эффекта плазмы и огня.

Эффекты предполагают, что все данные о глубине изображения будут 32-битными. А вот собственно и те три класса, которые реализуют наши эффекты:

CWaterRoutine - Производит рендеринг эффекта воды
CFireRoutine - Рендерит огонь
CPlasmaRoutine - Рендерит эффект плазмы в реальном времени

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

Анимация достигается простым таймером. Это единственный, известный мне способ скрепить эффекты вместе, рендеря один поверх другого.