netlib.narod.ru< Назад | Оглавление | Далее >

Глава 1. Добро пожаловать в мир шейдеров

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

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

Ограниченная функциональность архитектуры фиксированного конвейера ограничивала круг эффектов, которые могли реализовать разработчики. Основным результатом этого была выглядящая искусственной графика. С другого конца спектра находилась архитектура используемого в киноиндустрии профессионального программного обеспечения для визуализации, имеющая кое-что, позволившее уйти в значительный отрыв. RenderMan — шейдерный язык, разработанный анимационной студией Pixar. Он предоставлял художникам и программистам графики полный контроль над результатами визуализации через использование простого, но мощного языка программирования. RenderMan позволял создавать высококачественную фотореалистичную графику, используемую во многих современных фильмах, включая Toy Story и A Bug's Life. Следует знать одну вещь о RenderMan — это сложная система, которая никогда не предназначалась для визуализации в реальном времени, а рассматривалась только как средство, предоставляющее художникам полный контроль над графикой.

Эволюция процессоров, сопровождавшаяся ростом их вычислительных мощностей, привела к естественному переносу заложенной в RenderMan идеи на потребительские видеокарты. Вместе с выпуском DirectX 8.0 появились вершинные и пиксельные шейдеры версий 1.0 и 1.1. Хотя стандарт обладал ограниченной гибкостью, и в нем отсутствовали некоторые возможности, такие как управление ходом выполнения, это был первый шаг к предоставлению разработчикам и художникам гибкости, необходимой для создания ошеломляющей и реалистичной графики, о которой они всегда мечтали. Мы наконец оказались в точке, где потребительские видеокарты могли создавать изображение, сравнимое с тем, которое предлагали киностудии Голливуда.

В последующие несколько лет видеокарты и API трехмерной графики сделали гигантский скачок вперед в области возможностей и производительности, даже обогнав закон Мура относительно скорости технического прогресса. С появлением DirectX 9.0 SDK и последних поколений графического оборудования, таких как серия GeForce FX от NVIDIA и Radeon 9800 от ATI Technologies, стали доступны вершинные и пиксельные шейдеры версий 2.0 и 2.x.

ПРИМЕЧАНИЕ
Термин «закон Мура» происходит из наблюдения, сделанного в 1965 году соучредителем Intel Гордоном Муром и гласящего, что начиная с появления интегральных микросхем, число транзисторов на квадратном дюйме каждый год удваивается. Он также предсказал, что подобная тенденция сохранится по крайней мере несколько десятилетий, и пока его пророчество остается верным. Кроме того, поскольку плотность размещения транзисторов влияет на производительность, закон Мура часто цитируют в связи с прогнозами о дальнейшем росте производительности аппаратных средств.

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

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

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

Чтобы упростить обучение я использую в книге новый подход. Вместо того чтобы сосредотачиваться на конкретном API трехмерной графики, как делает большинство книг, я использую разработанное ATI Technologies инструментальное средство под названием RenderMonkey. RenderMonkey позволяет разрабатывать шейдеры с помощью простого графического интерфейса. Это отделяет разработку шейдера от какого-либо конкретного API и упрощает разработку и создание прототипов. Кроме того, не требуется программировать ничего, кроме самого шейдера. Эти дополнительные преимущества делают книгу замечательным учебником для студентов и технически подкованных художников! Вы можете изучать шейдеры без необходимости приобретать навыки программирования и не изучая API трехмерной графики, что требуется для большинства других книг.

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz