Алгоритмы визуальных эффектов и анимации для ZX Spectrum

Раздел посвящён программным алгоритмам, графическим технологиям и приёмам, позволявшим создавать на ZX Spectrum зрелищные визуальные эффекты, трёхмерную графику, анимацию и демонстрационные сцены. Здесь собраны статьи по математическим основам компьютерной графики, оптимизации вычислений для процессора Z80 и практической реализации эффектов, ставших визитной карточкой спектрумовского демомейкинга.

Материалы охватывают широкий круг тем: от базовых алгоритмов вывода точек, линий и окружностей до сложных систем рендеринга с текстурированием, затенением и трёхмерными преобразованиями. В публикациях подробно рассматриваются методы построения 3D-объектов, проецирования пространства на экран, трассировки лучей (Raycasting), работы с вокселями, Z-буфером, Gouraud и Phong Shading, а также способы ускорения математических вычислений на ZX Spectrum.

Значительное внимание уделено графическим эффектам демосцены: ротаторам, ротозумерам, туннелям, плазме, огню, воде, морфингу изображений, атрибутным эффектам, скроллерам, бордер-эффектам и разнообразным способам проявления, затухания и трансформации экранов. Рассматриваются как классические эффекты из известных демо и игр, так и оригинальные авторские разработки.

Отдельный блок статей посвящён работе с цветом и изображениями: дизерингу, псевдоцвету, расширению палитры, алгоритмам сглаживания, конвертации графики, цветным видеороликам и способам преодоления ограничений стандартной видеосистемы Spectrum. Также представлены материалы по упаковке анимации, компрессии данных, организации битпланов и оптимизации вывода графики.

В разделе публикуются практические руководства по программированию графических режимов, созданию игровых движков, реализации текстурирования, генерации фракталов, сплайнов, синусоидальных эффектов и других математических процедур, лежащих в основе современных для своего времени визуальных технологий.
Алгоритмы визуальных эффектов и анимации для ZX Spectrum

Статьи (115)

