Войти
ПрограммированиеСтатьиГрафика

Вершинные шейдеры.

Автор:

"110001010011"
3155

Ну вот. Очередной винт отформатирован, пройден очередной левел в любимой гамесе, и теперь можно перейти к делам. Поехали.

О шейдерах и кроликах.
Синтаксис
Подробнее о работе
Те, кто знал
Слово на после

О шейдерах и кроликах.

"Кролик - это не только ценный мех:"
известное

О кроликах вроде все. Давайте слегка углубимся в историю. Были далёкие 70-е. Все дрыгались под ритмы диско и живали джусифрут. Можно считать, что эти годы явились родоначальниками компьютерной графики. Большинство алгоритмов современной нынешней графики были придуманы именно в конце 70—80-х годах. Это Bump Mapping, свет, закраска по Фонгу/Гуро, Z-буффер, разные там сглаживания и даже никому не известные (по названию) алгоритмы Брезенхейма (рисования линий, кругов и т.д.), но которыми все пользуются, были придуманы до любимого паскаля. Кому интересно есть книга Роджерса "Алгоритмические основы компьютерной графики" 1989г.

Наступили менее далёкие 90-е. 3Д графика начала переходить из разряда на-супер-калькуляторе-у-неизвестного-математика в категорию а-у-меня-это-есть-на-компе. С трудом перевалив через середину, 90-е породили на свет общедоступные так называемые "3Д акселераторы", и про то, что раньше всё рисовали исключительно ЦПУ, все забыли - теперь треугольнички рисовали ГПУ типа Voodoo (Glide-рулёз), а после в игру вступила nVidia и ATi. Когда же 90-е вышли на финальную прямую, народ сообразил, что считать матрицы ЦПУ не должен, даже знаменитый ММХ не стоит грузить настолько грязной работой, и тут же родилась фигня, которую назвали "Блок T&L" (кто не знает - это transforming & lighting). И на пару лет все успокоились.

И всё было бы хорошо, если бы не один грешок этого самого T&L - он выполнял последовательно один и тот же набор операций, как нужных, так и не нужных (это умножение на матрицы трансформации,  расчёт света и всё в таком вот духе). А если мне надо сначала рассчитать свет №1, затем помножить на матрицу №1, потом рассчитать свет №2 и помножить на матрицы №3 и №2? "Делать нечего, бояре:", придётся подключать в работу ЦПУ. Плохо. Осознав это, собрался народ со всех уголков трёхмерного мира, nVidia сказала всё, что думает об ATi, ATi тоже в накладе не осталась, а там и вся остальная Силиконовая Долина поделилась своим мнением. Чуть успокоившись, они подумали и додумались до небезызвестных шейдеров. Были придуманы и вершинные и пиксельные шейдеры.

На рисунке чётко видно, на какой стадии используется vertex shader, а где pixel shader:

Изображение
Схема Pipeline (взято с www.gamedev.net)

Я не буду сейчас рассказывать о пиксельных шейдерах (это не из-за вредности), о них я скажу как-нить потом. Сейчас будут только вершинные шейдеры (ВШ).

Итак. Вершинные шейдеры — это небольшая ассемблерная программа для обработки ОДНОЙ вершины. Лично я понял, ЧТО конкретно они делают, когда ознакомился с перечнем доступных средств (синтаксисом).

Страницы: 1 2 3 4 5 Следующая »

#шейдеры

28 мая 2002 (Обновление: 13 ноя. 2009)

Комментарии [2]