Пятьдесят штрихов о прочитанных(переведённых) книгах.
Штрих второй. 2013 год.
Филипп Райдаут. Программирование 3D-графики для iPhone. Разработка графических приложений с OpenGL ES.
(Philip Rideout. iPhone 3D Programming. Developing Graphical Applications with OpenGL ES. ISBN: 978-0-596-80482-4, Copyright © 2010 Philip Rideout)
p.s.
Выдержка из книги:
Для кого предназначена эта книга?
Что требуется для построения приложения для iPhone с потрясающей 3D-графикой? Эта книга покажет вам, как применить технологии программирования графики OpenGL к любому устройству, работающему под «iPhone OS - включая iPad и iPod Touch. Даже при отсутствии у вас предварительного опыта разработки для iPhone или 3D-графики. Книга “Программирование 3D-графики для iPhone. Разработка графических приложений с OpenGL ES” дает вам ясные пошаговые инструкции, а так же большой практический совет по использованию iPhone SDK и OpenGL ES.
Что рассматривает эта книга?
Вы создадите несколько графических программ, продвигаясь от простых до более сложных примеров, сфокусированных на освещении, текстурировании, смешивании, добавленной реальности, оптимизации производительности и скорости, и на многом другом. Все, в чем нуждаетесь для старта, - твердое понимание C++ и наличие прекрасной идеи приложения.
Изучите фундаментальные графические понятия, включая матрицы преобразования, кватернионы, и многое другое
Настроите окружение IDE-среды разработки Xcode для iPhone-разработки
Познакомитесь с API OpenGL ES версий 1.1 и 2.0, и научитесь использовать объекты буфера вершин, освещение, текстурирование и шейдеры
Для встраивания интерактивности в графические приложения, будете использовать тачскрин iPhone, компас и акселерометр.
Построите графические приложения для iPhone, такие как вьюер 3D-каркаса, приложение простой добавленной реальности, моделирование упругой системы, и многие другие приложения.
Что рассматривает эта книга?
Глава 1. Быстрый старт. Руководство
Переход к технологии Apple
- Objective-C
Краткая история OpenGL ES
Выбор соответствующей версии OpenGL ES
Начало работы
- Установка iPhone SDK
- Построение приложения в Xcode по шаблону OpenGL Application
- Установка приложения на ваш реальный iPhone
HelloArrow с фиксированными функциями
- Иерархическое структурирование вашего 3D-приложения
- Старт с чистого листа
- Связывание в библиотеках OpenGL и Quartz
- Подклассы UIView
- Управление памятью в Objective-C
- Подключение делегата приложения
- Установка иконок и изображения запуска
- Взаимодействие с полосой статуса
- Определение и тюнинг интерфейса движка рендеринга
- Реализация движка рендеринга
- Обработка ориентации устройства
- Анимация вращения
HelloArrow с шейдерами
- Шейдеры
- Фреймворки
- GLView
- Реализация RenderingEngine
Заключение
Глава 2. Математика и метафоры
Метафора конвейера
Сборка примитивов из вершин Ассоциация свойств с вершинами
Жизнь вершин
Метафора фотографии
- Установка матрицы моделирования
- Установка видового преобразования
- Установка преобразования проецирования
Сохранение и восстановление преобразований с помощью стеков матриц
Анимация
- Методы интерполяции
- Анимация вращений с помощью кватернионов
Векторное усовершенствование с помощью C++
HelloCone с фиксированными функциями
- Декларация RenderingEngine
- Инициализация OpenGL и тесселяция конуса(разбиение на мозаику)
- Плавное вращение в трех измерениях
- Метод Render
- HelloCone с шейдерами
Заключение
Глава 3. Вершины и точки касания
Чтение тачскрина
Экономия памяти c индексацией вершин
Повышение производительности с объектами буфера вершин
Создание вьюера каркаса
- Параметрические поверхности для забавы
- Проектирование интерфейсов
- Обработка вращения шарового указателя
- Реализация движка рендеринга
- Упрощенная панель закладок
- Анимация перехода
Заключение
Глава 4. Добавление глубины и реализма
Проверка буфера глубины
- Остерегайтесь проблем с артефактами глубины
Создание и использование буфера глубины
Заполнение каркаса треугольниками
Нормали поверхностей
- Передача нормалей OpenGL
- Математика позади нормалей
- “Ненормальное“ преобразование нормалей
- Генерация нормалей из параметрических поверхностей
Освещение
- Сомнительное окружение
- Матовая расцветка с рассеянным освещением
- Придание блеска и зеркальности
- Добавление света к ModelViewer
- Использование свойств света
Шейдеры без мистификации
Добавление шейдеров к ModelViewer
- Новый движок рендеринга
- По-пиксельное освещение
- Эскизное закрашивание
Улучшение вида каркасов с помощью смещения многоугольника
Загрузка геометрии из OBJ-файлов
- Управление файлами ресурсов
- Реализация ISurface
Заключение
Глава 5. Текстуры и захват изображения
Добавление текстур к ModelViewer
- Усовершенствование IResourceManager
- Генерация координат текстуры
- Включение использования текстур в ES1::RenderingEngine
- Включение использования текстур в ES2::RenderingEngine
Перерабатываемые координаты текстуры
Борьба со ступенчатостью с помощью фильтрования
- Повышение качества и производительности с помощью мипмапов
- Изменение ModelViewer для поддержки мипмапов
Форматы и типы текстур
- На практике: загрузка различных форматов
Сжатие текстуры с помощью PVRTC
PowerVR SDK и низкоточные текстуры
Генерация и преобразование текстур OpenGL с помощью Quartz
Соглашение об ограничениях размеров
- Масштабирование в POT
Создание текстур камерой
- Реализация движка рендеринга в приложении CameraTexture
Заключение
Глава 6. Смешивание и дополненная реальность
Рецепт смешивания
Уловка предумноженной альфы
Предостережения при смешивании
Расширения стандарта в части смешивания и их использование
- Почему конфигурация смешивания полезна?
Изменение цвета текстуры по-вершиным цветом
Упрощенное отражение с помощью буфера трафарета
- Рендеринг диска только в буфер трафарета
- Рендеринг отражения объекта с включенным тестом трафарета
- Рендеринг “реального” объекта
- Рендеринг диска со смешиванием в фронтально-тыловом порядке
Альтернативы трафарету для cтарых устройств iPhone
Трюки по сглаживанию с помощью внеэкранных FBO-объектов
- Пример самого простого приложения с супер-сэмплингом
- Дрожание
- Другие эффекты с FBO-объектами
Рендеринг сглаживаемых линий с текстурами
Пример Holodeck
- Скелет приложения
- Рендеринг купола, облаков и текста
- Управление дисплеем на лобовом стекле кабины
- Замена кнопок датчиками ориентации
- Наложение живого изображения из камеры
Заключение
Глава 7. Спрайты и текст
Рендеринг текста 101: Рисование FPS-счетчика
- Генерация текстур глифов с помощью языка Python
- Рендеринг текста FPS-счетчика
Упрощение с помощью glDrawTexOES
Текст увеличенной чёткости с полями расстояний
- Генерация полей расстояний с помощью Python
- Использование полей расстояний с OpenGL ES 1.1 с альфа-тестом
- Добавление текстовых эффектов с помощью шейдеров фрагментов
- Сглаживание и производные
- Реализация текстовых эффектов: контур, жар(накал), тень
Анимация с помощью таблицы спрайтов
Составные изображения и ”вкус” мультитекстурирования
Смешивание OpenGL ES и UIKit
Рендеринг конфетти, фейерверка и других вещей: спрайты точки
Финал главы: Упругая система звезд (SpringyStars)
- Отвлечение на физику: Массовая упругая система
- Интерфейсы C++ и GLView
- Реализация ApplicationEngine
- Движок рендеринга для OpenGL ES 1.1 и добавочное смешивание
- Спрайты точки с OpenGL ES 2.0
Заключение
Глава 8. Продвинутое освещение и текстурирование
Окружающие среды текстуры под OpenGL ES 1.1
- Объединители текстуры
Наложение рельефа и DOT3-освещение
- Другое вторжение в линейную алгебру
- Генерация векторов базиса
- Наложение нормалей с OpenGL ES 2.0
- Наложение нормалей с OpenGL ES 1.1
- Генерация карт нормалей в системе координат объекта
Отражения с помощью кубических карт
- Рендеринг в кубическую карту
Анизотропное фильтрование: текстуры на стероидах
Пример обработки изображения: мягкое свечение
- Лучшая производительность при смешанном подходе
- Пример кода для Гауссовского мягкого свечения
Заключение
Глава 9. Оптимизация
Инструменты
Понимание совместной работы CPU/GPU
Передача данных вершин: до и после VBO-объектов
- Пакет, пакет, пакет
- Чередующиеся атрибуты вершин
- Оптимизируйте ваш формат вершин
- Используйте наилучшую топологию и индексацию
Оптимизации освещения
- Освещение в системах координат объекта
- Пересмотр освещения DOT3
- “Запеченное освещение“
Оптимизация текстурирования
Отбраковка и отсечение
- Проветривание многоугольников
- Пользовательские плоскости отсечения
- Обрезание с помощью ЦПУ
Производительность шейдера
- Условные зависимости
- “Убийство” фрагмента
- Поиски текстуры могут навредить!
Оптимизация анимации с повершиным скиннингом
- Скиннинг: общий код
- Скиннинг в OpenGL ES 2.0
- Скиннинг в OpenGL ES 1.1
- Генерация весов и индексов
- Не пропустите артефакт от зажимания
Дальнейшее чтение
Приложение. C++ векторная библиотека
Что потребуется для работы с книгой?
“Это снова делает программирование забавой!” - раздается клише среди фанатов; оно слишком часто используется, чтобы расхвалить достоинства некого новомодного языка программирования или платформы. Но я честно думаю, что это не лучший афоризм для описания программирования графики для iPhone. Являетесь ли вы профессионалом или человеком, увлечённым своим хобби, я надеюсь, что эта книга сможет помочь вам снова ощутить радость от программирования.
Эта книга - не руководство по OpenGL, но она действительно обучает многим базовым понятиям OpenGL как средствам достижения цели, а именно, программированию 3D-графики для iPhone и iPod touch. Большая часть книги написана в обучающем стиле, и я рекомендую вам загрузить код примеров и поиграть с ним. Читатели не нуждаются в предварительных знаниях графики, и при этом им не требуется практика работы с iPhone SDK. Требуется четкое понимание языка C++; беглость в языке в Objective-C полезна, но не необходима. В главе 7 используется чуточка кода на языке Python, но это не должно вас отпугивать.
Я старался избежать того, чтобы сделать эту книгу математически- тяжелой, но, как и в случае с любой книгой по трехмерной графике, вы по крайней мере нуждаетесь в бесстрашном отношении к основам линейной алгебры. Я буду поддерживать вас и попутно пробуждать вашу память.
Если вы с 3D-графикой уже - “на ты”, но ничего еще не делали для iPhone, то вы можете узнать кое-что из этой книги. Есть определенные параграфы, которые вы можете вероятно пропустить. Большая часть главы 2 - краткий обзор основных понятий 3D-графики; я не обижусь, если вы если вы просто пролистаете ее. И наоборот, если у вас есть опыт программирования для iPhone, но вы - новичок в 3D-графике, то вы можете пропустить некоторые обзоры Objective-C и Xcode, приведенные в главе 1.
В любом случае, я надеюсь, что вы насладитесь чтением этой книги настолько же, насколько я насладился ее написанием!
Книга:
https://www.amazon.com/iPhone-Programming-Developing-Graphical-Applications-ebook/dp/B0043M56Y6
Загрузка кода примеров для этой книги:
Нет.
Загрузка цветных изображений для этой книги:
Нет.