Сегодня 26 апреля 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Видеокарты

Пиксельное затенение и вершинные эффекты на GeForce3

⇣ Содержание

4. Преимущества вершинного программирования

Хотя между вершинным и попиксельным программированием существуют отличия, эти технологии не являются конкурирующими. Они разработаны для дополнения друг друга и вместе позволяют создать супер реалистичную графику.

 Пример вершинного шейдера
"Мембрана" - этот пример вершинного шейдера
изменяет цвет объекта при удалении точек поверхности
от наблюдателя

Обтягивание текстурами с использованием палитры (paletted skinning)

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

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

 Использование вершинных шейдеров в стиле мультфильма

Сейчас возможно использование вершинных шейдеров в стиле мультфильма (cartoon style)

Наложение карт окружающей среды и трансформация

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

Процедурные геометрические деформации (procedural geometry deformations)

С помощью вершинных шейдеров можно оживить объекты, статичные в обычных играх. Например, реющий флаг совершает случайные движения, зависящие от хаотичных дуновений ветра. Разработчик может заставить участвовать флаг в различных сложных движениях: реять, извиваться, парить и т.д. С помощью динамической деформации можно даже уничтожать объекты внутри игры. Повреждения объектов и окружающей среды становятся реалистичными.

Геометрический морфинг (Geometry Morphing)

Используя основные идеи процедурной деформации (procedural deformation), игра может демонстрировать реалистичные, "живые" эффекты. Когда человек смеется, на его лице происходит множество изменений. Некоторые мускулы расширяются в каком-то направлении, другие сокращаются, и все это происходит одновременно. Вся эти "живые" движения могут быть реализованы в реальном режиме времени опять же с использованием кадровой анимации (keyframe animation). Программист указывает точки начала и конца и заставляет вершинный движок интерполировать каждый промежуточный кадр. В результате мы получаем четкую и реалистичную анимацию.

Непостоянная трансформация (irregular transform)

Один из некоторых менее значительных эффектов – это эффект линзы или "рыбьего глаза". nVidia также реализовала несколько эффектов, впервые анонсированных в Voodoo5, например, размазывание движущихся объектов (Motion Blur). Также разработчики игр могут произвольно применять различные варианты освещенности. До сих пор, такие эффекты были невозможны без значительных вычислительных затрат. Характерным примером является двустороннее освещение. Раньше, если вы имели плоскую поверхность и желали осветить ее с двух сторон различным образом, вам бы пришлось удвоить количество треугольников, снижая скорость. Но сейчас вершинные шейдеры позволяют управлять освещением с обеих сторон без задействования двойной модели.

 Плохой пример, но преимущества размазывания движущихся объектов увидеть можно

Плохой пример, но преимущества размазывания движущихся объектов увидеть можно

Ускорение поверхностей высокого порядка (high-order surfaces)

 Попиксельное наложение карт среды
Попиксельное наложение карт среды

Поверхности высокого порядка можно представить как поверхности, основанные на кривых линиях. Примером линейной формулы может быть y=m*x+b или прямая линия. Множество прямых линий можно использовать для создания иллюзии кривой линии, но необходимо просто огромное число прямых поверхностей для создания одной кривой поверхности. nVidia улучшила ускорение поверхностей высокого порядка в GeForce3. Примером формулы высокого порядка может быть y=mx^2+b, где x возводится в степень. Конечно, показатель степени не обязательно всегда равняется двум, но для реальных поверхностей такой степени вполне достаточно.

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

И к чему же мы пришли?

Видели ли вы видеоролик Doom3 на GeForce3? Если нет, то не поленитесь и скачайте его. В игре вы быстро заметите все преимущества попиксельного затенения и программируемых пиксельных и вершинных шейдеров.

Заключение

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

Главная цель этой статьи – объяснить преимущества пиксельного и вершинного затенения (pixel shading/vertex shading). Эти две технологии являются основой движка nVidia nfiniteFX. Так как обе технологии опираются на возможность программирования, движок может реализовывать практически бесконечное число вариантов. Разработчики игр могут меньше концентрировать свое внимание на особенностях программных движков и реализовывать более подробную физическую модель мира.

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

Глоссарий

mipmapping (мипмаппинг) - множественное отображение (последовательность текстур одного и того же изображения с уменьшающимся разрешением по мере удаления отображаемого объекта от наблюдателя)

Environment Mapped Bump Mapping (EMBM) — поддержка аппаратного ускорения рельефного текстурирования с использованием карт окружающей среды

Pixel Shading – пиксельное затенение, способ применения специальных эффектов к отдельному пикселю.

Pixel Shader – пиксельный шейдер, способ программирования попиксельного затенения.

Vertex Shader – вершинный шейдер, способ программирования вершинных эффектов.



 
← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Microsoft получает всё больше выгоды от ИИ — компания показала сильный квартальный отчёт 2 ч.
Газировка с Copilot: Microsoft получила миллиардный контракт на обеспечение Coca-Cola облачными и ИИ-сервисами 2 ч.
Продюсер «Смуты» раскрыл, что добавят в игру с обновлениями, и подтвердил работу над продолжением 2 ч.
ИИ-приложение Google Gemini стало совместимо с Android 10 и Android 11 2 ч.
В США вернули сетевой нейтралитет 3 ч.
Alphabet объявила о первых в своей истории дивидендах, акции выросли в цене на 11,4 % 3 ч.
Младенец-экстрасенс против секретной корпорации: соавторы Before Your Eyes анонсировали сюжетное приключение Goodnight Universe 3 ч.
AMD выпустила драйвер с поддержкой игры Manor Lords и исправлением множества ошибок 9 ч.
Telegram обновился: рекомендованные каналы, дни рождения, трансляция геопозиции и аватарки при пересылке 14 ч.
В Steam и на консолях вышел боевик Another Crab's Treasure в духе Dark Souls, но про краба-отшельника — игроки в восторге 14 ч.