О виртуальной реальности (1/2)

Oct 23, 2014 01:31

Добыл себе по работе Oculus VR (oculus.com) и впервые провел в хедсете пол-дня. Сейчас прошло несколько часов, я налил вискаря и немного отошел от шока и трепета - теперь расскажу, как это было. Спойлер: тут семь страниц текста, я писал их два дня, и придется все равно писать второй пост.

Начнем с того, что виртуальная реальность - это была такая как бы мечта. Ну, то есть, ты вырастаешь, становишься взрослым, эдаким бодрым self-made man, и начинаешь всем рассказывать, что мёчт (мечтов?) не бывает, а бывают только кратко- и долгосрочные планы. Но это все вранье, конечно же - всегда остается что-то чистое, детское и сокровенное. Которое как бы никогда не произойдет, а поэтому можно особо не париться и в «планы» его не записывать. Например, у меня в этом списке были телепортация, виртуальная реальность и полететь в космос, а теперь одна из этих вещей случайно исполнилась, и теперь немного непонятно, как дальше жить.

Дисклеймер: я сначала буду рассказывать про все плохое и скучное. Это для того, чтобы те, кто слабо разбирается в этих вещах, и для кого «виртуальная реальность» примерно эквивалентна «адронному коллайдеру», лучше сразу перестали читать и навсегда для себя решили, что это какое-то детское гиковство и совсем не для них. Так, право же, будет лучше всем. Кто ее знает, эту вашу «Матрицу» - от нее, говорят, слепнут (rim shot!). Если вы ничего не понимаете в IT, но зачем-то безумно мечтаете о виртуальной реальности - сразу пролистайте на пару страниц ниже, а лучше дождитесь следующего поста, там будет веселее.

И еще дисклеймер: объяснить, как это работает и почему это так невероятно круто - очень-очень сложно. Примерно как описывать Лоуренсу Уотерхаузу как проходится последний уровень Doom на Nightmare. Я попробую, но у меня вряд ли получится.

Так вот. Oculus нельзя просто купить - надо заполнить длинную и нудную форму (гораздо скучнее, чем даже у Google Glass), доказать, что ты настоящий программист и объяснить, что конкретно ты собираешься делать с данным волшебным приспособлением. Я когда-то накатал им заумную телегу со всяким tech visionary bullshit и тут же про нее забыл.

Со времени телеги прошло немало времени. Теперь девайс называют не Oculus Rift, а просто Oculus VR, а платформа обновилась до версии 0.4 или Development Kit 2 (DK2). Простыми словами это означает, что куча старых симуляций под новым хедсетом не работают или работают плохо. Так что всем предприимчивым трендсквоттерам, которые успели свои телеги накатать раньше, во времена версии 0.2, скорее всего придется свои симуляции кодить заново. Моя телега прокатила с запозданием, и мне нежданно-негаданно прислали уже сразу Oculus VR DK2.

Oculus присылают в обычной картонной коробке. Внутри коробки лежит собственно хедсет, видеокамера для position tracking (как у Кинекта) и чертова куча кабелей вперемешку с переходниками. Руководство пользователя представляет собой буклетик из 4 страниц и небрежно затусовано в простенок коробки. Если бы «Эппл» делал VR (а они, несомненно, делают) - его бы колбасили 5 лет, а потом выпустили прекрасный белый полуобруч (как у PS4, только круче, легче и красивее) в чудесной голографической упаковке, и все бы работало само собой как по волшебству. Джон Кармак - создатель 3D и, теперь уже, крестный отец VR - выбрал другой путь (абсолютно правильный!). Старым циничным пердунам типа меня нужно было напомнить, что Новый Мир не приходит по волшебству - он приходит с годами, выстраданными на модемах 14400 бод и спаянных вручную COM-шнурках. Отсюда и полный ад с инсталляцией.

Хедсет подключается к компу сразу двумя кабелями - HDMI и USB - и отдельно к розетке. Кроме хедсете нужно камеру (position tracker) прицепить сверху монитора или экрана лэптопа, и подключить шнурком TRRS к хедсету, а miniUSB->USB - к компьютеру. И это все не учитывая клавиатуры, мышки и наушников-«таблеток» (забегая наперед - лучше всего вообще без наушников, эффект получается чище , но «таблетки» однозначно лучше студийных). В итоге получается примерно вот так.
Почему весь этот ужас не wireless? Почему нельзя иметь интегрированный звук? Ну да ладно, поживем-увидим.

Потом нужно зарегистрироваться на сайте developer.oculusvr.com и кучу всего скачать:
  • Oculus Runtime - собственно среду, под которой будут работать все симуляции
  • Oculus SDK - если вы действительно разработчик, а не читер, как я
  • если не качать SDK, то можно скачать сразу Tuscany Demo - это нативная «вылизанная» симуляция, там можно сразу понять, как все работает (спойлер: на самом деле, нет)
  • перегрузиться, запустить Runtime и оттуда обновить прошивку до последней версии
  • тут сходу стоит клацнуть на кнопочку Show Demo - хотя бы будет понятно, работает или нет
  • любой набор приложений/симуляций из местного эпп-стора по вкусу (под PC гораздо больше, чем под Mac)
