Главная » Free Pascal » Вместо эпилога OpenGL Free Pascal

0

Пакет OpenGL насчитывает порядка 250 функций. Около 150 функций пред- ставлены в библиотеках GLU и GLUT. Тот небольшой пласт, который нам удалось продемонстрировать в разделах этой главы, дал вам в руки инструмент, по мощно- сти заметно превосходящий функциональные возможности графической библиоте- ки BGI. Что осталось за границей изложенного материала?

В нашей книге отсутствует информация, связанная с построением плоских и пространственных кривых (сплайны Безье, B-сплайны, NURBS-кривые), с модели- рованием поверхностей, с выполнением операций над кривыми и поверхностями. Дело в том, что эта тематика требует довольно серьезного знакомства с математи- ческими основами таких дисциплин как аналитическая и дифференциальная гео- метрия, теория приближений, методы вычислений.

Мы не затронули проблемы повышения реальности изображений за счет нало- жения плоских и выпуклых текстур на грани объекта. Сама по себе процедура тек- стурирования напоминает наклеивание обоев на стены в наших квартирах. Правда, для объектов с криволинейными контурами наклеиваемая текстура должна прини- мать форму объекта и "растягиваться" по размерам соответствующих сторон. Есть некоторые технические нюансы, которые следует учитывать при использовании внешних графических файлов в качестве текстур. Во-первых, ширина и высота прямоугольного растра должны быть заданы степенями двойки, например 128 256. Во-вторых, функции OpenGL, обеспечивающие наложение текстур, используют формат кода цветности, отличный от стандарта, принятого в операционной системе Windows. Функции Windows GDI работают с последовательностью компонентов A- B-G-R, тогда как OpenGL предпочитает кодировку A-R-G-B. Эти два обстоятельст- ва должна учитывать функция, считывающая образ текстуры в оперативную па- мять, иначе перестановка компонентов цветности должна выполняться программой пользователя. Наконец, в составе библиотек OpenGL, GLU и GLUT такой функции просто нет. В системе Delphi роль такой функции выполняет процедура LoadFromFile. Следовательно, для работы с внешними текстурами в среде FP IDE необходимо привлекать дополнительную графическую библиотеку. Попытка использовать биб- лиотеку Vampyre Imaging Library, рекомендованную на сайте пользователей Free Pascal, была забракована из-за дополнительных сложностей, связанных с обилием поддерживаемых графических форматов. Одно их перечисление занимает порядка двух страниц.

Довольно важным приемом создания более реальных изображений является построение теней, отбрасываемых объектом при наличии одного или нескольких источников света. Дополнительную возможность, повышающую реальность сцены,

предоставляет "задымление" объектов, которые предполагается разместить на зад- нем плане. Имитация тумана размывает контуры и отдаляет такие объекты от по- зиции наблюдателя.

Три технических приема, перечисленные выше, конечно, могут расширить на- бор ваших дизайнерских средств. Однако современная машинная графика, исполь- зуемая при создании коммерчески успешных проектов типа спецэффектов для 3D- фильма "Аватар", требует гораздо более глубоких знаний в области алгоритмов и программных средств анимации, реализуемых с помощью специализированной многопроцессорной аппаратуры. То, с чем вы познакомились в двух последних главах нашей книги, — это только первые ступеньки на пути постижения основ и секретов машинной графики в среде FP IDE.

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии