М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (1124363), страница 2
Текст из файла (страница 2)
222 223 . 224 225 227 230 233 235 238 239 240 243 245 246 247 249 249 251 251 256 257 259 261 262 . 264 265 265 . 267 . 269 . 269 275 278 279 282 284 . 285 288 . 288 . 292 292 294 . 297 303 . 305 , 307 Содержание Глава 9. Наложение текстур. ней ещении . Глава 10. Буфер кадров .
Буферы и их применение Буферы цвета Очистка буферов . Выбор буферов цвета для записи и чтения . Маскирование буферов. Тесты и операции над фрагментами . Тест на отсечение . Альфа-тест Тест трафарета. Тест глубины . Смешивание, размытие и логические операции Буфер накопления . Сглаживание сцены Общий обзор и пример Действия при наложении текстур Пример программы . Описание текстуры Текстуры-посредники.
Замещение изображения текстуры или его части .. Одномерные текстуры . Трехмерные текстуры Сжатые изображения текстур Использование границ текстуры М1Р-отображение: детализация на множестве уров Фильтрация . Объекты текстур . Присвоение имен объектам текстур, . Создание и использование объектов текстур удаление объектов текстур . Рабочий набор резидентных текстур . Функции текстур . Присвоение координат текпур Вычисление подходящих координат тексгуры Повторяемые и обрезанные текстуры Автоматическая генерация координат текстур Создание контуров, «Сферические» карты «Кубические» текстуры, Мультитексгурирование .. Комбинирование функций текстур . Интерполирующие функции комбинирования.
Применение вторичного цвета после текстурирования . Вторичный цвет при отключенном освещении Вторичный отраженный цвет при отключенном осв Стек матриц текстур . Глубина текстур . Создание «теневой» карты . Генерация координат текстур и их отображение .. 309 314 . 314 316 . 318 322 . 323 . 326 , 328 . 332 .
334 . 334 . 343 346 . 346 . 347 , 349 . 350 . 352 . 355 . 356 . 358 361 . 362 . 366 . 368 370 . 374 , 378 . 379 . 380 380 . 380 . 382 382 . 384 . 386 . 388 . 389 . 390 , 391 . 393 . 394 394 395 396 401 . 402 404 . 405 Содержание Размытие при движении Глубина резкости.. Плавные тени «Дрожание» . Глава 11. Мозаичное представление и поверхности второго порядка Мозаичное представление многоугольников . Создание объекта разбиения ..
Процедуры обратной связи . Свойства мозаичного разбиения Описание многоугольника , Удаление объекта разбиения .. Советы по увеличению производительности разбиения, Сообщения об ошибках БЫ Обратная совместимость .. Поверхности второго порядка: сферы, цилиндры и диски Управление квадратичными объектами . Управление атрибутами квадратичных объектов.... Квадратичные примитивы Глава 12. Вычислители и ййлсВ5.. Необходимые знания...
Вычислители, . Одномерные вычислители .. Двухмерные вычислители Применение вычислителей для текпур . Интерфейс НОй85 библиотеки БШ. Пример простого НоРВ5-объекта . Управление НОйв5-объектом . Создание Нцйв5-кривой или поверхности Усечение НОЙВ5-поверхностей .. Глава 13. Выбор и обратная связь . . Выбор .. Основные шаги. Создание стека имен .. Буфер выбора . Пример выбора. Выбор с помощью указателя мыши .. Рекомендации по написанию программы, использующей механизм выбора, . Обратная связь Массив обратной связи . Использование маркеров в режиме обратной связи . Пример обратной связи, Глава 14. Теперь, когда вы знаете многое .
Обработка ошибок .. Какую версию я использую? .. 410 410 414 414 . 416 . 417 . 418 . 419 . 423 427 . 429 429 . 430 430 . 431 432 . 433 434 43В 440 'ИО 441 445 450 452 452 456 459 463 . 466 467 468 469 470 . 471 . 474 483 485 486 487 488 . 492 . 494 496 12 Содержание Версия библиотеки инструментов.
Версии расширений для оконных систем ., Расширения стандарта, Расширения стандарта для М!сгоэог1 И пг(оэтэ (УУЯ.).... Полупрозрачность....................., . Простой эффект «растворения» изображения . Использование фонового буфера для выбора объектов Простая трансформация изображения . Послойное отображение . Сглаживание символов Рисование округлых точек .. Интерполяция иэображений . Создание устойчивых изображений Рисование закрашенных вогнутых многоугольников с помощью буфера трафарета . Нахождение перекрывающихся областей Тени ..
Удаление невидимых линий Удаление невидимых линий со смещением многоугольника . Удаление невидимых линий с помощью буфера трафарета . Текстурирование. Рисование изображений с буферизацией глубины ....... Области Дирихле «Жизнь» в буфере трафарета .
Альтернативное применение 9йгакгйхе!з() и 91Сорур~хеЬП Приложения. Приложение А. Порядок выполнения операций Общий обзор. Векторные операции. Операции над вершинами Сборка примитивов Операции над пикселами Память текстур Операции над фрагментами .. Прочее Приложение Б. Параметры состояния Команды запроса Параметры состояния Орало Текущие значения и связанные данные Массив вершин . Преобразования ..
Окрашивание. Освещение . Растеризация. Мультивыборка. Текстурирование .. Операции над пикселами . Управление буфером кадров . 497 497 497 499 499 500 501 502 504 504 506 506 507 508 510 511 512 513 513 514 515 515 516 518 519 . 520 . 521 522 522 522 523 . 523 524 . 524 . 525 526 527 528 529 . 531 532 533 534 536 . 536 541 542 Содержание Пикселы .. Вычислители ..
Рекомендации . Параметры, зависящие от реализации . Параметры глубины, зависящие от реализации . Прочее . Приложение В. ОрепИ. и оконные системы......... Обращение к новым функциям ОрепЯ... бсХ: расширение ОрепЯ. для Х УУ1пг1оиг 5уэсегп Инициализация. Управление визуализацией . Прототипы ЯХ . АЯ:. расширение ОрепЯ. для Арр1е Мас1п1оэь .
Инициализация. Визуализация и контексты . Управление контекстом визуализации ОрепЯ. ........... Экранная визуализация. Внеэкранная визуализация . Полноэкранная визуализация.. Перестановка буферов . Обновление буферов визуализации. Использование шрифтов Арр1е Мас1п1оэп . Обработка ошибок Прототипы Аб~ .. РЯс расширение ОрепЯ. для 1ВМ 05Г'2 ууагр Инициализация..
Управление визуализацией . Прототипы Рос.. ууЯс расширение ОрепЯ. для М1сгоэогг уу1пбо э 55Г58(ит(МсГ2000ГХР Инициализация.. Управление визуализацией Прототипы УУЯ. Приложение Г. Основы ба: инструментальный набор пакета разработчика Орепб~... Инициализация и создание окон . Управление окнами и событиями Загрузка карты цвета Инициализация и отображение трехмерных объектов Управление фоновыми процессами Запуск программ .. Приложение Д. Вычисление векторов нормалей . Нахождение нормалей к аналитическим поверхностям, Нахождение нормалей к полигональным поверхностям. Приложение Е. Однородные координаты и матричные преобразования Однородные координаты 543 547 548 548 551 551 . 553 554 ..
554 555 556 558 560 561 561 561 . 562 . 562 . 562 . 562 . 562 . 562 . 563 . 563 564 565 565 566 .. 567 568 568 570 572 573 574 575 . 575 576 576 . 577 . 578 . 580 582 14 Содержание Преобразование вершин Преобразование нормалей Матричные преобразования Параллельный перенос Масштабирование Поворот . Перспективная проекция . Ортогональная проекция . Приложение Ж.
Приемы программирования Правильное обращение с ОрепбЬ Приемы увеличения производительности Советы по применению ИХ.... Приложение 3. Ореп61. и инвариантность Словарь терминов... Алфавитный указатель 583 583 584 584 585 585 586 586 . 588 . 589 . 590 . 592 593 610 Моей семье — Фелвснтн, Максу, Саре и Скауту. Джеки Нейдер Г)).Х) Моей семье — Эллин, Рикки и Люси. Твм Дэвис (ТВР) Тому Деппнеру и Энди вап Даму, которые направили меня по атому пути, Мэйсон Ву <Мй') Моей семье — Викки, Бонна, Бобу, Сквигвлзу, Фантому, Тоби и Токсело.
Дэйв Шрейнер (РЫ) Памяти Фила Карлтова Об этой книге Графическая система Орели — это программный интерфейс к графическому оборудованию (С) означает СгарЫсз ?аЬгагу — графическая библиотека). Она позволяет создавать интерактивные программы, которые формируют движущие- ся цветные изображения в трехмерном пространстве. С помощью ОрепС1. вы мо- жете управлять технологиями машинной графики, создавая изображения реаль- ных объектов или воплощая другие плоды вашей фантазии. Это руководство объясняет, как создать ОрепСЕ-программу, результатом работы которой являет- ся желаемый визуальный эффект, Книга состоит из 14 глав.
Первые пять глав рассказывают, как строить правильно раскрашенные и освещенные объекты в сцене. ° Глава 1, «Введение в ОрепС», коротко описывает возможности ОрепС1.. Она также содержит простейшую ОрепСГ.-программу и излагает важнейшие программные аспекты, необходимые для понимания следующих глав. ° Глава 2, «Управление состоянием и рисование геометрических объектов», посвящена вопросам создания геометрического описания трехмерного объекта, рисуемого в сцене.
° Глава 3, «Визуализация», описывает процесс преобразования этих трехмерных моделей перед тем, как они будут нарисованы на двухмерном экране. Вы можете управлять преобразованиями для получения желаемого результата. ° Глава 4, «Цвет», объясняет, как определить цвет и метод заливки, используемые при рисовании объекта. ° Глава 5, «Освещение», раскрывает, как управлять условиями освещенности вокруг объекта, и описывает реакцию обьекта на освещение (то есть как он отражает или поглощает свет).
Освещение — это важная тема, поскольку объекты обычно не выглядят трехмерными, пока их не осветят. 16 06 этой книге Остальные главы рассматривают, как оптимизировать или ввести дополнительные усложнения в вашу трехмерную сцену. Вероятно, вы не сможете оценить все преимущества дополнительных возможностей до тех пор, пока хорошо не освоите ОрепСЕ. Ссылки на эти главы даются в соответствующих местах книги. ° Глава 6, «Смешивание, сглаживание, туман и отклонение», описывает технологию создания реалистичных изображений: ильфа-смешивание (для создания эффекта прозрачности), сглаживание (для устранения зубчатых граней), атмосферные эффекты (для имитации тумана или смога) и смещение мпогоузольников (для удаления визуальных артефактов при высокой освещенности граней залитых многоугольников). ° Глава 7, «Списки отображения», описывает, как сохранить набор команд ОрепС1.