Спрайтовые динамические тени

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

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

Чёрный блин под ногами[править]

На дворе седая древность, эпоха первых PlayStation и олдовых ПК. Динамические тени? Расчёты в реальном времени? Забудь. Верхом технологического прогресса и объектом влажных фантазий любого геймдизайнера был… простой кружочек. Да-да, ты не ослышался. По сути, это был незамысловатый чёрный овал, который, словно верный пёс, таскался под персонажем, куда бы тот ни попёрся. Прыгает ли твой герой через пропасть или бежит от очередного монстра — этот блинчик, эта квинтэссенция лени и оптимизации, всегда был тут как тут.

Реализовано это было с изяществом, достойным гения. Брался самый обычный плейн или, для особо продвинутых, декаль, и просто проецировался строго вниз от центра тушки героя. Никакой тебе физики, никаких расчётов преломления света. Просто плоская, как шутки резидентов Камеди, текстура, приклеенная к полу. И ведь работало! Хомячки были в восторге, а разработчики получали свой профит, не насилуя слабое железо. Быстро, дёшево и сердито. А что ещё нужно для счастья?

Тень учится танцевать[править]

Но время шло, ЧСВ разработчиков росло, и простого кружочка стало мало. Игрокам хотелось реализма. И тогда какому-то сумрачному гению пришла в голову очередная гениальная мысль: а что, если вместо убогого блина подсовывать игроку нечто более осмысленное? Так зародилась продвинутая версия костыля — псевдодинамическая тень. Этот подход получил своё развитие ещё на старых консолях, где каждый байт и такт процессора был на счету.

Суть обмана вышла на новый уровень. Где-то высоко над головой персонажа невидимая камера делала его условный снимок строго сверху, причём для экономии ресурсов рендерился только сам герой, без всей этой вашей мишуры вроде окружения. Полученный силуэт, этакий фоторобот для бедных, в виде плоского спрайта проецировался на поверхность под ногами. И тут начиналась магия! Тень внезапно оживала: она повторяла анимации персонажа, дрыгала конечностями в такт его движениям и даже корректно ложилась на всякие лестницы и кубы. Игрок видел, как тень его персонажа бежит, прыгает и приседает, и млел от восторга, не подозревая, что его снова наебали, подсунув всего лишь плоский спрайт. Эта технология работала годами: персонажей фотографировали с видом сверху, получали их изображение, накладывали на спрайтик и таскали следом.

Как это работало (для задротов)[править]

Если ты, анон, не прогуливал информатику, то тебе будет интересно узнать, что вся эта махинация проворачивалась через так называемый render target. Это такая специальная область в памяти, куда можно отрисовать что-то отдельно от основного экрана.

*render target — буфер, область памяти, содержащая данные для рендеринга сцены. Обычно имеет один или более каналов.

В нашем случае туда с видом сверху рендерился персонаж, превращаясь в чёрно-белую маску. А уже эта маска, как дешёвая наклейка из жвачки, лепилась на пол. Иронично, что в современных движках, вроде Unreal Engine, подобная реализация «для примера» может оказаться довольно дорогой, ведь создаётся полноценный рендер таргет со всеми его каналами. Но это всё можно сделать и сильно дешевле, если не лениться. Впрочем, сейчас этим уже, понятное дело, никто не пользуется, так что это не более чем историческая справочка для олдфагов.

А как же настоящее освещение?[править]

Кстати, о срачах с движком. Вся эта возня с фейковыми тенями была вызвана не только слабостью железа, но и суровыми ограничениями тогдашних технологий освещения. Болью любого левел-дизайнера, работающего с запеканием света, была (и остаётся) ошибка о пересечении более четырёх источников света. Это священная корова Анрыла и его системы запекания света Lightmass. Суть в том, что на одну текстуру карты освещения (лайтмапу) не может влиять больше четырёх стационарных источников. Почему? Потому что в текстуре всего четыре канала (RGBA), и каждый свет занимает один канал. Всё, лимит.

Конечно, это можно обойти. Можно вручную указать, какой из источников света пойдёт в запекание, а какой останется полностью динамическим и не будет участвовать в этом шабаше. Можно даже настроить несколько лайтмап, и тогда каналов станет восемь. Но обычно левел-дизайнеры стараются просто не ставить больше четырёх лампочек в одном углу, чтобы не вызывать гнев машины. Хотя, справедливости ради, в пятом Анрыле запекание света и без того может намертво зависнуть на 0 % просто потому, что у него плохое настроение. Так что некоторые вещи, анон, не меняются.

