Сейчас отрасль компьютерной графики на перепутье. Происходит изменение всей системы понятий, что отбрасывает старую фиксированную функциональность и старые графические API: значение графического процессора, или VPU (visual processing uni t), становится не меньшим, чем значение центрального процессора, или CPU (central processing unit). VPU будет оптимизирован для обработки 3D-графики и видео. Параллельная обработка данных в виде чисел с плавающей запятой - первостепенная задача для VPU, и гибкость VPU будет означать, что его можно использовать также для обработки данных, отличающихся от набора традиционных команд для работы с графикой. Приложения могут использовать преимущества и CPU, и VPU для более оптимального выполнения задачи.

В этой книге описывается программируемость графического аппаратного обеспечения, представленная в виде высокоуровневого языка на базе лидирующего кроссплатформенного графического 3D API: OpenGL. Этот язык, называемый языком шейдеров OpenGL, позволяет приложениям полностью контролировать некоторые наиболее важные этапы обработки графики. Теперь нет ограничения на алгоритмы рендеринга и формулы, которые ранее выбирались конструкторами видеокарт и фиксировались в кремнии; сейчас разработчики программного обеспечения могут выбирать любые алгоритмы, использовать программируемость для создания уникальных эффектов в режиме реального времени.

Предполагаемая аудитория

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

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

Содержание книги

Книгу можно условно разделить на три части. Главы 1-8 предназначены для ознакомления читателя с языком шейдеров OpenGL и приемам его использования. В этой части приводятся описания команд OpenGL для создания и управления шейдерами и подробности языка. Главы 9-16 содержат примеры шейдеров и описания применяемых алгоритмов, с помощью которых читатель ближе знакомится с процессом создания шейдеров. Эта часть книги может использоваться как основа для написания собственных шейдеров и как источник новых идей. И наконец, в главе 17 язык шейдеров OpenGL сравнивается с другими коммерческими шейдерными языками. Приложения А и Б содержат справочник по языку и список функций, поддерживающих язык шейдеров OpenGL.


⇐ вернуться назад | | далее ⇒