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