Разработка программного комплекса, обеспечивающего возможность создания карт изообластей и построения в реальном времени на их основе трехмерных изображений ландшафтов. Проведение исследования работы алгоритмов на различных наборах исходных данных.
При низкой оригинальности работы "Построение изображения ландшафта на основе карты изообластей высот в реальном времени", Вы можете повысить уникальность этой работы до 80-100%
2.1 Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики 2.1.1 Равномерная сетка высот 2.1.2 Сглаживание ландшафта 2.1.5 Отображение в окне 2.1.6 Алгоритм Z-буфера 2.1.7 Освещение 2.1.7.1 Однотонная закраска (метод гранения) 2.1.7.2 Метод Гуро2.2.1 Представление исходных данных 2.2.2 Программа «Редактор карт» 2.2.2.1 Изообласти высоты 2.2.2.3 Тип и структура файла для хранения карт изообластей 2.2.2.4 Распределение программы по модулям 2.2.2.5 Связи между модулями программы 2.2.3 Программа «Просмотр ландшафта» 2.2.3.2 Тип и структура файла для хранения ландшафта 2.2.3.3 Распределение программы по модулям 3.1 Выбор языка программирования 3.2 Описание программного комплекса 3.2.1 Программа «Редактор карт» 3.2.1.1 Общие сведенияТребование к скорости построения изображений ландшафта (для комфортной работы необходима производительность порядка 30 кадров в секунду [1]) определяет выбор алгоритма машинной графики, используемого для визуализации сцены - алгоритм Z-буфера в наибольшей степени отвечает этому требованию, так как он является наиболее простым в своей группе и требует наименьшего количества вычислительных ресурсов. При работе с освещением реализованы следующие алгоритмы заполнения плоских граней (в данной работе - треугольников): · метод гранения (однотонной закраски с учетом ориентации нормали к плоскости грани); Эта модель описывает координаты отдельных точек поверхности способом, показанным на рисунке: Рис. Следует отметить, что не каждая поверхность может быть представлена с помощью этой модели, так как если в каждом узле записывается только одно значение высоты, то это означает, что поверхность описывается однозначной функцией z = f(x, y). Пиксели для усреднения высот выбираются следующим образом: на K-ой итерации цикла производится усреднение высот пикселей с индексами (i - 1, j - 1), (i - 1, j), (i, j - 1) и (i, j), на (K 1)-ой же, в зависимости от номера цикла, усредняются высоты следующих пикселей: · в I цикле - пиксели тех же двух строк с индексами столбцов, увеличенными на 1;При проектировании программы важно сразу решить, как будут представлены исходные данные, то есть, в условиях данной работы - как будет описана карта изообластей высот и трехмерный ландшафт, какими будут форматы файлов для хранения информации о карте и ландшафте. Для работы с равномерной сеткой высот предусмотрены следующие процедуры и функции: · function CREATEZBITMAP(Width, Height : Integer) : TZBITMAP - выделение памяти для первичной сетки высот, ее размеры - Width и Height, совпадают с размерами области вывода; · function FILLZBITMAP(Image : TIMAGE; Colors : THEIGHTCOLORS) : TZBITMAP-заполнение первичной сетки высот на основе изображения, хранимого в Image и соответствий «Цвет-высота», содержащихся в массиве Colors; Для работы c файлами карт изообластей высот предусмотрены следующие процедуры: · procedure LOADFROMHEIGHTSMAP(FILENAME : string; var Image : TIMAGE; var Colors : THEIGHTCOLORS) - процедура для загрузки из файла HCL карты изообластей высот и соответствий цвет-высота. · procedure SAVEASHEIGHTSMAP(Image : TIMAGE; Colors : THEIGHTCOLORS; FILENAME : string) - процедура для сохранения разметки карты в файл HCL.Разработанный программный комплекс отвечает всем предъявляемым к нему требованиям. Он обеспечивает возможность создания карт изообластей («Редактор карт») и построения в реальном времени на их основе трехмерных изображений ландшафтов («Просмотр ландшафта»). Тем не менее, существует множество путей усовершенствования описанного программного комплекса. Кроме того, изображение просматриваемого ландшафта не предоставляет пользователю информации о географических объектах, присутствующих в области, представляемой ландшафтом.
План
План действий, необходимых для визуализации сцены приведен на следующей схеме:
Введение
Решение задачи построения поверхности на основе карты изолиний или изообластей высот является одним из этапов создания геоинформационной системы (компьютерная система, которая хранит в базе данных описание и обеспечивает анализ объектов, расположенных на поверхности Земли). Описание поверхности изолиниями высоты часто используется, например, в картографии. В данной работе решается задача построения изображения ландшафта на основе карты изообластей высот в реальном времени.
В свою очередь задача построения изображения ландшафта на основе карты изообластей включает в себя следующие задачи: · преобразование данной карты в равномерную сетку высот; · триангуляция полученной сетки высот;
· при необходимости - сглаживание триангулированной сетки для получения изображений ландшафтов, близких по очертаниям к реальным.
Требование к скорости построения изображений ландшафта (для комфортной работы необходима производительность порядка 30 кадров в секунду [1]) определяет выбор алгоритма машинной графики, используемого для визуализации сцены - алгоритм Z-буфера в наибольшей степени отвечает этому требованию, так как он является наиболее простым в своей группе и требует наименьшего количества вычислительных ресурсов.
Кроме этого, в данной работе затронуты другие алгоритмы машинной графики: преобразование координат, проецирование, освещение.
При работе с освещением реализованы следующие алгоритмы заполнения плоских граней (в данной работе - треугольников): · метод гранения (однотонной закраски с учетом ориентации нормали к плоскости грани);
· метод Гуро - метод закрашивания граней трехмерных объектов, который использует билинейную интерполяцию интенсивности цвета в вершинах граней;
· метод Фонга - метод, основанный на билинейной интерполяции векторов нормалей в вершинах граней.
Цель данной работы - реализовать перечисленные алгоритмы в разрабатываемом программном комплексе.
В программе также предусмотрен удобный русскоязычный пользовательский интерфейс, позволяющий редактировать карты изообластей высот, а также управлять получаемым изображением ландшафта (вращать его относительно координатных осей, масштабировать, изменять цвет поверхности и т.д.).
2. Конструкторская часть
2.1 Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики
2.1.1 Равномерная сетка высот
Существует большое количество моделей описания поверхностей. Наиболее распространенными из них являются: · аналитическая модель - для описания поверхности используются математические формулы, например функции от двух аргументов z = f(x, y);
· векторная полигональная модель - для описания пространственных объектов используются такие элементы, как вершины, векторы, полилинии, полигоны, полигональные поверхности;
· воксельная модель - представляет собой трехмерный растр. Подобно тому, как пиксели располагаются на плоском изображении, воксели образуют трехмерные объекты в некотором объеме;
· неравномерная сетка - в этой модели поверхность описывается в виде множества отдельных точек, принадлежащих поверхности.
В данной работе в качестве модели описания поверхности (ландшафта) используется равномерная сетка высот. Эта модель описывает координаты отдельных точек поверхности способом, показанным на рисунке:
Рис. 2.1.1.1. Общий вид равномерной сетки высот
Каждому узлу сетки с индексами (i, j) приписывается значение высоты Zij . Индексам (i, j) отвечают определенные значения координат (x, y). Расстояние между узлами одинаковое - DX по оси X и DY по оси Y.
Фактически такая модель представляет собой двумерный массив, растр, матрицу, каждый элемент которой сохраняет значение высоты.
Следует отметить, что не каждая поверхность может быть представлена с помощью этой модели, так как если в каждом узле записывается только одно значение высоты, то это означает, что поверхность описывается однозначной функцией z = f(x, y). Кроме того, невозможно моделирование вертикальных граней.
В случае представления ландшафта в виде равномерной сетки высот эти ограничения являются незначительными и вполне допустимыми. Равномерная сетка часто используется для описания рельефа земной поверхности [2].
Следует выделить следующие положительные черты модели равномерной сетки: · простота описания поверхностей;
· возможность быстро узнать высоту любой точки поверхности простой интерполяцией.
Но эта модель также имеет и недостатки: · для описания сложных поверхностей необходимо большое количество узлов, которое может быть ограничено объемом памяти компьютера;
· поверхности, которые соответствуют неоднозначной функции высоты в узлах сетки, не могут моделироваться (как уже говорилось, это ограничение незначиtrialо в условиях данной работы).
Но в данной работе равномерная сетка используется опосредованно - сразу же при получении она разбивается на треугольники (производится ее триангуляция), поскольку реализация необходимых в процессе работы алгоритмов машинной графики для этого примитива наиболее проста. Разбиение на треугольники производится путем проведения диагонали из точки (i, j) в точку (i - 1, j 1).
2.1.2 Сглаживание ландшафта
Построение ландшафта может быть произведено сразу после триангуляции равномерной сетки, но в этом случае очертания ландшафта будут резкими. Если это нежелательно, то можно воспользоваться методом сглаживания, реализованным в данной работе.
Его суть заключается в следующем. В процессе сглаживания в цикле производится усреднение высот 4 соседних пикселей. Для повешения качества и эффективности сглаживания, оно производится в 4 последовательных циклах - “слева направо”, “справа налево”, “сверху вниз” и “снизу вверх”.
Рис. 2.1.2.1. Циклы сглаживания ландшафта
Пиксели для усреднения высот выбираются следующим образом: на K-ой итерации цикла производится усреднение высот пикселей с индексами (i - 1, j - 1), (i - 1, j), (i, j - 1) и (i, j), на (K 1)-ой же, в зависимости от номера цикла, усредняются высоты следующих пикселей: · в I цикле - пиксели тех же двух строк с индексами столбцов, увеличенными на 1;
· во II цикле - пиксели тех же двух строк с индексами столбцов, уменьшенными на 1;
· в III цикле - пиксели тех же столбцов со строчными увеличенными на 1;
· в IV цикле - пиксели тех же столбцов со строчными уменьшенными на 1.
Ниже приведена иллюстрация, демонстрирующая сглаживания тестового ландшафта: индексами, индексами, результаты
Рис. 2.1.2.2. Результаты сглаживания - без сглаживания, 1 цикл, 10 циклов. trial Трехмерные аффинные преобразования
В процессе работы программы может возникать необходимость преобразования объектов сцены - их сдвига, масштабирования, поворота.
Для трехмерного пространства любое аффинное преобразование может быть представлено последовательностью простейших операций [3].
Ниже приводятся уравнения и матрицы преобразований: · сдвиг точки вдоль координатных осей на dx, dy, dz:
;
· масштабирование относительно начала координат с коэффициентами kx , ky , kz :
;
· поворот относительно осей x, y, z на угол : o ось x:
o ось y:
o ось z:
2.1.4 Проецирование
В настоящее время наиболее распространены устройства отображения, которые синтезируют изображение на плоскости, например - экране монитора. Устройства, которые создают по-настоящему объемные изображения, пока достаточно редки. Но все чаще появляются сведения о подобных разработках, например, об объемных мониторах [2].
При использовании графических устройств обычно используют проекции. Проекция задает способ отображения объекта на графическом устройстве.
При отображении пространственных объектов на экране необходимо знать координаты объектов. Рассмотрим две системы координат. Первая - мировые координаты, которые описывают истинное положение объектов в пространстве с заданной точностью. Другая - экранная система координат - система координат монитора, на экран которого осуществляется вывод изображения.
Пусть мировые координаты будут трехмерными декартовыми координатами. Для синтеза изображения на плоскости достаточно, казалось бы, двумерной экранной системы координат, однако изза использования алгоритма Z-буфера (этот алгоритм будет описан далее), они должны быть трехмерными.
В компьютерной графике распространены параллельная и центральная (перспективная) проекции.
Рис. 2.1.4.1. Параллельная и центральная проекции
Для центральной проекции лучи проецирования исходят из одной точки, размещенной на конечном расстоянии от объектов и плоскости проецирования. Для параллельной проекции лучи проецирования параллельны.
В данной работе для визуализации сцены использовалась аксонометрическая (разновидность параллельной) проекция, для нее все лучи располагаются под прямым углом к плоскости проецирования.
Как правило, расположение плоскости проецирования задается с помощью двух углов - и .
Рис. 2.1.4.2. Аксонометрическая проекция
Для того, чтобы найти соотношения между координатами (x, y, z) и (X, Y, Z) для любой точки в трехмерном пространстве, рассмотрим преобразование системы координат (x, y, z) в систему (X, Y, Z). Такое преобразование может быть задано двумя шагами: · поворот системы координат относительно оси z на угол . Такой поворот описывается матрицей
;
· поворот новой системы координат (x, y, z) относительно оси x на угол - получение координаты (X, Y, Z). Матрица поворота:
Это же преобразование можно записать в формульном виде:
2.1.5 Отображение в окне
При формировании изображения на экране монитора, как уже было сказано, необходимы дополнительные преобразования, поскольку система координат в плоскости проецирования может не совпадать с системой координат устройства отображения.
Пусть (Хэ, Уэ, Zэ) - это экранные координаты объектов в графическом устройстве отображения. Координаты проецирования обозначим как (X, Y, Z).
Преобразование координат проекции в экранные координаты можно представить как растяжение/сжатие и сдвиг:
.
Такое преобразование сохраняет пропорции одинаковому коэффициенту растяжения/сжатия k Следует отметить, что для плоского отображения отбросить.
объектов благодаря для всех координат. координату Z можно
2.1.6 Алгоритм Z-буфера
После получения треугольников ландшафта (триангуляции равномерной сетки) и проецирования их на экранную плоскость следует построение изображения ландшафта. В процессе его построения для удаления невидимых поверхностей используется алгоритм Z-буфера.
Это один из простейших алгоритмов удаления невидимых поверхностей. Работает этот алгоритм в пространстве изображения. Идея Z-буфера является простым обобщением идеи о буфере кадра. Буфер кадра используется для запоминания атрибутов (интенсивности) каждого пикселя в пространстве изображения, Z-буфер - это отдельный буфер глубины, используемый для запоминания координаты Z (глубины) каждого видимого пикселя в пространстве изображения. В процессе работы глубина или значение Z каждого нового пикселя, который нужно занести в буфер кадра, сравнивается с глубиной того пикселя, который уже занесен в Z-буфер. Если это сравнение показывает, что новый пиксель расположен впереди пикселя, находящегося в буфере кадра, то новый пиксель заносится в этот буфер и, кроме того, производится корректировка Z-буфера новым значением Z. Если же сравнение дает противоположный результат, то никаких действий не производится. По сути, алгоритм является поиском по x и y наибольшего значения функции Z(x, у). Блок-схема алгоритма выглядит следующим образом:
Рис. 2.1.6.1. Блок-схема алгоритма Z-буфера
Как уже было отмечено, главное преимущество алгоритма — его простота. Так как габариты пространства изображения фиксированы, оценка вычислительной трудоемкости алгоритма не более чем линейна. Поскольку элементы сцены или картинки можно заносить в буфер кадра или в Z-буфер в произвольном порядке, их не нужно предварительно сортировать по приоритету глубины. Поэтому экономится вычислительное время, затрачиваемое на сортировку по глубине, например в алгоритме художника.
Существенным недостатком алгоритма является потребность в значительном объеме памяти. Но в связи с тем, что стоимость оперативной памяти постоянно снижается, и установка дополнительных модулей памяти на индивидуальном компьютере стала привычным делом, этому недостатку перестали уделять особое внимание.
Другой недостаток алгоритма Z-буфера состоит в трудоемкости устранения лестничного эффекта, а также реализации эффектов прозрачности и просвечивания. Но так как в этой работе не ставилась задача реализации этих эффектов, то использование алгоритма Z-буфера вполне обоснованно.
Математическое содержание алгоритма заключается в следующем: если известно уравнение плоскости, несущей каждый многоугольник, то вычисление глубины каждого пикселя на сканирующей строке можно проделать пошаговым способом. Уравнение плоскости имеет вид:
Для сканирующей строки , поэтому глубина пикселя на этой строке, у которого , равна или , но , поэтому .
Нахождение же абсцисс точек пересечения горизонтали со сторонами треугольника (это единственный вид многоугольников, используемый при визуализации в данной работе) производится следующим образом: · для всех сторон треугольника записываются параметрические уравнения вида
;
· затем для каждой стороны находится параметр t при пересечении с горизонталью :
;
· если , то рассчитывается абсцисса точки пересечения горизонтали со стороной треугольника:
.
Рис. 2.1.6.2. Поиск абсцисс точек пересечения горизонтали со сторонами треугольника
2.1.7 Освещение
В любом трехмерном приложении использование какой-либо модели освещения всегда придает реалистичность обрабатываемой сцене. Как правило, в нее включается закон, по которому рассчитывается освещенность точки в пространстве, и метод закраски освещенного многоугольника. От выбора той или иной модели освещения зависит качество изображения, построенного компьютером, и скорость работы программы.
Обычно освещенность некоторой точки, принадлежащей грани в пространстве, складывается из рассеянной освещенности и диффузного отражения — потока света, отражающегося от поверхности объекта. Иногда к ним добавляют зеркальное отражение — поток света, отражающийся от внешней поверхности объекта под тем же углом, под которым он падал на эту поверхность. Однако в данной работе зеркальное отражение света не учитывается, так как расчет интенсивности зеркального отражения, например по модели Фонга, требует немалых вычислительных затрат. Для него требуется рассчитывать угол между вектором наблюдения и вектором отражения и возводить косинус этого угла в некоторую степень, зависящую от свойств поверхности.
Диффузное отражение присуще матовым поверхностям. Матовой можно считать такую поверхность, размер шероховатостей которой настолько велик, что падающий луч рассеивается неравномерно во все стороны. Такой тип отражения характерен, например, для гипса, песка, бумаги. Диффузное отражение описывается законом Ламберта, согласно которому интенсивность отраженного света пропорциональна косинусу угла между направлением на точечный источник света и нормалью к поверхности.
Рис. 2.1.7.1. Матовая поверхность , где - интенсивность источника света, - коэффициент, который учитывает свойства материала поверхности. Интенсивность отраженного света не зависит от расположения наблюдателя.
Матовая поверхность имеет свой цвет. Наблюдаемый цвет матовой поверхности определяется комбинацией собственного цвета поверхности и цвета излучения источника света (в данной работе цвет излучения источника считается белым, поэтому учитывается только цвет поверхности).
Можно еще усовершенствовать модель отражения, если учесть, что энергия от точечного источника света уменьшается пропорционально квадрату расстояния. Использование такого правила вызывает сложности, поэтому на практике часто реализуют модель, выражаемую эмпирической формулой
, где R - расстояние от источника света до рассматриваемой точки поверхности, k - произвольная константа, предотвращающая деление на 0.
Для определения косинуса угла между вектором нормали к поверхности и вектором, определяющим положение источника света в пространстве, следует воспользоваться скалярным произведением. Пусть имеется вектор нормали и две точки - , принадлежащая поверхности, и , определяющая положение источника. Вектор, направленный от точки поверхности к источнику света, имеет следующие координаты: . Тогда , , , или . Следовательно
.
Однако в программе используются, как правило, единичные вектора нормалей, что в данном случае позволяет уменьшить количество требуемых вычислений. В итоге:
, или, более развернуто,
.
Далее рассматриваются методы закрашивания поверхности, реализованные в данной работе.
2.1.7.1 Однотонная закраска (метод гранения)
Это наиболее простой и требующий наименьших вычислительных ресурсов метод закраски поверхности. Цвет всей поверхности рассчитывается согласно закону Ламберта. В результате, при малом количестве граней, многогранник выглядит именно как многогранник, так как цвета отдельных граней существенно отличаются. Тем не менее, создается эффект объемности изображения.
Метод гранения позволяет получать изображения, сравнимые по качеству с реальными объектами, лишь при выполнении следующих условий: · источник света находится на большом расстоянии от объекта; · наблюдатель находится на большом расстоянии от объекта;
· каждая грань тела является гранью многогранника, а не аппроксимирующей поверхностью;
· поверхность аппроксимирована большим числом небольших плоских граней.
Рис. 2.1.7.1.1. Изображение, полученное методом гранения 2.1.7.2 Метод Гуро
Этот метод предназначен для создания иллюзий гладкой криволинейной поверхности, описанной в виде многогранников или полигональной сетки с плоскими гранями. Если каждая плоская грань имеет один постоянный цвет, определенный с учетом отражения, то различные цвета соседних граней очень заметны, и поверхность выглядит именно как многогранник. Казалось бы, этот дефект можно замаскировать с помощью увеличения количества граней при аппроксимации поверхности, Но зрение человека имеет способность подчеркивать перепады яркости на границах смежных граней - такой эффект называется эффектом полос Маха. Поэтому для создания иллюзии гладкости нужно намного увеличить количество граней, что приводит к существенному замедлению визуализации.
Метод Гуро основывается на идее закрашивания плоской грани не одним цветом, а плавно изменяющимися оттенками, вычисляемыми путем билинейной интерполяции цветов примыкающих граней. Закрашивание граней по методу Гуро осуществляется в четыре этапа: · вычисляются нормали к каждой грани;
· определяются усредненные нормали в вершинах - производится усреднение нормалей примыкающих граней. На иллюстрации приведен пример - вектор нормали в вершине a равен ; ·
Рис. 2.1.7.2.1. Нормаль в вершине
· на основе усредненных нормалей в вершинах вычисляются значения интенсивностей в вершинах согласно принятой модели отражения;
· производится закрашивание грани цветом, соответствующим линейной интерполяции значений интенсивности в вершинах.
Определение интерполированных значений интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пикселя) удобно выполнять во время цикла заполнения полигона (например, совместить его с реализацией алгоритма Z-буфера). Далее рассматривается заполнение грани горизонталями в экранных координатах.
Интерполированная интенсивность I в точке (X, Y) определяется исходя из пропорции
. Отсюда
.
Значения интенсивностей I1 и I2 на концах горизонтального отрезка представляет собой интерполяцию интенсивности в вершинах:
; или
, .
Рис. 2.1.7.2.3. Изображение, получено методом Гуро 2.1.7.3 Метод Фонга
Этот метод закраски аналогичен методу Гуро, но при использовании метода Фонга для определения цвета в каждой точке интерполируются не интенсивности отраженного света, а векторы нормалей.
Последовательность действий такова: · определяются нормали к граням;
· по нормалям к граням определяются усредненные нормали в вершинах. В каждой точке закрашиваемой грани определяется интерполированный вектор нормали;
· по направлению векторов нормали определяется цвет точек грани в соответствии с принятой моделью отражения цвета.
Как уже было сказано, метод заключается в интерполяции вектора нормали. Для интерполяции будут использоваться векторы , исходящие из начала координат плоскости проецирования и параллельными соответствующим нормалям в вершинах a, b и c.
Рис. 2.1.7.3.1. Интерполяция векторов нормалей Нахождение и производится следующим образом:
,
. где - координаты векторов . Теперь необходимо найти координаты вектора :
Вектор параллелен вектору можно использовать для расчета нормали .
. для нормали в точке отражения света так же,
, поэтому его как и вектор
Рис. 2.1.7.3.2. Изображение, полученное методом Фонга 2.1.7.4 Анализ методов Гуро и Фонга
Метод Фонга сложнее, чем метод Гуро. Для каждого пикселя поверхности необходимо выполнять намного больше вычислительных операций. Тем не менее, он дает лучшие результаты, в особенности при имитации зеркальных поверхностей.
Общие черты и отличия методов Фонга и Гуро можно показать на примере цилиндрической поверхности, аппроксимированной многогранником. Пусть источник света находится за нами. Проанализируем закрашивание боковых граней.
Рис. 2.1.7.4.1. Отличия закрашивания Фонга и Гуро
Ребра граней показаны черным цветом для иллюстрации особенностей закрашивания, на самом деле после закрашивания никtrial каркаса не будет, и поверхность будет выглядеть гладкой.
Основные отличия заметны на передней грани. Она перпендикулярна направлению лучей света, поэтому нормали в вершинах этой грани располагаются симметрично - они образуют попарно равные по абсолютной величине углы с лучами света. Для метода Гуро это обусловливает одинаковые интенсивности в вершинах передней грани. А раз интенсивности одинаковые, то и для любой точки внутри этой грани интенсивность остается постоянной. Это обусловливает единый цвет закрашивания, а это, очевидно, неправильно.
Метод Фонга дает правильное закрашивание. Если интерполировать нормали передней грани, то по центру будут интерполированные нормали, параллельные лучам света. Поэтому центр передней грани будет светлее, чем края.
2.1.8 Последовательность действий при визуализации сцены
Вывод
Разработанный программный комплекс отвечает всем предъявляемым к нему требованиям. Он обеспечивает возможность создания карт изообластей («Редактор карт») и построения в реальном времени на их основе трехмерных изображений ландшафтов («Просмотр ландшафта»). В нем реализованы все рассмотренные в данной работе алгоритмы машинной графики. Проведены исследования работы алгоритмов на различных наборах исходных данных. Тем не менее, существует множество путей усовершенствования описанного программного комплекса.
Во-первых, построение ландшафта возможно только на основе четко размеченной карты изообластей высот - невозможно использование, например, файла, полученного в результате сканирования некоторой карты. Но подготовка (разметка) карты изообластей вручную - очень трудоемкий процесс. Автоматизация процесса разметки значительно расширила бы возможности программного комплекса.
Во-вторых, получаемые изображения трехмерных ландшафтов выглядят не реалистично - они лишь позволяют получить представление о рельефе рассматриваемой области. Кроме того, изображение просматриваемого ландшафта не предоставляет пользователю информации о географических объектах, присутствующих в области, представляемой ландшафтом. Добавление возможности текстурирования и подписи географических объектов повысили бы информативность получаемого изображения ландшафта.
Однако, описанные проблемы очень сложны (распознавание и разметка карт), а некоторые из них выходят за рамки машинной графики.
Список литературы
1. Роджерс Д. Алгоритмические основы машинной графики: пер. с англ.— М.: Мир, 1989.— 512 с.: ил.
2. Порев В. Н. Компьютерная графика. - СПБ.: БХВ-Петербург, 2002. - 432 с.: ил.
3. Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. СПБ.: БХВ-Петербург, 2003. - 560с.: ил.
4. Авдеева С.М., Куров А.В. Алгоритмы трехмерной машинной графики: Учебное пособие. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1996. - 60 с.: ил.
5. Архангелtrial А.Я. Приемы программирования в Delphi. - М.: ООО «Бином-Пресс», 2003. - 784 с.: ил.