Приветствуем, геймер! Ты можешь или
16+
27

Геймер AvA 9

94

Что есть Воксель

Продолжаем отвечать на вопросы по технологиям.

Сегодня поговорим о вокселях.

Слово воксель - voxel - образовано от слова VOlume и аббревиатуры piXEL (pixel, расшифровывается как PICture'S ELement, элемент картины). То есть, переводится как "элемент объемного изображения" или "элемент объема изображения".. Обычно это шар или куб.

Не стоит приписывать пикселу и вокселю равносторонность. Это удобно, не более того. Иногда даже удобнее считать воксель неким параллепипедом - например, в карте высот.

Что есть Воксель
Обо всем - Что есть ВоксельЧто есть Воксель

Как работают воксельные движки

Воксели – точки в виртуальном трехмерном мире, эдакие маленький кубики, из которых можно построить любую фигуру. Использование вокселей дает нам возможность сохранить трехмерную фигуру любой сложности. Поэтому воксельные движки в компьютерных играх чаще всего применяются для генерации земного ландшафта, всех его бугорков и неровностей. Идеальный пример - серия вертолетных симуляторов Comanche от фирмы Novalogic. Впрочем, воксельной движок можно использовать и для других целей (в Blade Runner все трехмерные модели персонажей состоят из вокселей).

Давайте попытаемся разобраться, как именно воксельный движок создает трехмерный ландшафт. Вначале берется плоская картинка (как будто мы сфотографировали кусок земли сверху) и так называемая "карта высот" (heightmap) - массив данных, в котором хранятся значения высоты для каждого пикселя нашей картинки. Теперь движок в состоянии превратить плоский пиксель в трехмерный воксель. При этом - чем точнее будет наша карта высот, тем реалистичнее будет наш трехмерный ландшафт. И наоборот, если взятая карта высот будет слишком неточной (скажем, сможет хранить лишь десять различных отсчетов по оси Z), то финальная картинка получится весьма угловатой (так называемый эффект лесенки).

Окружающий нас мир изобилует мельчайшими деталями. Поэтому в воксельных движках используются специальные технологии, улучшающие качество heightmap низкого разрешения. Два наиболее распространенных способа основаны на диаметрально противоположных алгоритмах: первый добавляет множество новых отсчетов в карту высот, используя псевдослучайные карты смещения (displacement maps), второй сглаживает угловатости, получая новые значения по оси Z путем интерполяции между существующими.

К этому моменту наш движок вполне может построить трехмерный скелет кусочка земли. Осталось лишь найти цветовую карту (color map) и покрасить верхний слой вокселей всеми цветами радуги. Для этого потребуется обыкновенная плоская текстура. Теперь, если ставить кубики-воксели друг на друга и присваивать самому верхнему определенный цвет, рано или поздно можно добиться желаемого результата. Впрочем, результат мы получим скорее поздно, нежели рано, ибо движок наш выполняет слишком много ненужной работы. Человечество еще не научилось видеть сквозь предметы, поэтому глаза наши фиксируют только верхний слой кубиков и даже не задумываются о том, что под всем этим кроется груда вокселей, каждый из которых рендерил наш трудолюбивый движок. Чтобы избавить его от лишней работы, конечный рендеринг использует технологию трассировки лучей. Несмотря на громоздкое название, ничего сложного в ней нет.

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

Движок наш с офтальмологами не знаком, поэтому считает, что человеческий глаз работает именно так, как описано в предыдущем абзаце. И поэтому рендеринг финальной картинки методом трассировки лучей происходит следующим образом: нашли самую нижнюю координату в карте высот, выпустили туда луч, натолкнулись на какое-нибудь препятствие, считали значение в карте цветов, покрасили пиксель и поднялись на один пиксель повыше. Снова пустили луч, натолкнулись на что-то твердое и т. п. Интересно, что и на этом этапе можно немножко ускорить работу движка, слегка изменив алгоритм. Предположим, пущенный луч уперся в стенку красного кубика, причем в самый низ. Следующий по счету пиксель сверху тоже будет красным, и что самое важное - будет иметь те же координаты по осям X и Y. Зачем же, спрашивается, пускать еще один луч от самого "глаза", если можно сначала подняться наверх и посмотреть, что там такое. Если стенка, то сразу ее покрасить, и снова наверх - до тех пор, пока на свежий воздух не выберемся, сиречь ничего не найдем. Вот тогда и новый луч выпустим. Недостатков у такого подхода никаких - сплошная экономия времени.

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

Использовать воксели в играх было бы очень целесообразно.

Воксели это гораздо более реалистичный подход к представлению трехмерной модели на экране монитора чем полигоны. Просто так уж случилось что в пору зарождения 3D, производители аппаратных частей, в частности 3D акселераторов, избрали технологию полигонов а не вокселей.

Может быть если бы тогда все получилось иначе, сейчас бы мы играли в полностью воксельные игрушки и интересовались поддержкой полигонов.

Что есть Воксель
Обо всем - Что есть ВоксельЧто есть Воксель

Сейчас на рынке представлено совсем немного игр с воксельной графикой: как пример C&c Tiberian Sun (на скрине сверху), Периметр от Российских разработчиков, но чаще воксели используют в авиасимуляторах. Однако уже существуют игры, сочетающие в себе как полигональную, так и воксельную графику (первыми такое проделали создатели Zar). И результат получается прямо-таки великолепный: красивые детализированные ландшафты и аккуратненькие модели с цветным освещением.

Так что будущее, как мне кажется, именно за таким вот симбиозом. Но это зависит от крупных магнатов, производителей "железа". Многие считают технологию тупиковой и устаревшей.

Добавление №1 Взято с википедии

Новый Воксельный движок (Острожно! Много умного текста)

id Tech 6 — игровой движок серии id Tech, который в настоящее время разрабатывается американской компанией id Software и который должен стать преемником id Tech 5. id Tech 6 позиционируется как движок для ПК и, возможно, для игровых консолей следующего поколения, т.е. для будущих наследников PlayStation 3 и Xbox 360. На данный момент не анонсирована ни одна игра на id Tech 6, сам движок находится на начальной стадии разработки. Однако уже известно о некоторых характеристиках и инновационных особенностях движка. Основными разработчиками движка являются Джон Кармак (англ. John Carmack) и Йон Олик (англ. Jon Olick).

Описание

В движке будет использоваться инновационная технология «Sparse Voxel Octree» (SVO, русск. Разреженное воксельное октодерево). Геометрия игрового уровня, поддерживаемая этой технологией, будет иметь не полигональную, а воксельную геометрию, т.е. геометрические объекты будут состоять из вокселей. Воксели будут сохраняться в октодереве. Для освещения будет использоваться технология рейкастинга (англ. raycasting, бросание лучей). Одна из целей технологии «SVO» состоит в том, чтобы иметь возможность «подгружать» части октодерева в графическую память (видеопамять), идя вниз вдоль ветвей дерева. Это значит, что объекты на нижних ветвях октодерева, т.е. те объекты, которые расположены к наблюдателю ближе всего, будут рендерится в максимальном качестве, с максимальной детализацией и текстурами максимального разрешения. Соответственно, для дальних объектов, которые расположены на более высоких ветках октодерева, будет использоваться меньшее качество, они будут построены на вокселях больших размеров. Таким образом, данная технология является способом контроля уровня детализации (англ. level of detail — LOD).

Геометрические объекты, полученные благодаря SVO, теоретически могут иметь неограниченное число уровней детализации, более того, данные уровни детализации генерируются автоматически. Это устраняет потребность в использовании разных псевдотрёхмерных методик типа параллакс-маппинга. Тем не менее, все тесты с использованием SVO нуждаются в большом количестве памяти (вплоть до нескольких гигабайт). Йон Олик заявил, что является возможным сжатие такого SVO до уровня 1,15 битов на один воксел.

В id Tech 6 с помощью SVO будет рендериться только статическая геометрия, например ландшафт, строения и т.д. Также из-за этого рейкастинг-освещение также будет статическим. Все динамические объекты типа персонажей, транспорта и т.д. будут «построены» на классических полигонах и динамически освещаться с помощью стандартных растеризационных методик. Олик заявил, что создание динамических объектов и динамического освещения с помощью SVO возможно, однако это потребует быстрого обновления октодерева для рендеринга. Согласно Олику, динамические освещение и геометрия, представленные SVO, которые позволят создавать изменяемую геометрию, будут присутствовать в id Tech 7.

Кроме SVO, id Tech 6 будет использовать более продвинутую технологию мегатекстуры, которая впервые использовалась ещё в id Tech 4. При помощи данной технологии вся поверхность уровня покрывается одной текстурой.

Разработчики id Tech 6 и SVO ориентируются не на текущее аппаратное обеспечение, а на аппаратное обеспечение, которое на момент начала разработки ещё не доступно. В частности, id Tech 6 ориентируется на CUDA, Intel Larrabee и AMD Fusion. Также Кармак заявил, что если игровые консоли следующего поколения (наследники Xbox 360 и PlayStation 3) будут иметь такие аппаратные спецификации, которые будут удовлетворять архитектуре движка, то, возможно, id Tech 6 будет работать и на этих консолях.

Согласно Олику, на видеокарте GeForce GTX 280 при стандарте 720p (1280х720 пикселей) id Tech 6, возможно, сможет «выдавать» 60 кадров/сек. При этом движок стабильно будет «выдавать» не менее 30 кадров/сек.В интервью сайту PC Perspective на вопрос о том, каким должно быть и на сколько должно измениться аппаратное обеспечение, чтобы быть подходящим для SVO, Кармак ответил следующим образом: «Аппаратное обеспечение, спроектированное специально для SVO, может быть намного меньше, проше и эффективнее, чем средства общего назначения, но никто, кто находится в здоровом уме, не захочет сделать ставку на нашу технологию и не захочет создавать специфическое аппаратное решение для технологии, которую ещё не использовал ни один разработчик».

25 мая 2009 года id Software показала немецкому сайту GameStar.de видео-демонстрацию id Tech 6, на которой демонстрировалась модель гуманоидного монстра, созданная с использованием технологий id Tech 6. (Линк на демонстрацию)

94
Еще в блоге
Интересное на Gamer.ru

24 комментария к «Что есть Воксель»

  • Ждать пришлось недолго +3
    PS:пример-игра хорошая
    PPS:только стена текста большая


    16493790

    Плюсатор Darth_Malice 44


  • Ляя... не ту кнопку нажал! вместо редактировать ещё, опубликовал =(
    Лан, читайте так... Самое важное написал.


    27

    Геймер AvA 9


  • AvA писал:
    Ляя... не ту кнопку нажал! вместо редактировать ещё, опубликовал =(
    время-то есть ещё


    16493790

    Плюсатор Darth_Malice 44


  • удалить и перепостить обычно не сложно


    Santang-rambo-tux-2036

    Плюсатор Denai 49


  • Эцсамое, в С&С и Ред алертах только модели воксельные. Террэйн как обычно спрайты.
    С т.з. воксельности надо вспоминать Outcast и Delta Force, коль пошла такая пьянка =)


    Avatar

    Геймер Cootri 11


  • Еще в Worms 3D и Outcast были воксели. Это для тех, кто захочет посмотреть на них вживую...


    151631

    Collector's Guru AQuaRity 69


  • AQuaRity писал:
    Еще в Worms 3D и Outcast были воксели. Это для тех, кто захочет посмотреть на них вживую...
    Камачи туда же
    Cootri писал:
    Эцсамое, в С&С и Ред алертах только модели воксельные.
    и во всех модах... я имел вижу что там использовался воксельный движок. Но действительно надо было указать что там и текстуры есть.
    Darth_Malice писал:
    PPS:только стена текста большая
    Кому не интересно как работает движок не открывайте спойлер.


    27

    Геймер AvA 9


  • Скажем так: технология неперспективная в эти несколько лет (2-3).
    Причины:
    1. жрет ОЧЕНЬ много памяти
    вы заметили что в Дельта Форсе воксельным был только ландшафт?
    кстати самая класная игра с вокселями - Outcast. На то время - красотища.
    2. нет методов для анимации воксельных объектов
    вот так - или делать анимацию каждого кадра (и памяти нужно еще в сотни раз больше) или будут видны стыки между частями (например локти и предплечья).
    Но вот когда будут процессоры с сотней ядер и петабайтами памяти (лет через десять) - придут воксели и рейтрейсинг.


    Avatar

    Геймер ffinder 1


  • AvA писал:
    Кому не интересно как работает движок не открывайте спойлер.
    Откуда я знал что там?


    16493790

    Плюсатор Darth_Malice 44


  • ffinder писал:
    Но вот когда будут процессоры с сотней ядер и петабайтами памяти (лет через десять) - придут воксели и рейтрейсинг.
    Если никто не будет вкладываться в развитие технологии, то она умрёт совсем и даже лет через 20 мы её не увидем.
    Darth_Malice писал:
    Откуда я знал что там?
    Я написал заглавие
    Как работают воксельные движки
    Спойлер
    Нужна приписка "Как работают воксельные движки читайте под спойлером"


    27

    Геймер AvA 9


  • AvA писал:
    Если никто не будет вкладываться в развитие технологии, то она умрёт совсем и даже лет через 20 мы её не увидем.
    Для тебя есть хорошие новости, уже есть процессор в котором 48 ядер - Intel Larrabee. Если уже Intel не вкладывается - тогда не знаю кто вкладывается. Обещают в конце года выпустить на рынок :-)


    Avatar

    Геймер ffinder 1


  • Чтобы лучше понять в чем собственно «воксель»
    http://voxelstein3d.sourceforge.net/


    Avatar

    Геймер McDer 2


  • А еще вроде как у Вангеров был воксельный движок, который соответственно жрал память. Зато после десятого похода из одного "города" в другой, можно было ехать просто по рельсам. А во время гонок компьютерные противники спотыкались поб накатанные канавы :)
    А в вышедшем потом Периметре во всю использовалась технология карты высот. Не знаю как там с вокселями было.


    2905900

    Геймер manjak 13


  • Intel Larrabee... ОЧень интерсная вещь...
    manjak писал:
    А еще вроде как у Вангеров был воксельный движок
    Именно...
    manjak писал:
    А в вышедшем потом Периметре
    Тоже. И я его упоминал в посте.


    27

    Геймер AvA 9


  • Заинтересовавшиеся соверменными разработками связанными с вокселями читаем добавление в шапке поста...


    27

    Геймер AvA 9


  • Интересно, хотя перспективно ли? Посмотрим как разовьют технологию!


    Angel

    Геймер rinocrosser 47


  • Почему в воксели намешана карта высот? Причем тут она? Будто с полигонами ее не пользуют. Карта высот - вообще сбоку припека, это "общая 3D-технология".
    Трассировка лучей: опять же, при полигональном построении картинки не используется?
    Почему описано 2 не имеющих к сабжу технологии, но не описаны сами воксели? Как строятся модели, почему они получаются сглаженными, а не "из кубиков" или "из шариков"... Нету.
    Не плюс. А такая тематика интересная.


    Avatar_0

    Геймер CONSTantius 10


  • интересно. но коротко


    Saviour_by_holly_raven12-d4hd93f

    Плюсатор lemur 29


  • На сколько я знаю, Вангеры построены на воксельном движке. Но сейчас воксель вроде как не в моде.


    Fsjal-1

    Плюсатор Talamus 19


  • Talamus писал:

    На сколько я знаю, Вангеры построены на воксельном движке.
    AvA писал:
    manjak писал:
    А еще вроде как у Вангеров был воксельный движок
    Именно...
    Не в моде... но движок новый разрабатывают (читай добавление)


    27

    Геймер AvA 9


  • AvA писал:
    но движок новый разрабатывают
    интересно будет


    16493790

    Плюсатор Darth_Malice 44


  • Не много до серебра не хватает =(


    27

    Геймер AvA 9


  • +3 от меня.Теперь серебро стало ближе =)


    Effect_by_dishonest_nature

    Плюсатор LiveSaifer 54


  • rinocrosser писал:
    Интересно, хотя перспективно ли? Посмотрим как разовьют технологию!
    Id_Tech_6:
    "В движке будет использоваться инновационная технология «Sparse Voxel Octree» (SVO, русск. Разреженное воксельное октодерево). Геометрия игрового уровня, поддерживаемая этой технологией, будет иметь не полигональную, а воксельную структуру, т.е. геометрические объекты будут состоять из вокселей."


    %d0%b7%d0%b8%d0%bc%d0%b0%d0%ba%d0%be%d0%bd%d1%81%d1%83%d0%bb

    Плюсатор Koncyl 32


Чат