6.21. Сравните объем вычислительных операций, требуемых для реализации методов закрашивания Фонга и Гуро. Примите во внимание результаты, полученные при выполнении упр. 6.20.

6.22. Обобщите алгоритм формирования теней, описанный в главе 5, на обработку плоских поверхностей, произвольно ориентированных в пространстве.

6.23. Модифицируйте алгоритм формирования теней таким образом, чтобы он мог работать с удаленными источниками света. Указание. Вместо перспективного проецирования используйте параллельное.

6.24. Сравните алгоритм формирования теней, описанный в главе 5, с тем, который будет использовать метод глобального тонирования сцены. Какие тени можно сформировать одним из этих методов, но нельзя сформировать другим?

Закрашивание

ГЛАВА

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

Изучение средств реализации графической системы предполагает, прежде всего, подробное знакомство с соответствующими алгоритмами. Как и при анализе алгоритмов другого назначения, мы уделим много внимания сравнению теоретической и реальной производительности и вариантам аппаратной и программной реализации с учетом специфических характеристик приложений. Хотя корректность той или иной программы на OpenGL всегда можно оценить визуально по тому, что формируется, в конце концов, на экране, существует множество вариантов алгоритмов реализации одной и той же процедуры, которые нужно тщательно проанализировать, поскольку от правильного выбора во многом зависит производительность приложения. Я специально буду обращать ваше внимание на то, как базовые операции реализованы в стандартных API, таких как OpenGL, PHIGS и Renderman. Эти операции по-разному организуются в системах с конвейерной архитектурой и в системах, использующих другие технологии обработки, например трассировку лучей.


⇐ Предыдущая| |Следующая ⇒