Info Guide #13 01 апреля 2021
Code - эффекты ротаторов и ротозумеров
Code - О туннелях и небоскреба
GFX - Фотореализм: способы передать ненасыщенные цвета, присущие реальным фотографиям
Info Guide #12 31 декабря 2017
Код - 3D движок: фрагменты.
Графика - палитра: Палитровые эффекты в играх.
Info Guide #11 05 июля 2015
Code - точка зрения: проекция пространства на экран из одной точки.
Code - чанковый эффект: Magnets stretching
ACNews #55 18 мая 2009
Кодинг - О плавных листалках.
ACNews #52 16 сентября 2008
Графика - Три битплана.
Info Guide #09 31 июля 2006
Inferno - О воксельном летающем слоне IG #5.
Info Guide #07 31 мая 2005
For Coderz - Программирование для видеорежима 384x304.
ZX Time #14 08 января 2005
Кодерам - Эффeкт воды: Нyжно дeлать нe дeмы, а клипы!
Adventurer #15 31 июля 2004
Tutorials - Больше цвета!!! Описание паковщика цветного видео из демки Weed.
Tutorials - More colours!!! Description packer color video from the demo "Weed".
Tutorials - hewle splines - программ для создания сплайновых кривых.
Info Guide #05 30 апреля 2004
For Coderz - RAYCASTING - сделай себе немного DOOM'a. Алгоритм трассировки 3D лабиринта как в игре WOLF.
For Coderz - Нюансы Raycasting-а.
Inferno #03 22 ноября 2002
Возможности Спектрума - Pseudo-Color: миф или реальность? Алгоритм перевод чёрно-белого изображения в цветное.
Opex #07 19 июня 2002
Всякий бред - А сейчас совсем чуточку бреда, ну чтобы оттянуть штурм на ВRАDS TАLE...
TargeT #10 01 марта 2002
Coding - Зaгрузи в свoй рaспaлeнный мoзг слeдующую прoгу нa Ustav'e-2oo2.01.24
Last 128 #03 01 января 2002
Министерство панкообразования - о всякой хуйне.
Plutonium #19 20 августа 2001
Программирование - формирование изображения на экране монитора.
Программирование - формирование изображения на экране монитора (продолжение).
Inferno #02 01 мая 2001
Gameland - Как написать игру. Том 3. Часть первая.
Subliminal Extacy #03 01 апреля 2001
Draw Routine with Bresenham Algorithms
TargeT #08 01 февраля 2001
Coding - доработка ZX-WORD для Беларуского языка.
Deja Vu #0A 30 сентября 2000
Программирование - "цветные" точки и линии, градиентная заливка, конверсия в 256 цветов.
DonNews #11 21 апреля 2000
Кодинг - Заливка замкнутой области на экране.
ZX Power #04 09 января 2000
Ликбез - алгоритмы быстрой 3D-графики №2. Дополнения и замечания.
Scenergy #02 31 декабря 1999
Coding - Texture Mapping - реализация от SaiR00S/EI.
Coding - Texture mapping + Phong shading реализация от Senat/Eternity Industry.
Coding - Принцип упаковки анимаций в демо JAM.
Coding - разбор интро Daingy от Cryss/Razzlers.
Virtual Worlds #01 31 декабря 1999
Ассемблер - Круги на воде: Алгоритмы имитации эффекта известного на других платформах, под названием "круги на воде".
RUSH #02 30 ноября 1999
Творчество - Алгоритмы и код: Клипирование линии и Кривые Безье.
Plutonium #14 01 ноября 1999
Coder`z guide - Этот рaздел нaзвaн тaк потому, что в нем будет рaсскaзывaться о вешaх, которые будут полезны людям, которые кодят.
Polesse #10 04 сентября 1999
Лаборатория - Глюк о цветной графике.
KrNews #10 20 августа 1999
CODING - Почему он так режет? (о выводе картинок на экран).
Demo or Die #02 31 июля 1999
Demo-строение - Phong Shading.
ZX Pilot #34 20 июля 1999
Coding - Super-puper-быстрый алгоритм построения окружностей и кругов; быстрое деление 16/16; извлечение квадратного корня из регистровой пары; извлечение квадратного корня из трехбайтового числа; процедурка рассчета адреса в аттрибутах по координатам в знакоместах.
Miracle #03 16 июля 1999
Кто там кодит? - Chanky flame: описание алгоритма чанкового огня.
Кто там кодит? - Attribute bump mapping: bump mapping для тех кто не въехал.
Scenergy #01 31 мая 1999
Coding - реализация Phong Bump Mapping на Speccy.
RUSH #01 29 мая 1999
Spectrum программинг - Быстрые 3D-расчеты: продвинутый алгоритм.
Adventurer #09 30 апреля 1999
Обмен опытом - Процедура генерации синуса.
Buzz #17 10 апреля 1999
GOURAUD - Ликбез в области 3D-shading (алгоритм заливки грани методом GOURAUD).
Odyssey paper #07 17 марта 1999
Алгоритмы - Просто о 3D програмировании: 3D координаты и нормали.
Demo or Die #01 28 февраля 1999
Demo-строение - Проецирвоание 3D > 2D.
Odyssey paper #04 11 января 1999
Быстеренько! - самый быстрый алгоритм/процедура рисования линии.
ZX Guide #01 27 ноября 1998
Ликбез - горе от ума: о выводе экрана за прерывание
Oberon #05 06 ноября 1998
Обо всём - как раскрасить унылый IS-DOS.
Ликбез - делаем фракталы на Спектруме.
Deja Vu #06 30 сентября 1998
CODING - Уроки кодера: Фрактальный папаратник.
Adventurer #08 31 августа 1998
Обмен опытом - Графический эффект IRIS (плазма).
Обмен опытом - процедура Движение атрибутной надписи по пикселям (плавающие атрубуты).
Think #18 09 августа 1998
Ассемблер - Индикатор - мерцающие полоски.
ZX Element #02 06 июня 1998
Прогаммистам - переброска SCR за INT.
ZX Club #08 31 мая 1998
Soft Group - chunky to planar conversion конвертор.
Buzz #14 29 апреля 1998
Ассемблер - Описание алгоритмов: 2D bump mapping, Gouraud Shading, Fast Phong Shading, Z Buffering, Flat Shading, Voxels.
Deja Vu #04 31 марта 1998
CODING - Ремикс некоторых процедур 93 года: SCREEN APARAT, Теневой контур, LOOK BASIC PROGRAMM-2.
Spectrum Expert #02 31 марта 1998
Программирование - 3D на спектруме: быстрый метод обсчета вершин, вывод 3d обьектов с заливкой.
Buzz #13 12 февраля 1998
Ассемблер - Процедуры : Stretch texture engine, Texture mapping engine, Texture mapping + gourauds hading engine, Gouraudmapping engine for Z80.
Adventurer #07 31 января 1998
Обмен опытом - Быстрые процедуры линии.
Deja Vu #03 31 декабря 1997
Coding - Процедура "Плавающие атрибуты".
Impulse #02 31 декабря 1997
Программистам - Быстрая процедура вычерчивания окружности.
ZX Power #03 31 декабря 1997
Ликбез - новый алгоритм быстрой 3D графики на SPECCY.
Deja Vu #07 31 декабря 1997
CODING - DITHERING - дизеринг как он есть.
ZX Review #11-12 26 ноября 1997
Этюды - Графический эффект "плазма 2".
Этюды - Графический эффект "плазма 2".
Этюды - Графический эффект "плазма".
Этюды - Ремейк процедур 93 года.
Этюды - Эффект "пламя".
ZX Forum #04 19 ноября 1997
Экранные эффекты - гашения экрана из Zynaps.
Экранные эффекты - "сворачивание" экрана из Comando Tracer.
Экранные эффекты - плавное "затухание" экрана из Сommando Tracer.
Экранные эффекты - "выбегающая строка" из игры Rockstar.
Экранные эффекты - "наливающийся" экран из игры Rockstar.
Экранные эффекты - сложный многоступенчатый эффект из игры Bubbler.
Новые 40 лучших процедур - скроллинг экрана, слияние двух картинок, инвертирование экрана, поворот символов, замена атрибутов, заливка замкнутого контура, вычисление адресов в экране, копирование части экрана и т.д.
ZX Review #7-8-9-10 08 ноября 1997
Ретро - 40 лучших процедур: увеличение и копирование экрана.
Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.
Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.
Этюды - Графический эффект "цветные полосы".
Этюды - Программа вывода картинки.
Этюды - Программа зажигания спрайта.
Этюды - Процедура проявления картинки. Fade-OUT эффект (картинка уходит за края экрана). Графический эффект "Фонтан". Fade-OUT эффект, имитирующий выключение телевизора. Процедура "зажигания" картинки. Программа плавной прорисовки картинки.
Этюды - Процедура рисования линии.
Этюды - Скроллинг строк текста в заданном окне. Атрибутный скроллер. Диагональный скроллинг.
ZX Review #5-6 04 ноября 1997
Этюды - Набор из восьми программ "расширения" экрана. Две процедуры проявления экрана.
Spectrum Expert #01 31 октября 1997
Программирование - 3D на спектруме: вращение проволочного обьекта (без отсечения вышедших за экран линий).
Buzz #11 22 октября 1997
Ассемблер - Эффект "пламени".
Lprint #17 06 сентября 1997
Мир изнутри - Графика для SPECCY. Какие перспективы.
Move #09 02 августа 1997
Алгоритм - Один полезный трюк с ^ (алгоритм круга).
ZX Format #06 29 июля 1997
Программистам - обмен опытом: "3-colour". Описание эффекта "8-цветов на точку", хелп к вьюверу и сколько слов о конвертации картинок в формат "3-colour".
ZX Review #3-4 22 июля 1997
Этюды - И.Командин. Программа проявления экрана.
Этюды - И.Рощин. Два графических эффекта.
Move #08 18 июля 1997
Алгоритм - Алгоритм рисования линий.
Body #08 02 июля 1997
PUSH HL - Нажмите MAGIC для BORDER-эффекта.
Impulse #01 31 марта 1997
Программистам - процедура зaкpaшивaния зaмкнутoгo oбъектa нa экpaне.
Echo #03 31 марта 1997
Маленькие хитрости-2 - Как перекинуть целый экран в один INT.
ZX News #03 28 февраля 1997
Вращение картинок - алгоритм поворота изображения относительно заданного центра.
Сглаживание картинок - Алгоритм сглаживания статических изображений.
Морфирование картинок - Об эффекте плавного перетикания одного изображения в другое.
Faultless #05 02 февраля 1997
CPU для вас - процедура быстрого вывода точки. Недокоментированные команды процессора Z80.
Nicron #06 07 ноября 1996
Графика - ANSI графика.
Echo #01 31 октября 1996
Ассемблер - Изображение трехмерных объектов. Быстрый вывод точки AT X,Y. Процедура умножения.
Speccy #06 31 августа 1996
Программирование - эффект перелистывания страниц текста по синусу.
Speccy #03 31 декабря 1995
Программирование - Программа позволяющая производить смену изображения экрана в режиме 48К в виде вертикальных шторок с синхронным изменением цвета бордюра.
Subliminal Extacy #01 01 января 1995
The New Improved Grafix Mode
Sinclair Town #02 31 декабря 1994
Начинающим - основные методы масштабирования изображения: Аппроксимация полутонами.
Mirikom #02 31 июля 1994
Hackers - парочка программ для Вас.
Now - Раскрывеат инфo o закoнченых на данный momент рулспекк прoектoв.
Cоding - В этой статье я попытаюсь рассказать, о том как максимально быстро обсчитать трехмерное пространство. Печать точек. Построение линии. Умножение/деление. SIN (x), COS (x). Поворот осей x,y,z.
Кодинг - Dithеring: Для вывода одной строки, для вывода двух строк.
Кубизм mustdie ФАРЭВЫР - формулы построения додэкаэдра, икосаэдра, тетрадра.