Компания 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 будет состоять из десятков, а то и сотен миллиардов точек. Сколько это будет в гигабайтах? Сложно представить. Для традиционных игр все технологии давно отработаны. Координаты полигонов занимают не так много места, текстуры прекрасно сжимаются, а все красоты делаются при помощи шейдеров и прочих ухищрений.