Я почему-то думал, что в хедсете сразу можно будет видеть хотя бы интерфейс системы, но все оказалось очень плохо, поэтому под PC сразу рекомендую Virtual Desktop - тогда все дальнейшие операции можно будет делать, не снимая очков.

Oculus - это, фактически, монитор. Поэтому почти сразу после инсталляции нужно пройти через специальный ад, который называется синхронизация мониторов. Не буду портить вам удовольствие, скажу только, что на Macbook Pro мне это в итоге удалось, а на новейшем геймерском лэптопе Lenovo под Windows 8 - нет. И это при том, что Oculus все-таки гораздо больше заточен под PC, особенно если заглянуть в его эпп-стор. Простое правило проверки готовности системы такое: и на хедсете, и на камере должен гореть не оранжевый, а синий огонек - тогда все ок, можно надевать и запускать симуляции. В мануале этого я этого почему-то не нашел.

Теперь надо сразу запомнить главный минус VR - там нельзя ходить. Чтобы двигаться, все равно надо нажимать кнопки (w-a-s-d или стрелки), а иногда еще задействовать мышку, пробел и еще кучу всего. Для геймера со стажем это не составляет проблем, но обычного пользователя гарантированно ставит в тупик. После многих проб и ошибок, делаю примерно так:
  • сначала просто вешаю хедсет на макушку, не надевая на лицо
  • вставляю наушники
  • кладу левую руку на w-a-s-d, большой палец на пробел
  • запускаю симуляцию, надвигаю хедсет и уже вслепую кладу правую руку на мышку
Забегая наперед, это звучит гораздо страшнее, чем есть на самом деле - при полноценно настроенном VR ваш мозг забывает, что нажимает кнопки, буквально через пару минут симуляции.

Первое, что я сделал после двух часов ада настройки и подключения - это запустил стандартную Tuscany Demo. Как следует из названия, вы оказываетесь в небольшой двухэтажной итальянской «вилле» с различной красоты видами из окон и со двора. Тут сразу надо сделать акцент на слове «оказываетесь». Когда нормального человека пытается загипнотизировать «профессиональный» гипнотизер - нормальный человек падает на мороз и говорит, что эта херня на него не действует. Когда техно-гик надевает VR-хедсет, он хочет, чтобы эта херня подействовала. Опять таки, если вы подходите к эксперименту с позиции гипнотизируемого - лучше б вам было перестать читать еще на третьем абзаце. Если же попытаться «вжиться» в происходящее, становится совсем неплохо - сразу выносит мозг способность крутить по сторонам головой. Это вообще главное в VR - да, впрочем, и в вашей скучной реальности тоже полезно.

Очень важно сразу же правильно скалибровать девайс. Для близоруких в коробке есть специальные линзы - нужно выкрутить стандартные и вкрутить эти, предназначено примерно для людей от -1.5 и ниже, без очков. Проверил, не помогает. Я использую Oculus в контактных линзах - все работает почти на стандартных настройках, но через пару часов глаза начинают болеть. К слову, если очень хочется, можно и в очках, но тогда голова раскалывается уже через час. Настраивается в Oculus очень много чего, начиная от расстояния от глаза до линзы, и заканчивая фокусом каждого глаза в отдельности. Настоятельно рекомендую не лениться и настроить Oculus максимально под себя - иначе волшебства не будет, а будет тошнота. Про тошноту это правда - если не настроить девайс как следует, то спустя несколько минут начнет колбасить вестибулярный аппарат.

Через несколько минут симуляции, когда первые восторги подутихнут, вы подойдете вплотную к 3D-объектам и обнаружите, что качество рендера текстур находится примерно на уровне начала 2000-х годов. Вот тут и начинается первое «вау», когда понимаешь, что качество графики в виртуальной реальности на самом деле не важно, и главное - правильно обмануть мозг. Собственно, это и понял Кармак - так он оказался одним из основателей проекта. Еще раз, по буквам: все дико уродливо, но все равно охуенно. Это невозможно понять - это надо просто запомнить.

Если перевести на простой язык - стоит настроить угол проекции и всякое стерео-варио определенным образом, как ваш мозг переходит определенный порог и оказывается обманутым. Теперь сразу начинаются интересные вещи. Во-первых, мозг начинает требовать оправдания происходящему - поэтому почти любая third-party симуляция или игра лучше вот этой стандартной потому, что в играх есть хоть какой-то сюжет. Во-вторых, мозг пытается натянуть рецепторную физику на воспоминания от «реальной» реальности, и это у него плохо получается - мозг не привык, что ты вроде как в «реальности», но при этом текстуры уродские и нету запаха/осязания/вкуса. Отсюда сразу вытекает первый большой вывод: чем менее «реальна» симуляция, тем легче в нее вжиться. Тосканская вилла выглядит смешно и нелепо, а какой-то дикий сай-фай - запросто.

