Сорок(и более) штрихов о прочитанных(переведённых) книгах.

Штрих третий. 2014 год.

Аафтаб Мунши, Дэн Гинзбург, Дэйв Шрайнер. OpenGL® ES 2.0. Руководство по программированию.

(Aaftab Munshi, Dan Ginsburg, Dave Shreiner. OpenGL® ES 2.0. Programming Guide. ISBN-13: 978-0-321-50279-7, Copyright © 2009 Pearson Education, Inc.)

p.s.

Выдержка из книги:

Предисловие

OpenGL ES 2.0 - это программный интерфейс для рендеринга(визуализации) сложной 3D-графики на портативных и встраиваемых устройствах. OpenGL ES 2.0 является базовой графической библиотекой для портативных и встраиваемых устройств с программируемыми 3D-чипами, включая сотовые телефоны, карманные эргонайзеры, консоли, приборы, транспортные средства и авионику. С помощью OpenGL ES 2.0 полное программирование шейдеров пришло на малые и портативные устройства. Эта книга подробно излагает весь программный OpenGL ES 2.0 API-интерфейс для разработки и его конвейер с подробными примерами в качестве руководства для разработчиков широкого спектра высокопроизводительных 3D-приложений для портативных устройств.

Для кого предназначена эта книга?

Эта книга предназначена для программистов, заинтересованных в изучении OpenGL ES 2.0. Мы полагаем, что читатель уже обладает твердыми знаниями в области компьютерной графики. Мы объясним многие соответствующие графические понятия, и как они соотносятся с различными частями OpenGL ES 2.0, но мы полагаем, что читатель знает базовые 3D-понятия. В книге весь код примеров написан на языке C. Мы полагаем, что читатель знаком с языком C или с языком C++ и в книге будут раскрыты разделы с языками только там, где они имеют отношение к OpenGL ES 2.0. Эта книга охватывает весь программный OpenGL ES 2.0 API-интерфейс для разработки вместе со всеми ратифицированными Khronos-расширениями. Читатель узнает о настройке и о программировании каждого аспекта работы (операций и состояния) графического конвейера. В книге подробно описано, как написать вершинный и фрагментный шейдеры и как реализовать продвинутые технические приёмы рендеринга например, попиксельное освещение и системы частиц. Кроме того, в книге даются полезные советы и ловкие приёмы для эффективного использования программного OpenGL ES 2.0 API-интерфейса для разработки и оборудования. Закончив чтение книги, читатель будет готов написать приложения с использованием OpenGL ES 2.0, которые в полной мере используют программируемую мощь встроенного графического чипа.

Что рассматривает эта книга?

Эта книга организована так, чтобы в последовательном стиле рассмотреть программный API-интерфейс для разработки, наращивая ваши знания о OpenGL ES 2.0 по мере продвижения по книге. Глава 1 - Введение в OpenGL ES 2.0 Эта глава представляет собой введение в OpenGL ES, за которым следует обзор графического конвейера OpenGL ES 2.0. Мы обсуждаем принципы и ограничения, которые использованы при разработке OpenGL ES 2.0. Наконец, в главе рассматриваются некоторые общие соглашения и типы, используемые в OpenGL ES 2.0.

Глава 2 - Hello Triangle: пример c OpenGL ES 2.0 В этой главе подробно рассматривается простой пример программы с OpenGL ES 2.0, рисующий треугольник. Здесь наша цель – показать, как выглядит программа с OpenGL ES 2.0, представить читателю некоторые понятия программного API-интерфейса для разработки, и описать, как построить и запустить пример программы c OpenGL ES 2.0.

Глава 3 - Введение в EGL В этой главе представлен EGL - программный API-интерфейс для создания поверхностей и контекстов рендеринга для OpenGL ES 2.0. Мы расскажем, как взаимодействовать с нативной(родной для ОС) оконной системой, выбрать конфигурацию и создать EGL-поверхности и контексты рендеринга. Мы научим вас в достаточном объеме EGL, так что вы сможете делать все, что вам будет нужно сделать для того начать и закончить рендеринг с OpenGL ES 2.0.

