-Фотоальбом

Посмотреть все фотографии серии Общая
Общая
12:49 19.04.2006
Фотографий: 52

 -Поиск по дневнику

Поиск сообщений в CleverBoy

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 01.11.2002
Записей:
Комментариев:
Написано: 3276


Шейдеры

Пятница, 15 Октября 2004 г. 15:15 + в цитатник
13:39. Решил, вот, разобраться, что такое вертексные шейдеры. Это словосочетание постоянно встречается в описаниях возможностей современных видеоадаптеров, а я толком не понимаю, что это такое есть.
13:44. Шейдеры, насколько я понимаю на сей момент, это малюсенькие программулечки, которые обрабатывают графические данные данные. Шейдеры бывают вертексными (вершинными) и пиксельными. Что такое вершина?
13:50. По всей видимости, вершины – это на самом деле вершины, острые и не очень углы, которые образуются при сборке каркаса графической модели. Чем более детализирована модель, тем больше в ней вершин. Таким образом, вершинные шейдеры занимаются расчетами, связанными с "угловатыми моделями". А пиксельные тогда что, пиксели рассчитвают? В таком случае они намного круче вершинных в смысле того, какой производительностью должна обладать видяха для таких рассчетов.
13:57. http://www.comprice.ru/market/2003-53.phtml
"Грубо говоря, шейдеры - это специальные микропрограммы, выполняемые внутри видеокарты, позволяющие существенно улучшить качество выводимого изображения и обсчитывать наикрасивейшие видеоэффекты. Шейдеры делятся на вертексные и пиксельные. Вертексные шейдеры способны воздействовать на каркасные модели, а пиксельные - на текстуры. Язык программы внутри шейдера ограничен версией этого шейдера, так же как версией шейдера ограничены и возможности языка (количество и возможность циклов, переходов и переменных). Каждая новая версия шейдеров означает большие возможности языка, а с каждой версией DirectX, как уже говорилось, увеличивается индекс версии поддерживаемых шейдеров.
Широкое распространение шейдеры получили лишь с выходом видеокарты nVidia GeForce 3, которая произвела настоящий фурор. Она поддерживала аппаратное ускорение как вертексных, так и пиксельных шейдеров, чем полностью развязывала руки разработчикам трехмерный приложений. Почему же поддержка шейдеров оказывается такой важной? Все дело в том, что если вертексные шейдеры еще могут эмулироваться программно, то вот с пиксельными шейдерами в этом отношении все не так просто. Если в видеопроцессоре нет блока обработки пиксельных шейдеров, то в лучшем случае, они будут просто игнорироваться, а в худшем - игра может даже не запуститься. Но если пиксельные шейдеры вашей картой и поддерживаются, то это еще не значит, что приложение будет адекватным образом их использовать, необходимо, чтобы игра использовала именно ту версию шейдеров, под которую оптимизирована ваша видяха. "



http://www.guide3d.ru/articles/shaders/

Разбираемся с шейдерами...

Анализируя сложившуюся ситуацию на рынке видеокарт, нельзя не отметить некую «гонку технологий», выражающуюся в непрерывном выпуске новых плат, подводящих всю линейку под определенные стандарты. На данный момент «чекпоинтом» де-факто служит последний мультимедийно-ориентированный API от Microsoft - DirectX 9, для полной аппаратной поддержки которого по спецификациям требуется имплементация Пиксельных шейдеров версии 2.0 и выше, а также Вершинных 2.0. Аппетиты последнего в полной мере удовлетворяют лишь последние линейки графических чипов ATI и NVIDIA, R3xx и NVxx (кодовые названия GPU/VPU)
Но что же такое шейдеры? Оправданны ли громогласные надписи вроде «100% DirectX 9.0 support!», кричащие со стильных упаковок карточек? … Вносят ли они реальный вклад в качество сцены? Данной тематике и будет посвящена сегодняшняя статья.

Краткий экскурс в историю

В свое время выход NVIDIA GeForce 3 произвел настоящий фурор. Поддерживая аппаратное ускорение вершинных (Vertex) и пиксельных (Pixel) шейдеров, он полностью развязывал руки разработчикам трехмерный приложений, в доминирующей степени игр: массово стал доступен просчет наикрасивейших видеоэффектов, ранее применявшихся лишь в голливудских фильмах, в реальном времени! Интересный факт – совокупности этих технологий (Pixel Shaders версии 1.1, Vertex Shaders версии 1.1) было дано неоднозначное маркетинговое название nfiniteFX , последние две буквы оного позже положат начало новой, уже совсем не такой удачной серии видеокарт.

