Цифровой журнал «Компьютерра» № 14 (Журнал «Компьютерра») - страница 5

Облака точек заменят полигоны

Игорь Осколков

Компания Unlimited Detail продемонстрировала новую технологию рендеринга трёхмерных сцен. Её уникальность заключается в том, что она позволяет обсчитывать сложнейшие сцены силами исключительно центрального процессора — без использования видеокарты. Более того, разработчики заявляют, что вовсе не обязательно использовать самые мощные процессоры. Звучит не слишком правдоподобно, но демонстрация технологии не может не впечатлять.

Разработка Unlimited Detail ведётся с 2004 года, а выход первой версии намечен на 2011 год. На данный момент доступна всего пара демонстрационных роликов с кратким рассказом о принципах работы новой технологии и сравнением с уже существующими методиками. Технические же подробности раскрываются крайне скудно. Также нет никакого демонстрационного приложения, которое можно было бы запустить на своём компьютере и воочию убедиться в достоинствах Unlimited Detail. Зато в ролике показывается красивая сцена, которая состоит из восьми миллиардов точек. Причём отрисовывается она со скоростью 25 кадров в секунду всего на одном ядре процессора.

http://www.youtube.com/watch?v=Q-ATtrImCx4

Так как же всё это работает? В рассказе разработчики красочно описывают недостатки современной трёхмерной графики, которая базируется на полигонах. В пример приводится относительно невысокая детализация и угловатость объектов. В современных видеокартах эти ограничения обходятся с помощью различных ухищрений – например, тесселяции, которая наконец-то появилась в DirectX 11.

Разработчики Unlimited Detail предлагают отказаться от полигонов вообще, а вместо них использовать так называемое «облако точек» (point clouds), которые по своей сути очень напоминают воксели — трёхмерный аналог пикселей. Вся сцена состоит как раз из таких точек. Преимущество новой технологии заключается в том, что любой объект можно отрисовывать максимально подробно. При использовании полигонов такого достичь практически невозможно. Разработчики даже заявляют о возможности бесконечной детализации. Тут, правда, стоит оговориться — бесконечное число точек должно потребовать для хранения бесконечный объём памяти, а на их отрисовку уйдёт бесконечное время. Так что не будем пытаться интерпретировать слова авторов технологии слишком буквально.

При ближайшем рассмотрении Unlimited Detail возникает много вопросов. В ролике показывается сцена, которая состоит из 8-ми миллиардов точек. Каждая точка должна иметь как минимум координаты и цвет. Получается, что сцена в чистом виде занимает пару-тройку десятков гигабайт. Причём доступ к этому объёму памяти должен быть очень быстрым. Так что вариант чтения данных с жёсткого диска отпадает, и весь этот массив должен храниться в оперативной памяти. Это в теории. На практике разработчики заявляют, что они придумали некий уникальный алгоритм сжатия «облака точек». Опять-таки, никаких подробностей о нём нет.