Глава 4 - Шейдеры и программы Шейдерные объекты и программные объекты образовывают наиболее фундаментальные объекты в OpenGL ES 2.0. В этой главе мы рассказываем, как создать шейдерный объект, компилировать шейдер и проверить ошибки компиляции. В этой главе также рассказывается, как создать программный объект, прикрепить к нему шейдерные объекты и скомпоновать окончательный программный объект. Мы обсудим, как запросить информацию у программного объекта и как загрузить uniform-значения. Кроме того, вы узнаете о различии между исходным и двоичным(бинарным) шейдерами и как использовать каждый.

Глава 5 - Язык шейдеров OpenGL ES Эта глава охватывает основы языка шейдеров, необходимые для написания шейдеров. Основы языка шейдеров описывают переменные и типы, конструкторы, структуры, массивы, атрибуты, униформы и вектограммы. В этой главе также описаны некоторые нюансы языка, такие как квалификаторы точности и инвариантности.

Глава 6 - Атрибуты вершин, массивы вершин и объекты буферов Начиная с главы 6 и (заканчивая главой 11) мы начинаем нашу прогулку по конвейеру, чтобы научить вас, как настроить и запрограммировать каждую часть графического конвейера. Эта прогулка начинается c рассмотрения поступления геометрии на графический конвейер, обсуждая при этом атрибуты вершин, массивы вершин и объекты буферов.

Глава 7 - Сборка примитивов и растеризация После обсуждения в предыдущей главе поступления геометрии на графический конвейер, мы рассмотрим, как из геометрии собираются примитивы. Охватим все типы примитивов, доступные в OpenGL ES 2.0, в том числе спрайты точки, линии, треугольники, полосы из треугольников и веер из треугольников. Кроме того мы расскажем, как выполняются преобразования координат вершин и введем в стадию растеризации конвейера OpenGL ES 2.0.

Глава 8 - Вершинные шейдеры Следующая часть конвейера охватывает вершинный шейдер. Это глава дает краткий обзор того, как вершинные шейдеры вписываются в конвейер и рассматривает специальные переменные, доступные в вершинных шейдерах на языке шейдеров OpenGL ES. Представлены несколько примеров вершинных шейдеров, в том числе расчет повершинного освещения и скининга. Мы также приводим примеры того, как конвейеры с фиксированными функциями в OpenGL ES 1.0(и OpenGL ES 1.1) могут быть реализованы с помощью вершинных шейдеров.

Глава 9 - Текстурирование Эта глава начинается с введения в фрагментный шейдер, описывая всю функциональность по текстурированию, доступную в OpenGL ES 2.0. В этой главе рассказывается подробно, как создавать текстуры, как загрузить их данные и как рендерить с ними. В главе подробно обсуждаются режимы обертывания текстур, фильтрации текстур и мипмапинг. Кроме того, вы узнаете о различных функциях для сжатия изображений текстур для экономичного копирования в данные текстуры из буфера цвета. В этой главе также охвачены опционные расширения текстур, которые добавляют поддержку 3D-текстур и глубин текстур.

Глава 10 - Фрагментные шейдеры Глава 9 специально посвящена тому, как использовать текстуры в фрагментном шейдере. А эта глава охватывает все остальное, что вам нужно знать для написания фрагментного шейдера. Мы даем обзор фрагментных шейдеров и всех специальных встроенных переменных, доступные в них. Мы покажем, как с помощью фрагментных шейдеров реализовать все технологические приемы с фиксированными функциями, имевшимися в OpenGL ES 1.1. В фрагментых шейдерах реализованы примеры мультитекстурирования, тумана, альфа-теста и пользовательких плоскостей отсечения.

Глава 11 - Пофрагментные операции В этой главе обсуждены пофрагментные операции, которые могут быть применены или для всего буфера кадра или для отдельных фрагментов на стадии по-фрагментных операций конвейера OpenGL ES 2.0., следующей за выполнением фрагментного шейдера. Эти операции включают в себя тест на отрезание, тест трафарета, тест глубины, мультизамплинг, смешивание, возбуждение. Это заключительная стадия графического конвейера OpenGL ES 2.0.

