8.6. Роботы - далеко не единственный вид составных объектов, для которых характерна зависимость движения одних компонентов от других. К таким объектам можно отнести большинство машин - велосипед, у которого вращаются колеса и педали, аэроплан, у которого вращаются пропеллеры, и даже детскую карусель с лошадками. Выберите какой-либо объект, реализующий подобные сложные движения, и разработайте графическую программу, которая воспроизводила бы это движение на экране.
8.7. Пусть заданы два многоугольника с равным количеством вершин. Разработайте программу, которая будет формировать динамическое изображение, демонстрирующее процесс трансформации одного многоугольника в другой.
8.8. В структуру узла, описанную в разделе 8.5, добавьте новый член, представляющий атрибут, и внесите соответствующие изменения в алгоритм обхода.
8.9. Разработайте простую систему построения графа сцены, который включал бы многоугольники, источники света, наблюдателя и материалы.
8.10. Почему методы трассировки лучей и приведения лучей наилучшим образом сочетаются с использованием описания сцены в виде дерева в рамках конструктивной геометрии тел.
8.11. Покажите, каким образом 4-арные деревья можно использовать для вычерчивания изображения с разным разрешением.
8.12. Разработайте программу, которая позволит пользователю конструировать шарнирные фигурки из небольшого набора базовых компонентов. С помощью этой программы пользователь должен иметь возможность указать места сочленений и "оживлять" сконструированную фигурку.
Иерархические графические модели
ГЛАВА
Операции с изображением на уровне растрового представления Втечение многих лет графические программы имели дело исключительно с геометрическими объектами, такими как прямые, многоугольники и многогранники. Хотя первые растровые системы появились еще лет 20 назад, но до последнего времени прикладные программы не имели прямого доступа к буферу кадра, поскольку в составе подавляющего большинства графических API отсутствовали функции чтения или записи отдельных пикселей. В последнее десятилетие появились методы, которые, оперируя напрямую с содержимым буфера кадра и других внутренних двухмерных буферов графической системы, позволяют добиваться очень интересных изобразительных эффектов. Именно таким способом выполняется наложение текстур, сглаживание дискретизированного изображения, реализуется идея полупрозрачного альфа-канала. В этой главе читатель познакомится с такого рода технологиями, причем, как и раньше, главное внимание будет уделено тем из них, которые поддерживаются средствами OpenGL и аналогичных ей API.