Сообщений 1    Оценка 0        Оценить  
Система Orphus

OpenGL и DirectX: программирование графики

Для профессионалов

Автор: А. Евченко
Издательство: Питер, 2006
352 страницы

Материал предоставил: Издательство ''Питер''
Найти в магазинах
Купить в Books.Ru
Купить в издательстве "Питер"

Аннотация

Содержание
Введение

Аннотация

Задачи, связанные с различными аспектами компьютерной графики, возникают в самых различных сферах применения информационных технологий. Иногда они являются основой системы, как в играх и некоторых тренажерах, чаще играют важную вспомогательную роль, как в системах обучения, моделирования, управления технологическими процессами. Невозможно представить себе разработку компьютерной графики без использования технологий OpenGL и DirectX. В этой книге максимально подробно описываются обе эти технологии.

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

На прилагаемом компакт-диске находится код всех приложений, которые рассматривались в качестве примеров.

Содержание

Введение
От издательства

Часть 1. Программирование для Windows

Глава 1. Создание простейшего приложения

Параметры функции WinMain
Функция MessageBox()
Назначение и структура сообщений
Полноценное оконное приложение
Некоторые полезные функции и структуры данных
Типы данных Windows

Глава 2. Обмен сообщениями

Глава 3. Элементы компьютерной графики

Вывод простейших графических примитивов
Вывод динамических изображений
Формирование статических изображений

Глава 4. Измерение временн_ых интервалов

Задания для самостоятельного выполнения

Часть 2. Средства взаимодействия с пользователем в среде Windows

Глава 5. Создание и использование меню

Включение меню в окно приложения
Порядок обмена сообщениями при работе с меню
Управление состоянием пунктов меню
Средства модификации и построения меню

Глава 6. Дочерние окна

Ввод строки пароля в дочернем окне
Графические элементы управления
Создание подклассов
Элемент управления Edit

Глава 7. Диалоговые окна

Типы диалогов
Простейший модальный диалог
Немодальный диалог

Глава 8. Элементы управления в диалоговых окнах

Окна редактирования и статический текст
Применение переключателей

Глава 9. Ввод иероглифов


Глава 10. Скелетный проект

Задания для самостоятельного выполнения

Часть 3. Средства GDI-графики

Глава 11. Контекст устройства

Назначение и состав контекста
Создание элементов контекста

Глава 12. Изменение элементов контекста

Последовательность действий при изменении контекста
Изменение контекста и скорость рисования

Глава 13. Вывод графических примитивов

Прямоугольник со скругленными углами
Многоугольные фигуры
Эллипс и его фрагменты
Кривые Безье
Точки

Глава 14. Режимы вывода

Цвет текста
Фоновый цвет примитивов

Глава 15. Запрос параметров контекста

Глава 16. Контекст памяти и двойная буферизация

Копирование участков экрана
Рисование в системной памяти средствами GDI
Двойная буферизация

Глава 17. Работа с растровыми изображениями

Хранение графических данных в формате BMP
Загрузка данных из BMP-файла
Вывод растровых изображений на экран
Непосредственный доступ к графическим данным
Запись изображений в файл

Глава 18. Текстовые сообщения и шрифты

Глава 19. Атрибуты контекста устройства и текста

Глава 20. Создание и применение регионов

Типы регионов
Работа с окнами произвольной формы
Задания для самостоятельного выполнения

Часть 4. Трехмерная графика

Глава 21. Предварительные сведения

Основные термины и определения
Графический конвейер
Структура видеобуфера
Переключение страниц
Стабилизация периода переключения страниц
Структура модели виртуального мира
Свойства граней
Описание вершин грани
Структуризация объектов
Типы объектов модельного мира
Системы координат графических библиотек
Этапы работы графического конвейера

Глава 22. Инициализация библиотек и вывод примитивов

Простейшее приложение OpenGL
Инициализация библиотеки OpenGL
Вывод треугольников
Кадрирование изображения в OpenGL
Использование расширений
Измерение временных характеристик
Доступ к расширениям
Рисование в битовую карту DIB-формата
Настройка конвейера
Удаление тыльных граней
Удаление конкурирующих точек
Имитация полупрозрачности
Типы примитивов
Материал и освещение
Наложение текстур в OpenGL

Глава 23. Применение библиотеки DirectX

Характеристика COM-объектов
Инициализация DirectX
Поля структуры PIXELFORMATDESCRIPTOR
Инициализация библиотеки DirectX
Вывод треугольников
Кадрирование изображения библиотекой DirectX
Настройка конвейера
Удаление тыльных граней
Удаление конкурирующих точек
Отсечение по видимому объему
Настройка кадрирования
Задание освещенности

Глава 24. Геометрические преобразования

Преобразования на плоскости
Преобразования в однородных координатах
Преобразования в пространстве
Связь однородных и декартовых координат
Перенос и масштабирование модели объекта
Вращение объектов вокруг координатных осей
Проецирование модели на плоскость
Приведение пирамиды видимости к каноническому объему
Отображение трехмерной сцены
Отображение средствами DirectX
Отображение средствами OpenGL

Глава 25. Формирование стереоизображений

Общие сведения
Обзор демонстрационных примеров
Задания для самостоятельного выполнения

Список литературы
Алфавитный указатель

Введение

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

Лучше всего построить книгу таким образом, чтобы изучение графики не требовало ни предварительных знаний, выходящих за пределы школьного курса информатики, ни привлечения дополнительной литературы. Книга и компьютер под рукой - этого достаточно, чтобы освоить разработку систем, активно использующих методы компьютерной графики. Но при этом пришлось бы начинать очень уж издалека, рискуя не добраться до графики. Компромиссное решение заключается в том, что у читателя не предполагается никаких начальных навыков программирования для Windows, необходимый минимум дан в первых главах. Но нужно иметь опыт программирования и отладки программ на языке С++ хотя бы в среде MS DOS.

Книга состоит из нескольких частей. В первой части изложен материал, позволяющий начинающим освоить создание полноценных оконных приложений, осмыслить принятую в операционной системе организацию вычислительного процесса, познакомиться с элементами API (Application Program Interface), которые обеспечивают взаимодействие ОС Windows с прикладной программой. Вторая и третья части посвящены решению задач плоской (2D) графики средствами стандартного графического интерфейса GDI (Graphic Device Interface).

Далее при изучении трехмерной графики приводятся реализация и сравнительный анализ решения типовых задач формирования трехмерных (3D) и стереоизображений средствами библиотек DirectX и OpenGL.

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

В коротких примерах, демонстрирующих возможности API, GDI, DirectX и других программных интерфейсов, автор сознательно избегал объектно-ориентированного подхода. Разработка собственной системы классов, инкапсулирующих вызовы изучаемых интерфейсов, упрощает работу с ними. Но при этом читатель отклоняется от деталей реализации самой графики. Целью же книги является максимально подробное исследование возможностей создания и обработки графических изображений. Объектно-ориентированное программирование использовалось только в нескольких более объемных проектах.

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

    Сообщений 1    Оценка 0        Оценить