3D демы на ZX Spectrum
Alone Coder
Первой 3D демой на Speccy был, наверно,
3D Rotator by Mark C. Jones, опубликован─
ный в журнале Your Computer(июль 1983).
Он был написан на Бейсике и рисовал линия─
ми (версия отдекабря 1984 года дополни─
тельно использовала машинный код). К этому
моменту на платформе уже было выпущено не─
сколько игр с 3D графикой, и тема стреми─
тельно развивалась - списки игр с проволо─
чной и полигональной графикой можно посмо─
треть в SpeccyWiki.
В1985 году в том же журнале вышла дема
Rotate 'N' Roll by Dave Millen, а в 1987
году Major Developments/Incentive Software
выпустили мощнейшую Driller Demonstration
(и саму игру тоже).
На этой мажорной ноте тема 3D в запад─
ноевропейских демах оказалась, судя по
всему, исчерпана. Но 3D игры продолжали
выходить - особенно стоит отметить Hard
Drivin', к которому мы ещё вернёмся.
После того, как в1990 году поляк Kaz
выпустил своё Fifth Demo с фейковым векто─
рным 3D,другой поляк Jacek Michalak распо─
трошил игру Starion(1985) и стал помещать
в свои демы вращающиеся 3D объекты. На эту
тему у него есть демы 3D Show (там указан
автор оригинального кода - David Webb ),
Rotation и Centre Graphics(1991). В ско─
ром времени Jacek'у надоела проволочная
графика, и он вытащил залитый текстурами
движок, по-видимому, из игры Starstrike II
(1986) by Realtime Software Games. Там бы─
ли невыпуклые объекты, причём с перспекти─
вой. В результате появилась дема Vector,
которую пока не удалось датировать.
На этом демомейкерская деятельность в
жанре 3D умирает на несколько лет - пока
за неё не взялись уже украинские хакеры.
Satisfaction by Codebusters (1994) -
вращение залитой фигуры (кубика) без перс─
пективы. Совмещены линии и сплошная залив─
ка. Движок был слабее классических движков
из игр, что позволяет заключить, что автор
(Rst7) написал его сам.
Echology by Busy & Noro(май 1995) - в
этой словацкой деме имеется object shower
(то есть вертелка объектов перед носом
зрителя) с разными техниками отображения -
точки, линии, шарики - и ручным управлени─
ем. Без сокрытия невидимых линий, без пер─
спективы и клипирования, но с анимацией
объектов.
Felix Gift & Etc by Galaxy (апрель?
1996): показывает выпуклый космический ко─
рабль с текстурной заливкой (до этого у
Galaxy было 3D линиями - дема Microstorm
by Алексей Черепахин от23.11.1995, с вра─
щающимся крестом). Ребята хотели писать 3D
игру - по-видимому, под влиянием Copper
Feet (вдекабре 1995 вышла игра UFO 2, где
есть сцена погони за кораблём пришельцев -
выпуклым 3D объектом линиями, с сокрытием
невидимых линий и как будто с перспекти─
вой. Эту часть писал Алексей Медноногов ).
Dies Irae by Exodus(август 1996) - в
этой деме из Польши имеется object shower
выпуклых объектов линиями, с перспективой
и с сокрытием невидимых линий, но без кли─
пирования. По-видимому, самописный и до─
вольно неплохой. Получается, что на этот
момент собственные 3D движки имелись уже в
пяти странах! Причём в России их было нес─
колько - например, помимо перечисленного
выше и ниже за1996 год, интересно "3D" от
Maximum из Ангарска, где простейшая прово─
лочная графика совмещена сmotion blur.
Second Breath megademo by Dream Team
(unreleased): в одной из частей(3D coll─
ection) - object shower, залитый текстура─
ми, с добавлением линий. Без перспективы и
без фона. Эта часть написана,скорее всего,
тоже в1996 году и впервые увидела свет
в журнале Miracle #3 (1999). В той же
недописанной мегадеме есть ооочень медлен─
наяWolf ЗD-образная часть,которую сравни─
тельно недавно достал с авторских дисков
Tiboh - заодно он собрал всю дему.
Insane (1996) - в этой деме от другой
словацкой группы ЗSC интересный воксельный
мир в атрибутах, на 48K (в 48K помещается
вся дема без подгрузок!). Позже использо─
вался в деме тех же авторов Higher State
(где ещё появился залитый object shower с
невыпуклыми объектами).
Life Sux by Galaxy(август 1996) - фре─
ймовый залитый космический корабль сделан
анимацией, об этом написано в самой деме.
В дальнейшем дем с фейковым 3D будет много
(и они не будут об этом сообщать), про них
писать нет смысла. Но в Life Sux есть ещё
часть с 3D кубиком, где на гранях некий
"stencil shading" - куски разных картинок
и анимаций в плоскости экрана. Есть боль─
шая вероятность, что это реализовали по-
настоящему.
Action by VAV (август 1996): ёжик из
линий, стучащий по экрану, и просто болта─
ющиеся линии - это фреймовое 3D с перспе─
ктивой и без клипирования. Беглый просмотр
в отладчике обнаружил таблицу умножения на
целых24 килобайта, так что математика то─
чно имеется. Это важно отметить, поскольку
в 7th Reality на том же Enlight'96 прыгаю─
щий многогранник - это vertex animation,
то есть вывод векторной графики по заранее
известным экранным координатам (при этом
там необычная заливка уже отрисованной ка─
ртинки из линий).
Over the Top by Enigma(начало 1997):
очень хороший воксельныйMars в чанках2x2
(им можно управлять) и демоверсия Citadel
3D без врагов. Концепция чанков восходит
ещё к процедуре печати в Art Studio и де─
мем Theo Develegas'а из серии VGA, но они
долго шли к реальным эффектам.Те же Enigma
до этого использовали чанки2x2 в New Year
1996 gift(1995). Ещё можно отметить чанки
2x2 в уже упомянутой Higher State(1997),
там на них реализованbump mapping с некой
сложной процедуройc2p (chunky to planar -
вывод чанков на экран).
3D движок X-Trade(лето 1997): два ва─
рианта object shower'а - линиями и с текс─
турной заливкой. В принципе, это уже было,
но движок впервые выпущен в виде исход─
ников в приложении к журналу Spectrum
Expert, а в самом журнале написано, как он
работает. Движок потом использовался, нап─
ример, в интро к MSF #20. Странно, что он
не использовался в демо Rage от тех же
X-Trade - там только точки...
IRIS Ultrademo by Flash(около 1997): в
одной из частей - object shower для выпук─
лых объектов, залитых текстурами. С небо─
льшой перспективой, flat shading'ом, на
фоне картинки и с тенью, строящейся как
сдвинутый силуэт объекта. Также умеет
сплющивать объект. Часть называется"3.5
MHz" и не поддерживает турбо-режим.
Eye Ache 2 by Codebusters (август
1997): в части с фреймовым морфингом -
опять vertex animation. Понятно, что эк─
ранные координаты - это 2D, а не 3D. Поэ─
тому vertex animation сам по себе лежит
вне рамок этой статьи. Эта часть заслужи─
вает внимания из-за техники заливки
EOR-fill - все полигоны заливаются одно─
временно и быстро (ср. выше про 7th
Reality, где заливка значительно медлен─
нее). Демо требует Pentagon 128. Но замеры
в этой части показывают около60000 так─
тов, так что туда теоретически можно доба─
вить вращение в реальном времени - было бы
уже действительно 3D. Ещё в Eye Ache 2
есть воксельныйMars в мультиколоре.
Spirius by MAYhEM(август 1997): первое
спектрумовское 3D с tmap'ом (натяжением
картинки на полигон, texture mapping). Вы─
водится пикселями 2x2 безc2p. Примерно
такой же tmap (помедленнее и без 3D) одно─
временно реализован в демо Outrage от дру─
гой тульской группы Global Pro. Мне по се─
крету рассказывали, что движки так похожи
из-за того, что Fyrex/MAYhEM и Lord Vader/
Global Pro читали одну и ту же книжку по
компьютерной графике и всё время консуль─
тировались друг с другом по телефону. Так
вот,в Outrage видно,что каждый угол 4-уго─
льника можно двигать по раздельности без
нарушения текстуры - это благодаря тому,
что на каждом сканлайне делается деление.
А раз можно, то в Spirius эти 4-угольники
показаны с перспективой (при линейном на─
тяжении текстуры так нельзя - поэтому впо─
следствии шейдеры в спектрумовских демах
обычно делались на треугольниках).Ещё сра─
зу же реализовано масштабирование текстуры
на грани по одной из координат. Демо под─
держивает 48K и турбо-режим - включите,
чтобы лучше разглядеть это масштабирование
в самом конце эффекта.В Spirius также есть
часть с залитым object shower'ом, с невы─
пуклыми объектами.
tmap by Rst7(unreleased): вращающаяся
пирамидка - первое 3D в мультиколоре
(4x4), сразу сtmap'ом. Правда, мультико─
лор работает только на каждом втором кад─
ре. Скорее всего, написано в1997-1998 го─
дах, после чего автор ушёл со Speccy. Сох─
ранилось в исходниках и впоследствии ис─
пользовалось в Rainbow Beer Megademo. Вну─
три хороший иннерлуп для своего времени,
но он не терпит прерываний. Интересно, что
часть параметров сканлайна хранится прямо
в чанковой карте.
Refresh by Extreme(август 1998): новые
3D эффекты, все в чанках:Gouraud shading,
bump mapping на гранях (такое больше никто
не делал),environment mapping. Дема под─
держивает турбо-режим. Автор - Exploder
(ранее назывался VAV ) - до выхода статьи
опубликовал несколько статей с иннерлупами
в газете Buzz. Исходники демы предлагались
на продажу за$200, но их никто так и не
купил, в итоге они пропали. Сам автор по─
кинул спектрумовскую сцену сразу после ре─
лиза демы.
Sth Element by Eternity Industry(ав─
густ 1998): от авторов газеты Buzz. Тут
тоже реализованы Gouraud shading (причём
эффект совмещён с 2D пламенем) иenviron─
ment mapping. Есть ещё текстурный 3D кубик
на фоне туннеля и с анимированной тексту─
рой этого самого туннеля. У этого движка
много потомков:в частности,сначала он ушёл
в Самару, где ALK/Extreme сделал из него
Greed 4K с текстурным кубиком(1999), а
потом его расковыряли в Перми.
Было ещё много 3D движков от других ав─
торов в 1997-1998 годах (в частности, и
мой), но эти другие движки не привносили
ничего нового. Можно просто отметить в
1998 году Adrenalize by Global corp. (где
3D объект переходит в 2D картинку, там ещё
есть интересный скролл с вращающимися
строчками - но это 2D) и 3D Lame 4K by
Playgear Company/Binary Dimension - первое
залитое 3D в4K (в дальнейшем будут и дру─
гие рекорды - Dig-it 1K by ЗSC сmotion
blur'ом фигур Серпинского и проволочный
Ceci n'est pas un cube 256b by Ate Bit ).
Dive 16K (1999): потомок object
shower'а из Spirius, превратившийся в ма─
ленькое сюжетное 3D демо (по сути единст─
венное на текущий момент чисто ЗD-шное).
Napalm by Eternity Industry(1999): в
этой чанковой деме для оформления сцен уже
используются дополнительные спрайты и под─
светки, а также впервые появляется техно─
логия tmap+Phong shading. На представлен─
ной кастрюле с текстурой глаза это выгля─
дит довольно реалистично. К сожалению, она
не терпит турбо-режим. Это касается и
других дем группы Eternity Industry
(Placebo), кроме последней и самой лучшей
- Inbetween(2002).
64 bit 3 by Accept Corp(1999): появил─
ся куб с видом изнутри, то есть прообраз
погружения в сцену вместо многочисленных
object shower'ов. Также применялся в демо
Whim(2000) от тех же авторов.
Awaken demo version by Mythos/Rage
(1999): это должна была быть новая игра в
стиле Elite от белорусских спектрумистов.
Разработан шикарный залитый 3D движок с
погружением в сцену (на основе игры Hard
Drivin' ), умный оконный интерфейс и даже
редактор объектов. Но игра так и не была
доделана,осталось только6 дисков исходни─
ков, в которых никто не смог разобраться.
CCOO0 invitation by Razzlers (2000):
чанковое 3D используется для "переворачи─
вания" страниц с разными эффектами. Нас─
колько помню, там довольно оригинальный
tmap, где U и V считаются раздельно. Что-
то похожее было только у Accept Corp в их
медленных 3D демах.
Rizc by Extreme(2000): попытка вывести
чанковое 3D поверх пиксельной картинки.
Получилось медленно.
Dogma by Placebo(2000): на том же дви─
жке реализован некоторый сюжет. В движок
были добавлены прозрачные полигоны (или
они были уже в CCOO0 invitation intro от
тех же авторов?) и наложения слоёв с
motion blur'ом. По-видимому, в этой деме и
tmap+Phong shading попробовали разнести на
два слоя, вместо одного иннерлупа - так
удобнее. Стоит отметить сцены с планетами
и куб с дырками в текстуре, через которые
просвечивает анимация.
Fate Trackmo by Omega Hackers Group
(2000): ещё один чанковый движок сGouraud
и tmap, а кроме него нечно необычное -
куб, текстурированный косыми сканлайнами
из пикселей! Говорят, эту часть написал
Demon/OHG.
Scenergy #2 intro by Razzlers(2000):
влёт и вылет в/из объекта из чанковых ли─
ний, потом надпись собирается из прилетаю─
щих в 3D букв.
Tryptomine Dream by Brainwave(2000): в
этой в основном мультиколорной деме можно
найти чанковыйPhong в чистом виде,а также
уже известныйenvironment mapping.
Wolfdemo 2 by Invaders8(2000):Wolf 3D
в чанках(2x2) и с объектами. До этого бы─
ла версия в атрибутах и без объектов
(1998) и промежуточные версии с чанками
4x4 и2x2, которые никто не видел. Впосле─
дствии это стало игрой Wolfenstein 2004.
Stellar Contour by Brainwave (2001):
автор решил загнать все эффекты Placebo в
мультиколор - и не в какой-нибудь, а инте─
рлейсный 4x4, который отнимает всё время
процессора. В итоге мы можем увидетьtmap
иPhong в цвете, с не такой уж плохой ско─
ростью (без c2p, прямо в атрибуты), но с
довольно страшными текстурами. Ещё в этой
деме есть интересныйWolf 3D в мультиколо─
ре. Поскольку уже на пати был скандал с
Placebo (они выставили дему LF, где доба─
вили картинки поверх эффектов) по поводу
реалтаймовости всего этого,то сначала была
выпущена версия Wolf 3D с управлением, а
потом исходники всей демы были зарелижены
в журнале Крик #2. После этого автор
(Vivid) ушёл на платформу Real Life. А
жаль. Кстати,есть интересный режим просмо─
тра этой демы в эмуляторе - если добавить
тактов в кадре и при этом не менять тайми─
нги экрана,то объекты будут крутиться пла─
внее.
Harm by 4D + Triebkraft(2002): в этой
деме из Перми можно опять найти чанковые
Gouraud и Phong, только с чересстрочным
выводом чанков для скорости.
Inbetween by Placebo (2002): напишем
про неё ещё раз - последняя версия движка,
со всеми прибамбасами. В частности, новые
чанки могут прыгать, и поддерживается тур─
бо-режим. Отдельно можно отметить сцены
(реально, конечно, object shower'ы) с баш─
нями и с лицом. К сожалению, авторы ушли
со сцены, а исходники этой последней вер─
сии движка утеряны.
Sommer by Triebkraft(2003): небольшая
иллюстрация к статье о чанках4x2 с фильт─
рацией в журнале Adventurer #14. Вращается
объект сGouraud shading. Новизна именно в
этих чанках. В демо NR by 4D(2004) можно
посмотреть их последний вариант. Пара мо─
дулей (вращалка вершин и керналь) публико─
валась JtN'ом в газете ACNews #54.
Inferno Guide #5 by Invaders8(2004): в
интро - воксельный объект "летающий слон".
Потом аналогичный воксельный движок реали─
зовал под 48K Lord Vader в Mission Highly
Improbable.
На этом развитие 3D и вообще кодинга на
спектрумовской сцене снова прекратилось на
несколько лет,несмотря на то,что было мно─
го готовых движков - кроме перечисленных,
ещё у Wolf/ETC/Scene, у группы Syndrome,
у SerzhSoft'а, у TmK/deMarche и у Flying/
Digital Reality.
Nedodemo by Invaders8(2008): первый 3D
движок под цвет на точку (Pentagon+1бcol
или ATM2 ). Это переделанный движок от
X-Trade. В деме также появился текстуриро─
ванный "куб, вид изнутри" - реально это
даже шар. Но это 2D эффект. Его упрощённая
разновидность "цилиндр, вид изнутри" пока─
зана в New Wave 48K(2013).
The Link by Alone Coder и товарищи
(2009): первыйtmap под цвет на точку (ча─
нки2x2 ),на этот раз написан новый движок
с использованием вращалки от JtN/4D и сор─
тировки от SairOOS/Placebo. Но всё ядро
демы работает на NeoGS, и без NeoGS её
просто не запустить. В деме The Board
(2011) этот движок был переделан под голый
ATM2, вращалка и сортировка заменены на
свои,убрано ограничение на привязку к точ─
кам текстуры и нетерпимость к прерываниям,
добавлена анимация и ставились рекорды по
числу полигонов на объектах из игры Quake.
Mission Highly Improbable by HPRG
(2014): кубик сtmap'ом с точностью до пи─
кселя (в качестве оформления ещё добавлены
эффектыmotion blur и rubber cube - второй
до этого делал в2008 году Scor/Triumph
при участии Fyrex'а и Lord Vader/MAYhEM в
интре к Quantum Gardening ). Техника этого
попиксельного tmap состояла в использова─
нии промежуточных буферов с EOR-fill и
сдвигом строк. Подробно описана в журнале
Spectrum Today #1. Предыдущая версия этой
техники была в Wolf 48K - части демы
Critical Error(2011). Также имеется вок─
сельный "волосатый бублик" от Lord Vader/
MAYhEM - впервые на 48K (возможно,даже пе─
рвое чанковое 3D на оригинальном ZX Spect─
rum 48K ).
New View 48K by Conscience (2015): в
кубике реализованGouraud shading с точно─
стью до пикселя - отрисовка разделяющих
линий, потом заливка черезEOR-fill. Также
там есть воксельныйMars в цветных чанках
(которые поддерживают отдельный цветовой
слой и подгоняют текстуру под цвета сосе─
дей, а не как обычно) и склейка объектов
рёбрами на 2D сцене с дорогой - в будущем
этот метод должен использоваться для 3D
сцен. А ещё есть цветной залитый объект в
пиксельном разрешении - там тоже заливка
(наполовину атрибутами) поверх линий спе─
циального вида.
и наконец...
eihwaz by Hedj(2015): ещё один новый
способ Gouraud shading - с точностью до
пикселя, но целыми байтами. Так можно за─
ливать невыпуклые объекты. Для этого ис─
пользуется таблица шейдинга для всех воз─
можных ширин сканлайнов.
Так что хватит лениться и драть гифки,
ждём новых прорывов в 3D! :)
Other articles: