Введение

Плазменный эффект - это компьютерный визуальный эффект, анимированный в реальном времени. В ней используются циклы сменяющих цвета, искаженные различными способами, чтобы создать иллюзию жидкого, органического движения. Plasma - это название демо-версии графики VGA, созданной Брэтом Малвеем в 1988 году и выпущенной на CompuServe. Он использует алгоритм диамантового квадрата для создания 2D-модели, а затем циклически использует цвета с помощью аппаратной палитры в 256 цветовом режиме. Плазма была взята кодерами для их демо, где эффект был широко использован, особенно в начале 1990-х годов. Эффект был особенно распространен на Amiga, где он мог быть реализован очень эффективно с его дисплеем аппаратных функций. Плазма также может быть легко реализована в программном обеспечении с помощью синусовых таблиц и псевдоцветных палитр, и это также был первый настоящий демо-эффект для многих начинающих PC-демокодеров. Фрактальное программное обеспечение Fractint также включает в себя алгоритм, известный как "плазма", который в сочетании с функцией цветового цикла программного обеспечения может обеспечить результат, напоминающий типичный эффект плазмы, используемый в демонстрациях. Однако техническая основа совершенно другая, и цветовая циклическая плазма несколько менее динамична, чем демонстрационная плазма. Подобные эффекты могут быть реализованы на современных графических процессорах с использованием пиксельных шейдеров.

Синопсис

Поскольку существует много "взломанных" подходов к реализации эффекта плазмы, этот обзор алгоритма будет просто описывать теоретическую основу эффекта. Для того, чтобы добиться достаточно быстрой и красивой реализации в реальном времени (особенно на ограниченном оборудовании, доступном в то время, когда этот эффект был на пике своей популярности в 1990-х годах), часто делается "неправильное" приближение к этому алгоритму. Однако это часто может быть сделано без заметных визуальных различий. Этот алгоритм представлен в двух измерениях, но может быть легко адаптирован к любому количеству измерений или любому количеству цветовых каналов. Пусть будет многочастотной функцией шума двух переменных (например, функцией шума Перлина). Пусть каждая цветовая составляющая на пикселе будет линейной функцией выражения Увеличение значения константы имеет тенденцию увеличивать крутость цветовых градиентов на изображении.