Эту идею можно реализовать разными методами, с которыми вы сможете ознакомиться в специальной литературе. Частично перечень таких источников приведен в последнем разделе данной главы. Например, можно изменять не только положение, но и форму отдельных объектов в последовательных ключевых кадрах и выполнять интерполяцию параметров примитивов, определяющих форму трансформируемого объекта. Эта технология получила название морфинга (morphing). Основная сложность при реализации морфинга- правильно сопоставить вершины модифицируемого объекта в последовательных ключевых кадрах и подобрать метод удаления "лишних" вершин или формирования новых (при необходимости).
8.7. Графические объекты
Мы познакомили вас со множеством парадигм организации графических систем, но основное внимание в этой книге все же уделяется конвейерной реализации модели синтезированной камеры. Это сделано по той простой причине, что именно эта архитектура в настоящее время поддерживается наиболее распространенными и доступными программными и аппаратными средствами. Более того, в подавляющем большинстве примеров программ мы используем режим немедленного воспроизведения (immediate-mode), который предполагает, что объект отображается на экране сразу же после выполнения фрагмента программы, формирующего этот объект. После того как объект появится на экране, никаких его следов в памяти программы не остается. Любые изменения атрибутов объекта или его положения требуют повторного выполнения фрагмента прикладной программы, формирующего этот объект.
Кроме того, желание познакомить читателей с основными методиками реализации функций графической системы заставляет нас представлять программы, в которых детали реализации методов видны довольно отчетливо. Этот подход, несмотря на довольно очевидные методические достоинства, не позволяет нам продемонстрировать альтернативные методы разработки графических приложений, основанные на более высоком уровне абстракции.
В этом разделе мы постараемся восполнить этот пробел и познакомим вас с двумя концепциями создания именно таких высокоуровневых графических приложений. Во-первых, мы расширим понятие объекта и будем рассматривать не только геометрические объекты, такие как многоугольники и векторы, но и другие элементы графических программ - камеры (наблюдателей), источники света и свойства материалов. Во-вторых, мы остановимся на таких объектах, которые продолжают существовать в программе и после того, как их образ появится на экране. Более того, такие объекты могут существовать в программе, ни-