Telepuz 2.jpg Человек нонче игры разные ценит весьма, дык
МетаRPGИгровая консольШтампы в компьютерных играхИгровой движокТиммейтМассовый запрет игровых видео на YouTubeРейтыАгроWarcraft III — не канонАвтокликерДонат в игры из РоссииАрхидьявол (Герои 3)Лесные тени (Герои 3)Это собака?Blizzard измеряет соцсправедливостьЭто игра?Дроп (видеоигры)Надо, чтобы на КЧ напалПол это лаваКоллекционная играШахматная доскаВизуальная новеллаКонсольТяжёлые танки (World of Tanks)САУФлеш-игрыЛёгкие танки (World of Tanks)Консоле-холопыСредние танки (World of Tanks)Кризис переводов современных видеоигрКомпьютерное зрениеТокенОтсутствие МефистоБоязнь женской грудиSteam для пиратовБонусЗахват движенияВырезанный контентПазлЗаконы жанраA-Life 2.0Red Dead RedemptionDxvkVkd3dСэм ХаузерClaw EngineCuckpointMi hermano no estáO3DEВыбор зомбиЧувак (Postal)Евгений ГришаковКрипыBaba YetuWarhammerСписок персонажей Sword Art OnlineГовноигрыБронечайка (Гвинт)ShovelwareШахматный рендерингDirectStorageAdventureЭкшн-триллерШутерыШутерыCRPGRTSTBS
ЯвленияЖульничество в шахматахРусская кибердеревняОткрытый мирКастомизация персонажаElden Ring против The Witcher 3ПапкаDarksiders GenesisЧекпоинтCheat EngineРед (персонаж)Speedrun.comМоей сестры нетЕврейские корни BioshockМитаСтиль миллениаловFextralifeДжонатан РоджерсМетание шахмат в оппонентаСломанная механикаПрокачкаПешкаЗемля свободныхФарм клоуновБольшая чёрная светящаяся сфераВойдзонаТень ОробиссаРаспуджовкаWho's Lila?Убийство АрхимондаПочему не ВайперНейтан ДрейкR.G. МеханикиГенеральский эффектОгромный боссЭпоха ремейковАлексей Воктаков (Катков)Травля Илона Маска псевдогеймерамиААА-игрыОптимизацияТройная буферизацияRTXSpeedrunБетрезенПацификаАльваро КалметTerminals.ioCs.rin.ruGaiminВайфугеймКвадратные кроссвордыПочему титаны слишком большого размера? (Хроники Хаоса)Души тьмыSegaФоллаут-онлайнГейлендКамень, ножницы, бумагаBASKACombats.ruАббревиатуры имени МедоксаОлег СтавицкийМобильные игрыАвтобаттлерОнлайн-игрыMOBABeat 'em upСкурвившиеся игрыТанки free-to-playZumaLuxorТапалки в ТелеграмеGLaDOSХейтеры про Ведьмак 3Деградация Equestria at WarDirectXValveБезумная сложностьСложностьМинусы Ведьмака 3The Elder Scrolls Travels: Oblivion (PSP)Найди невидимую коровуMindsEyeДизлайк из Бравл Старс
ЭпическоеНайди отличияУльтаГриферыКрестики-ноликиДонатная помойкаМультиплеерГамблингАзартные игрыСеранаArdub92СасикSupermassive GamesСтарый богХагги ВаггиИл-2Шахматная партияВнутриигровая валютаГриндилкаКатсценаБэктрекингГлорхМясной жукВидениеRMTEMPRESSМемные карточки ХСЕкатерина СтадниковаЦарь Соломон и шахматыМасонские шахматыАвтошахматыСигма-гармонайзерЧёрная стражаTeam SpiritНиколай АрмоникБойкот лаунчеровАвтохукБуст аккаунта в ДотеДота как медитацияWraith KingFFAДмитрий РоммельДэвид МайерсБагоюзерствоАчивкаВетераны ВОВРуслан ДиденкоМоршуОлег ЯворскийЧерноруссияRagDollСаня ТропинGiboSteam MachinesЭльф-торговецHD-изданиеИнди-хитыМидирGrimtoolsИгра в настольные игрыМетарабыПавел БурзаNetHackГюнтер о'ДимКирилл Баранов (Пятёрка)FunpayКанобуТюрягаРенфриКастомизация оружияГенератор случайных чиселDisable Core 0HvHРомхакингИгры из репозиториевProton GEМегатекстураPS4-Fake-PKG-ToolsВидеоигры про АстериксаОказуаливаниеThe SinПовестка SJWКартриджи для восьмибитки от NintendoStop Killing GamesSmekta: The Game7LauncherИнди-клише
ЛегендарноеТактические шутерыВиртономикаE3Настольные ролевые игрыМеркиSonyChris-chanSourceНастольная играГнилецБорьба с задницей ТрейсераКамбиВпук Дагона на рядДагон на токенахКотовухаБерашна а, бегашийна аДелает ли прокачка титана его сильнее или слабее? (Хроники Хаоса)Нужен ли Тесак? (Хроники Хаоса)На чём ездит Марта? (Хроники Хаоса)КибердемонЩитспавнRedotAsset FlipФайтингиMoswar.ruXbox Турция: Алярм, суки, аккаунты горят!Игру убилиЖенщина на корабле к бедеУправление рандомомИвентТрассировка фотоновHZB OcclusionTressFXОбъективный обзор игрПлотваChangedПочему плотва это лошадь?Расстрел НильфгаардаОрден смертного бденияУроборукКолдовские богиМусилакШтормовая плетьАнастерияНадзиратель ПотустороннегоЗвук пердежа в видеоиграхФракции Grim DawnКлючникКейранДевятая силаPay2WinБитва против 7 противников в Red Alert 2Гача-игрыMMORPGARPGRTSКвестFatCatDDrawCompatLOVE the gameПАНЕЛЬКИEurasian Game ShowMy name is You and it's the only unusual thing in my lifeNEEDY GIRL OVERDOSERiotlocThe Tomorrow WarEchoMindustry
Моды, карты и васянствоЛегенда о ТильдеParagonHorn of the AbyssJebus CrossX-PiratezOpenXComJebus OutcastThe World of Terrifying Silence6lm10a (шаблон)VANOMAS DEMO5 ночей с Тимохой 2: ДеревняСильная прокачкаSteampassФреймрейтNVidiaВзрыв лутаGTA: Криминальная РоссияМод-сообщество Рога и Копыта (Barnyard)Шахматный корольПасьянс КосынкаPity SystemЛегендаркаИгровые ресурсы
Игры реалаLEGOMagic: The GatheringБерсеркГоДоминоКамень-ножницы-бумагаКубик РубикаМонополияНа раздеваниеПокерПреферансРусская рулеткаСтрайкбол / Пейнтбол / ХардболШахматыЭкономические игры с выводом средств