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 З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! :)
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября