Info Guide #12
31 декабря 2017

Код - 3D демы на ZX Spectrum: история развития 3д движков.

   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 3D-образная часть,которую сравни─
тельно  недавно  достал с авторских дисков
Tiboh - заодно он собрал всю дему. 

   Insane (1996) - в  этой деме от другой
словацкой группы 3SC интересный воксельный
мир  в атрибутах, на 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, но их никто так и не
купил, в итоге  они пропали. Сам автор по─
кинул спектрумовскую сцену сразу после ре─
лиза демы.

   5th 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 3SC  сmotion
blur'ом  фигур  Серпинского  и проволочный
Ceci n'est pas un cube 256b by Ate Bit ). 

   Dive   16K  (1999):   потомок   object
shower'а  из Spirius, превратившийся в ма─
ленькое  сюжетное 3D демо (по сути единст─
венное на текущий момент чисто 3D-шное).

   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 дисков исходни─
ков, в которых никто не смог разобраться.

   CC000 invitation  by  Razzlers (2000):
чанковое  3D используется для "переворачи─
вания" страниц  с разными  эффектами. Нас─
колько  помню, там  довольно  оригинальный
tmap, где U и V считаются раздельно. Что-
то похожее  было только у Accept Corp в их
медленных 3D демах.

   Rizc by Extreme(2000): попытка вывести
чанковое  3D  поверх  пиксельной картинки.
Получилось медленно.

   Dogma by Placebo(2000): на том же дви─
жке реализован  некоторый  сюжет. В движок
были  добавлены  прозрачные  полигоны (или
они были  уже  в CC000 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+16col
или  ATM2 ). Это  переделанный  движок  от
X-Trade. В деме также появился текстуриро─ 
ванный  "куб, вид  изнутри" - реально  это
даже шар. Но это 2D эффект. Его упрощённая
разновидность "цилиндр, вид изнутри" пока─
зана в New Wave 48K(2013).

   The Link  by  Alone  Coder  и  товарищи
(2009): первыйtmap под цвет на точку (ча─
нки2x2 ),на этот раз написан новый движок
с использованием вращалки от JtN/4D и сор─
тировки  от  Sair00S/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! :) 



Другие статьи номера:

Помощь - об оболочке: произошли некоторые изменения в кнопках.

Предисловие - от авторов: Прошедшие два года были очень насыщенными.

Комьюнити - ZX Spectrum: Как это было в Рязани (1980-е).

Комьюнити - ZX Spectrum: Как это было в Рязани (1991-1993).

Комьюнити - ZX Spectrum: Как это было в Рязани (1993-1995).

Комьюнити - ZX Spectrum: Как это было в Рязани (1995-1997).

Комьюнити - сценеры шутят.

Код - этюды: вызов процедур по списку адресов.

Код - 3D демы на ZX Spectrum: история развития 3д движков.

Код - 3D движок: оптимизация на прообразе 3D Construction Kit.

Код - 3D движок: фрагменты.

Код - Посекторный движок для 3D-шутера от Destr.

Код - 3D скролл на ZX Spectrum (часть 1).

Код - 3D скролл на ZX Spectrum: реализация (часть 2).

Графика - графические редакторы: Старый софт от Alone Coder'а.

Графика - палитра: Палитровые эффекты в играх.

Музыка - биперные движки: Двоичная модуляция (часть 1).

Музыка - биперные движки: Двоичная модуляция (часть 1).

Системки - история операционной системы CP/M для Спектрума (часть 1).

Системки - история операционной системы CP/M для Спектрума: ограничения (часть 2).

Системки - NedoLang: Начало - самый простой процедурный язык (часть 1).

Системки - NedoLang: Путь к самокомпиляции (часть 2).

Системки - NedoLang: Проклятие языка Си (часть 3).

Системки - NedoLang: Памяти под самокомпиляцию не хватало (часть 4).

Системки - NedoLang: ускорение (часть 5).

Системки - NedoLang: Куда плыть дальше (часть 6).

Металлолом - Знакомьтесь, ATM-turbo 3! ATM-turbo 3 (v8.0) - что это такое и с чем его едят.

Металлолом - Из истории Betadisk'а: Дисковый интерфейс от Technology Research был.

Дикий ум - Компрессия: Первые компрессоры графики на Speccy (часть 1).

Дикий ум - Компрессия: Фичи с эвристикой, Потоковая декомпрессия, Сжатие музыки (часть 2).

Игрушки - От редакции: 2017-й год вышел очень богатым на события.

Игрушки - интервью с автором игры Mickey the Basic game (Sergio).

Игрушки - квест "Неожиданное Путешествие" - взгляд изнутри.

Игрушки - Nomad: интервью с автором скролл-шутера Nomad (Hippiman).

Игрушки - Скроллинг в Evo SDK.

Игрушки - Hints & Tips: Mickey, Nomad.

Мыльница - Errata: ошибки в Info Guide #11, ACNews #65.

Письма - отзывы о журнале от: raver, destr, sirx, survivor, Ellvis, Utz и Николая Амосова.

Об авторах - Авторы журнала.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Ruins of my minds - о новом издении Heresy. О том как Demiurg ASH ушел из Eternity Industry. Сцена гибнет. Сцена разваливается.
Клуб - ЗНАКОМСТВО СО SCORPION-БЛЯДЬ КЛУБОМ
Party - отчет с первой Латвийской демопати: PHAT9.

В этот день...   22 февраля