Трансформация 2d текстуры согласно математической модели сохраняемой в таблице(lookup table).
Эффект очень часто применялся в старых демках, так как тяжелые преобразования(sin, cos, sqrt, pow)
выполняются только на этапе создания LUT. Далее происходит выборка значения цвета из текстуры
по этой таблице. Движение реализуется путем добавления смещения к значению LUT. Смещение - время либо
счетчик кадров. Нагрузка на проц минимальна. Легко реализуется на ассемблере.
Простые metaball-ы :)
В этом эффекте цвет точки вычисляется относительно расстояния от точки до центра шарика:
Псевдо 3d тонель с XOR текстурой.
Текстура таже, что и в rotozoome.
Это так называемый rotozoom. Т.е. поворот с циклическим увеличением/уменьшением текстуры. В данном случае используется XOR-текстура. Размер поля обязательно должен быть степенью двойки.
Вариация плазмы. Но...
Это ооочень быстрая плазма :)
Здесь расчет синусов и косинусов ведется, только при создании палитры и при расчете lookup table.
Дальше, при отрисовке берется выборка цвета из этой таблицы:
(lut[pc]+time) & 127
Движение плазмы организуется добавлением к цвету константы, получаемой из счетчика кадров или времени.
Эффект "Плазма" заключается в цветовом отображении нескольких синусоид наложенных одна на другую.
Эффект "Огонь" является частным случаем блюра(размытия) на определенной палитре цветов.
Демосцена поменялась, с тех времен, когда все кодилось на ассемблере. Теперь маленькие <= 4 кб демки поражают своей графикой. А делается все при помощи GPU видеокарты, а конкретно на шейдерах. Решил и я разобраться как же оно все-таки работает.
Шейдеры... они такие шейдеры :). Жутко тормозит все на слабых карточках.
Вот моя первая работа в шейдерной технике на GLSL.