Облака точек заменят полигоны
Компания Unlimited Detail готовит революцию в трёхмерной графике. Технология, которую она разработала, якобы позволит отрисовывать сцены "бесконечной сложности".
Автор: Игорь Осколков
| Раздел: Статьи |
Дата: 26 апреля 2010 года
Компания Unlimited Detail продемонстрировала новую технологию рендеринга трёхмерных сцен. Её уникальность заключается в том, что она позволяет обсчитывать сложнейшие сцены силами исключительно центрального процессора - без использования видеокарты. Более того, разработчики заявляют, что вовсе не обязательно использовать самые мощные процессоры. Звучит не слишком правдоподобно, но демонстрация технологии не может не впечатлять.
Разработка Unlimited Detail ведётся с 2004 года, а выход первой версии намечен на 2011 год. На данный момент доступна всего пара демонстрационных роликов с кратким рассказом о принципах работы новой технологии и сравнением с уже существующими методиками. Технические же подробности раскрываются крайне скудно. Также нет никакого демонстрационного приложения, которое можно было бы запустить на своём компьютере и воочию убедиться в достоинствах Unlimited Detail. Зато в ролике показывается красивая сцена, которая состоит из восьми миллиардов точек. Причём отрисовывается она со скоростью 25 кадров в секунду всего на одном ядре процессора.
Так как же всё это работает? В рассказе разработчики красочно описывают недостатки современной трёхмерной графики, которая базируется на полигонах. В пример приводится относительно невысокая детализация и угловатость объектов. В современных видеокартах эти ограничения обходятся с помощью различных ухищрений – например, тесселяции, которая наконец-то появилась в DirectX 11.
Разработчики Unlimited Detail предлагают отказаться от полигонов вообще, а вместо них использовать так называемое "облако точек" (point clouds), которые по своей сути очень напоминают воксели - трёхмерный аналог пикселей. Вся сцена состоит как раз из таких точек. Преимущество новой технологии заключается в том, что любой объект можно отрисовывать максимально подробно. При использовании полигонов такого достичь практически невозможно. Разработчики даже заявляют о возможности бесконечной детализации. Тут, правда, стоит оговориться - бесконечное число точек должно потребовать для хранения бесконечный объём памяти, а на их отрисовку уйдёт бесконечное время. Так что не будем пытаться интерпретировать слова авторов технологии слишком буквально.
При ближайшем рассмотрении Unlimited Detail возникает много вопросов. В ролике показывается сцена, которая состоит из 8-ми миллиардов точек. Каждая точка должна иметь как минимум координаты и цвет. Получается, что сцена в чистом виде занимает пару-тройку десятков гигабайт. Причём доступ к этому объёму памяти должен быть очень быстрым. Так что вариант чтения данных с жёсткого диска отпадает, и весь этот массив должен храниться в оперативной памяти. Это в теории. На практике разработчики заявляют, что они придумали некий уникальный алгоритм сжатия "облака точек". Опять-таки, никаких подробностей о нём нет.
Теперь самое интересное – как разработчикам удалось добиться столь высокой скорости отрисовки. Секрет объясняется довольно просто – на экран выводятся только те точки, которые в данный момент должен увидеть пользователь. Например, разрешение экрана составляет 1024x768, то есть надо отрисовать всего-то 786432 точек. С такой задачей, действительно, может справиться даже Intel Atom. Настоящая задача - из миллиардов точек выбрать только те, которые нужно вывести на дисплей. В этом-то и заключается главное ноу-хау Unlimited Detail. Разработчики заявляют, что придумали очень быстрый алгоритм поиска по массиву точек.
Брюс Делл, директор компании Unlimited Detail, сетует, что современные видеокарты только и делают, что занимаются обсчётом полигонов. При этом их производительность растёт всего на 22% в год, и пора бы уже прекратить эту бессмысленную гонку. Он искренне верит, что новая технология в буквальном смысле убьёт весь рынок видеокарт и профессиональных графических ускорителей. Он также надеется, что в течение 16-ти месяцев на рынке уже появятся первые игры на базе Unlimited Detail.
NVIDIA и ATI на удивление спокойно отреагировали на столь смелые заявления. Точнее, обе компании просто проигнорировали их. В чём же дело? Даже если предположить, что разработчикам Unlimited Detail действительно удалось создать алгоритмы сжатия и поиска точек, то всё равно остаётся очень много неясных моментов.
Например, сцена из ролика по размерам намного меньше, чем уровень в любой современной игре. Отдельная локация из, к примеру, Bioshock будет состоять из десятков, а то и сотен миллиардов точек. Сколько это будет в гигабайтах? Сложно представить. Для традиционных игр все технологии давно отработаны. Координаты полигонов занимают не так много места, текстуры прекрасно сжимаются, а все красоты делаются при помощи шейдеров и прочих ухищрений.
Вопросы вызывает и возможность моделирования световых эффектов в облаке точек: прозрачности, отражения, преломления, бликов и так далее. За все эти эффекты в полигональной графике отвечают именно шейдеры. Теоретически, различными ухищрениями реализовать их можно и для точек, но это приведёт к резкому росту нагрузки на процессор. А ведь настоящей игре нужно тратить ресурсы и на искусственный интеллект, физические модели объектов, их взаимодействие и многое другое. Вся эта нагрузка обычно ложится именно на центральный процессор. Конечно, всё вышеперечисленное можно рассчитывать и на видеокартах (при помощи PhysX, например), но какой тогда смысл в Unlimited Detail?
Не стоит забывать, что все эти облака точек - это всего лишь разновидность вокселей. Их, в свою очередь, очень сложно анимировать. Отчасти по этой причине воксели нечасто применяются в игровой индустрии. Другая проблема вокселей - слишком высокие требования к ресурсам компьютера. В демонстрационном ролике Unlimited Detail представлена всего лишь статичная сцена. Вообще, эта технология в чём-то напоминает другой известный продукт - ZBrush. "Unlimited Detail внешне очень похожа на воксели, но с хитрым алгоритмом отсечения, - комментирует преподаватель компании Real Time School Вадим Борзенко, - Не исключено, что разработчики в далёком 2004-ом году вдохновились ранней версией ZBrush. Вопрос в том, как они хранят данные и осуществляют поиск по ним".
Наконец, нельзя не упомянуть экономический аспект. На разработку игр сейчас тратятся десятки миллионов долларов. Существует огромный штат специалистов. Большинство средств разработки созданы с учётом полигональной технологии. Почти все алгоритмы трёхмерной графики работают именно с ними. Игровая индустрия банально может оказаться не готовой к такой резкой смене ориентиров. Разработчики Unlimited Detail признаются, что на данный момент даже нет никаких утилит, которые могли бы конвертировать традиционные трёхмерные модели в облака точек. Небольшие студии могут относительно быстро перейти на новую технологию, но таким грандам как, например Electronic Arts, переход обошёлся бы в гигантские суммы.
Существует ещё один очень тонкий нюанс. При разработке игр принято использовать относительно простые модели объектов, а затем доводить их внешний вид до приемлемого с помощью различных технологий. Такой подход позволяет за короткие сроки создавать достаточно детализированные модели. В случае с Unlimited Detail всё гораздо сложнее. Каждый объект придётся вручную создавать с очень высокой детализацией. Чем детальней надо представить такой объект, тем больше времени уйдёт на отрисовку.
Unlimited Detail – действительно очень интересный проект. Но до выхода SDK и первых приложений говорить о перспективах рано. Брюс Делл надеется, что его детище приживётся не только на приставках и ПК, но и на мобильных устройствах. Также сейчас ведутся переговоры о коммерциализации технологии. Разработчики надеются, что в будущем они смогут договориться о сотрудничестве с каким-нибудь из крупных вендоров: ATI, NVIDIA или Intel. Но пока сама мысль о том, что видеокарты в скором времени исчезнут, кажется чересчур наивной. Слишком много сил и времени было вложено в эту индустрию, чтобы в один прекрасный миг какая-то мелкая австралийская компания уничтожила её.