Мы начнем с описания иерархии технологий, обеспечивающих возрастающие уровни реалистичности, чтобы показать основные возникающие при этом проблемы. Затем рассмотрим, как включать каждую из этих технологий в приложение, а также как использовать OpenGL, чтобы он выполнил за нас большую часть самой трудной работы.
На нижней ступени этой иерархии находится каркасная (wire-frame) визуализация, обеспечивающая низший уровень реалистичности. На рис. 8.1 показан «шквал» из 540 кубов в виде каркасных структур. Нарисованы только ребра каждого из объектов, поэтому можно смотреть скозь каждый куб. При использовании этой технологии трудно понять, что есть что. (Немного помогло бы стереоизображение.)
Рис. 8.1. Каркасная визуализация сцены
Рисунок 8.2 демонстрирует значительное улучшение"images/tmp8E4A-517.png" alt="Каркасная визуализация с удалением невидимых поверхностей">
Рис. 8.2. Каркасная визуализация с удалением невидимых поверхностей На следующей ступени иерархии генерируются изображения, в которых объекты располагаются «на сцене», освещенной источниками света. Различные части объекта отражают различное количество света, в зависимости от свойств изображенных поверхностей, положения источников света и «глаза» камеры. Этот эффект требует вычисления яркости или цвета каждого фрагмента, а не выбора их пользователем. При этом вычислении используется модель закрашивания, которая определяет, какое количество света отражается от каждого фрагмента.