Глава 12 - Объекты буфера кадра В этой главе обсуждается использование объектов буфера кадра для рендеринга во внеэкранные(вторичные) поверхности. Есть несколько видов использования объектов буфера кадра, но наиболее распространенным является использование их для рендеринга в текстуру. В этой главе приводится полный обзор объекта буфера кадра как части программного API- интерфейса. Понимание объектов буфера кадра, критически важно для реализации многих продвинутых эффектов, таких как отражения, карты теней и пост-обработка.

Глава 13 - Продвинутое программирование с OpenGL ES 2.0 Это кульминационная глава, связывающая воедино множество разделов, представленных на протяжении всей книги. Мы сделали выборку из продвинутых технологических приемов и посмотрим примеры, к демонстрирующие , как реализовать эти функциональные возможности. В этой главе описываются такие технологические приемы рендеринга, как попиксельное освещение при помощи карт нормалей, наложение окружающей среды, системы частиц, пост-обработка изображения и проекционное текстурование. В этой главе сделана попытка показать читателю, как использовать целый ряд продвинутых технологических приемов рендеринга.

Глава 14-Запросы состояний В OpenGL ES 2.0 доступно большое количество запросов состояния. Для всего, что вы установили, имеется соответствующий способ получить его текущее значение. Эта глава приводится как руководство по различным запросам состояния, доступным в OpenGL ES 2.0.

Глава 15-OpenGL ES и EGL на портативных платформах В заключительной главе мы отвлечемся немного от деталей программного API-интерфейса и поговорим о программировании с использованием OpenGL ES 2.0 и EGL в реальном мире. Существует целый набор разнообразных портативных платформ на рынке, которые ставят некоторые интересные вопросы и проблемы при разработке приложений для OpenGL ES 2.0. Мы затрагиваем темы, включая обзор портативных платформ, проблемы переносимости кода на языке C++, OpenKODE и платформозависимые двоичные шейдеры.

Приложение A - GLHALFFLOAT_OES В этом приложении подробно описан half-float-формат(формат размером с полуслово для чисел плавающей точкой) и содержит руководство по преобразованию чисел плавающей точкой из IEEE-формата в half-float- формат (и обратно).

Приложение B - Встроенные функции В этом приложении приводится руководство по всем встроенным функциям, доступным в языке шейдеров OpenGL ES.

Приложение C - Грамматика языка шейдеров В этом приложении представлено руководство по грамматике языка шейдеров OpenGL ES.

Приложение D - Программный API-интерфейс фреймворка ES Это приложение содержит справочную информацию по разработанному нами для примеров книги фреймворку из утилит-функций, с описанием назначения и алгоритма каждой функции.

Книга:

https://www.amazon.com/OpenGL-ES-2-0-Programming-Guide/dp/0321502795

Загрузка кода примеров для этой книги:

Эта книга наполнена примерами программ и шейдеров. Вы можете скачать примеры из книги с веб-сайта по адресу www.opengles-book.com. Все примеры предназначены для запуска на настольных ПЭВМ, оснащенных ГПУ(GPU) с поддержкой OpenGL 2.0., под управлением ОС Windows XP или Vista. Примеры программ в исходном коде составлены в виде проектных решений Microsoft Visual Studio 2005. Примеры запускаются на эмуляторе AMD OpenGL ES 2.0. Несколько примеров продвинутых шейдеров в книге реализованы в RenderMonkey – инструменте разработки шейдеров от AMD. Веб-сайт книги содержит ссылки источники дистрибутивов любых необходимых средств. Эмулятор OpenGL ES 2.0 и инструмент RenderMonkey - оба свободно доступных инструмента. Читатели, не имеющие собственной среды разработки Visual Studio, могут использовать бесплатную версию Microsoft Visual Studio 2008 Express Edition, доступную для загрузки по адресу www.microsoft.com/express/.

Загрузка цветных изображений для этой книги:

Нет.