Это дополняется второй проблемой - вы не можете по-настоящему ходить. То есть можно встать и сделать шаг, но вы этого не увидите - мозг в шоке. Или можно сидеть и крутить головой по сторонам - мозг в восторге, но смущенно напоминает, что вроде бы можно заглянуть за спину. Оказывается, нельзя. В итоге сильно выигрывают любые симуляции, где игрок сидит (гонки, авиасимуляторы, танки и прочее) и очень проигрывают обычные 3D-шутеры. Если зайти в местный эпп-стор, сразу видно, что гонок и леталок не меньше половины, и симулятор выхода в открытый космос гораздо популярнее второго Half-Life.

А потом я скачал маленькую демку под названием Omnipresence, и все сразу осознал. Вот как это было. Сразу после запуска почти у всех симуляций большое предупреждение на весь экран - мол, не сидите слишком долго и постарайтесь не наблевать внутрь хедсета. Заглушка также выполняет роль шлюза - нельзя заранее (на обычном, дублирующем мониторе) увидеть, что в демке происходит.

Я надвинул хедсет и увидел очень маленькую комнатку - скорее даже, камеру. Стены квадратные, на каждой по две серых вертикальных панели в рамах. Передо мной и позади меня две деревянных скамейки со спинками, я стою в узком проходе. Очень тихо, слышно непонятное ритмичное поскрипывание и тихий свист, похожий на звук сквозняка. Почему-то становится холодно - это мой мозг уже все понял и вспомнил, а я еще нет. Потыкал в скамейки, пол и потолок - ничего. Прижался к серой «панели» на стене - прямо передо мной протаяло маленькое круглое отверстие. Я заглянул в дырку и увидел белую пургу, склон горы и черные ели. Теперь стало понятно, где я - это лыжный подъемник, а серые штуки на стенах - заиндевевшие окна. Я протер дырку чуть пошире. Угрюмые неподвижные ели медленно уплывали вниз и налево - значит, я еду вверх, а это левая стена гондолы подъемника. Над елями одиноко кружился черный ворон. Было довольно таки высоко, склон выглядел очень крутым и опасным. Завывала пурга, тихо поскрипывал подъемник. Мне стало интересно, куда я еду, и долго ли еще ждать. Я протер переднее стекло и увидел над головой два толстых кабеля, уходящих вперед и вверх, в непроглядную пургу - дальше двух-трех метров разглядеть что-либо было невозможно. Тогда я обернулся и начал протирать дырочку в заднем стекле, чтобы узнать, откуда я еду. Я проделал совсем маленькое окошко и заглянул внутрь - И ТУТ В МЕНЯ НЕОЖИДАННО ВРЕЗАЛСЯ ВОРОН, в стекло прямо у меня перед носом, прямо в мое маленькое, уютное протаявшее окошко. Здоровенный, блядь, черный ворон. С диким клекотом и омерзительным глухим шмяком.

Это был пиздец.

Я дико заорал, содрал с лица Oculus - кажется, чуть не вывихнул палец при этом - и швырнул его на пол. Было просто непередаваемо страшно, страшнее любого «Звонка», страшнее бабая под кроватью, страшнее хлюпающих жвал, хитиновых панцирей, кривых клыков, страшнее зомби и демонов - просто дикий первобытный ужас.

Я в панике озирался по сторонам, видел испуганные лица коллег и не мог понять, кто эти люди, где я, и почему я не сдох от разрыва сердца там, в этой заиндевевшей гондоле. А потом я вдруг вспомнил. И сразу испытал неимоверное всепоглощающее СЧАСТЬЕ - гораздо сильнее, чем чувствуешь, проснувшись от ночного кошмара в теплой домашней постели. Это было понарошку. Не было никакого ворона.

КАК ЭТО НЕ БЫЛО, отчаянно вопит мозг, ты чего - вот этой вот мерзкой здоровенной хуйни с когтями и пылающими красными буркалами не было? Удара, хруста стекла и паутины трещин прямо у меня перед носом? Нет, говорю, спи, маленький, это был просто сон.

Потом я посадил за симуляцию коллегу и стал смотреть за его приключениями через дублирующий монитор. Он беспомощно тыкался в уродливые низкополигональные «стены» и «окна», в которых рывками(!) проплывали черные треугольники, символизирующие сосны. Тут он повернулся к задней стене, я предусмотрительно сделал шаг в сторону, и он точно так же заорал и содрал с лица шлем.

Так вот. Не было красных буркал и кривых когтей. Не было хруста стекла и паутины трещин. Не было даже ворона - посреди экрана возникла черная точка, выросла в что-то темное из нескольких грубых полигонов, и исчезла. Раздался негромкий звук удара. Все.

Вот так все и работает. Вы это и так знали. И я знал. Никакого открытия. Тоже мне, новости. Но это все равно случилось.

Повторюсь - читать, как работает «Окулус», или смотреть демки на ютюбе совершенно бесполезно. Пойдите в ближайший развлекательный центр и попробуйте сами. Желательно вторую модель Окулуса, DK2. А я вот за два дня накатал восемь страниц, и все равно еще даже не начал рассказывать самое важное. Ну и ладно. Потом дорасскажу.
Previous post Next post
Up