реклама
Видеокарты

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

⇣ Содержание

2. Пиксельное затенение (pixel Shading)

С изобретением GeForce2 и NSR, nVidia придумала лучший способ для повышения детализации в игре нежели EMBM. Так как каждая игра, работающая в графике, так или иначе использует пиксели, nVidia решила для внесения дополнительных деталей использовать именно отдельные пиксели.

Что же такое попиксельное затенение (per-pixel shading)? Это способ применения специальных визуальных эффектов к... пикселю. Таким образом, ощущение реальной материи рождается через отдельные пиксели, для большей аккуратности и интенсивности. Попиксельное затенение призвано изменить представление людей о компьютерной графике. Оно уже достаточно давно используется в кинематографии для создания более реалистичных и близких к жизни компьютерных графических объектов. Например, в фильме "Игрушечная история" (Toy Story) есть такой персонаж, Бузз (Buzz Light-year). Вспомните отражение на его прозрачном шлеме. Каким же образом получается то, что мы одновременно видим и окружающую обстановку в отражении, и объекты, находящиеся под самим шлемом? Все это реализуется через попиксельное затенение. До сих пор эта технология не применялась на компьютерах из-за значительных вычислительных требований. Конечно, ее можно реализовать через 3D Studio, но ведь это несколько отличается от реального времени? Может ли быть этот эффект применен ко всему кадру в высоком разрешении в 1/60 часть секунды? Ответом было "нет". До сих пор.

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

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

 Интерполяция  артефакты при интерполяции

С помощью попиксельного затенения, для расчета эффектов берутся отдельные пиксели. Так как треугольник состоит из многих пикселей, получающееся изображение очень хорошо подчеркивает мелкие детали. Представьте, что треугольник занимает 100 пикселей. Предположим, у нас есть палитра из десяти эффектов. Каждый пиксель может принимать любые из десяти возможных эффектов. В таком случая для треугольника получается 10 000 комбинаций различных эффектов. Если бы использовалась интерполяция, то треугольник мог участвовать не более чем в 10 эффектах, причем каждый эффект распространялся бы на весь треугольник. Ниже вы можно наглядно сравнить использование интерполяции или попиксельного затенения.

Программируемые пиксельные шейдеры (pixel shaders)

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

GeForce2 может реализовывать Dot3 (Dot Product) и другие современные эффекты наложения карт среды (bump mapping) и эффекты затенения на каждый пиксель.

 Реализация NSR в GeForce2
Реализация NSR в GeForce2

NSR позволяет смешение (texture-blend operation) только двух текстур за проход

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

 Вершинный конвейер затенения в GeForce3
Вершинный конвейер затенения в GeForce3

Скорее всего, так выглядит (vertex shading pipeline), который появился в GeForce3.

Пояснение: GeForce3 обрабатывает 4 текстуры за один проход. Логично, что GeForce3 должна обрабатывать их независимо, для реализации "бесконечного" количества эффектов, рекламируемых nVidia. Кроме независимого "жонглирования" текстурами, чип должен применять эффекты к каждой текстуре независимо, используя шейдеры DirectX8.

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

После завершения операций над текстурами, можно получить дополнительные варианты комбинаций путем смешения (blends) до 8 текстур. Все эти операции поддерживаются пиксельными шейдерами DirectX 8.

Улучшение

nVidia реализовала полностью программируемый конвейер затенения NSR и в то же время улучшила его характеристики. Если вы не видели преимущества NSR в GeForce2, то ниже приведены скриншоты из игры "Giants: Citizen Kabuto".

 Иллюстрация  Иллюстрация  Иллюстрация  Иллюстрация  Иллюстрация  Иллюстрация  Иллюстрация  Иллюстрация

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

Имейте в виду, что все это реализовано благодаря простейшим функциям NSR. Мы еще даже не увидели всех возможностей нового движка nfiniteFX. Хотя, всему свое время.

Следующая страница → ← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
window-new
Soft
Hard
Тренды 🔥
Инвесторы потребовали от Ubisoft пересмотреть условия сделки с Tencent и готовы добиваться своего через суд 20 мин.
Microsoft запустила собственный ИИ-поисковик Copilot Search 48 мин.
Спустя почти пять лет после дебюта на консолях The Last of Us Part II наконец вышла на ПК 2 ч.
ЕС оштрафует TikTok на €500 млн за передачу данных европейцев в Китай 3 ч.
40 кадров/с и «местами даже хорошая» графика за $70: первые подробности Cyberpunk 2077 для Nintendo Switch 2 3 ч.
Представлена ранняя ПК-версия российской ОС «Аврора» — на ней уже запускается Telegram и не только 4 ч.
«РТК ИТ Плюс» пополнила ИТ-экосистему «Лукоморье» тремя новыми продуктами 5 ч.
Microsoft подтвердила дату выхода GTA V в PC Game Pass — подписчики получат доступ к GTA V Enhanced 5 ч.
Новый контент в Elden Ring: Tarnished Edition для Nintendo Switch 2 появится и на других платформах 6 ч.
Лавкрафтианский хоррор Stygian: Outer Gods готовится к старту открытой «беты» — новый геймплейный трейлер 7 ч.
Большой адронный коллайдер собрал базу для выхода за пределы известной физики 3 ч.
Восьмиядерные CPU стали самыми популярными в мире по статистике CPU-Z — AMD стремительно отбирает рынок у Intel и Nvidia 3 ч.
Apple потеряла $250 млрд стоимости за день — пошлины Трампа обвалили акции техногигантов 4 ч.
Nintendo Switch 2 получила поддержку трассировки лучей и DLSS, но их появление в играх зависит от разработчиков 4 ч.
Nikon представила полнокадровую камеру Z5 II с улучшенным автофокусом и повышенной скоростью съёмки за $1700 5 ч.
«Акустическое совершенство»: Bang & Olufsen представила каменную колонку Beosound Balance Natura 5 ч.
У россиян вырос интерес к планшетам — продажи подскочили на 15 % в первом квартале 6 ч.
Samsung выпустила 20-метровые телевизоры для кинотеатров Onyx 6 ч.
Intel переосмыслила свой главный слоган и обновила фирменный стиль, чтобы вернуть пользователей 7 ч.
Google готовится к аренде серверов на базе ускорителей NVIDIA у CoreWeave 7 ч.