Vertex Shader

Итак, Вертексный (Вершинный, Vertex) шейдер – это подпрограмма, иначе функция, математически оперирующая вершинами объекта. Ведь полигон – есть не что иное, как треугольник, а треугольник имеет вершины – точки, в которых сходятся две его стороны. Каждая вершина описывается целым рядом параметров, переменных, таких как координаты в трехмерном пространстве, цвет, текстура, а также характеристики накладываемого освещения. Вершинные шейдеры позволяют изменять эти переменные, не меняя самого типа данных. Примером использования подобных эффектов могут служить: клубящихся облака, туман, реалистичная анимация, мимика лица (выделение специфичных черт – морщин, ямочек), зеркальное отображение сцены.
А ведь ранее комплексные расчеты вертексных шейдеров выполнялись только на специализированных графических станциях, и в приложения включались исключительно в пре-рендеренном виде. Стоит отдать дань уважения инженерам NVIDIA, которые, следует заметить, в последнее время сильно расслабились.
Применение эффектов освещения вершин позволяет достаточно легко создавать реалистичную скелетную анимацию персонажей посредством матричного наложения палитр и трансформации полигональных каркасов. Поверхностные волны, рябь на воде – работа деформации текстур…
Впечатляет? При помощи вершинных шейдеров разработчики имеют возможность создавать и гораздо более уникальные, ярковыраженные и наполненные сцены.
Вертексные шейдеры являются стандартным элементом блока T&L



Вершинные шейдеры, наглядный пример: сцена 3DMark 2003

Pixel Shader

Пиксельные шейдеры (Pixel shader) – пожалуй, самая «лакомая» и обсуждаемая в последнее время технология. К примеру, отсутствие её аппаратной поддержки у GPU автоматически причисляет карты на его основе в нишу Low-End, вне зависимости от результирующего быстродействия… Это, впрочем, и правильно – не все же «урезать» качество в угоду скорости, в играх (Как представителях прогрессивнейших и непрерывно эволюционирующих трехмерных приложений) же следующего поколения такие жертвы неуместны вовсе.
Пиксельные шейдеры – программируемые функции, используемые для попиксельного расчет эффектов. Данный инструмент позволяет создавать среды, свойства объектов в которых поразительно точно передают реальность, позволяют ощутить материальность поверхностей. Предметы в сценах наполняются присущими ими уникальными шероховатостями, элементами отделки, для гуманоидоподобных созданий – волосы, усы, родинки… Все это опять же выходит за рамки возможностей, достижимых обыкновенными, полигональными средствами отрисовки – чего только стоит, например, попиксельная проработка освещения, игра света и тени. Их программируемость же дозволяет не ограничиваться стандартным набором предложенных эффектов, заместо того, творя нечто свое, отличное и разнообразное.
Пиксельные шейдеры не являются стандартным элементом блока T&L. Впервые доступны в API DirectX 8



Черед пиксельных шейдеров… Правдоподобность статуэтки не вызывает сомнений.



Комплексная сцена. Современные технологии во всей красе :-)

Подведение итогов
Можно объединить сделанные выше выводы в один короткий, лаконичный тезис – «Шейдерам – быть!». Являясь удобным и гибким инструментом для программистов, позволяющим независимо управлять всеми элементами сценами, тем самым воплощая мечты в реальность, они просто обречены на успех.

Надеюсь, что я сумел дать ответ на вопрос о необходимости покупки, по крайней мере DirectX-8 совместимой видеокарты. Перспективность подобных технологий очевидно – отчего же не насладиться ими в полной мере? Грядут DooM III, Half-Life 2… приготовимся же заранее.

Дополнения и комментарии:
- При написании статьи были использованы различные материалы и технологические описания, в том числе первоисточниками которых являются ресурсы NVIDIA.RU, ATITECH.COM.

--
CryoMonsteR

Аноним   обратиться по имени Классно! Воскресенье, 05 Октября 2008 г. 02:13 (ссылка)
Хороший рассказ про шейдеры, спасибо! Давно интересовался а вот никак не доходили руки про них прочитать :-)
Ответить С цитатой В цитатник
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку