Курсовая работа: Построение изображений ландшафта в реальном времени
где – координаты векторов . Теперь необходимо найти координаты вектора :
.
Вектор параллелен векторудля нормали в точке , поэтому его можно использовать для расчета отражения света так же, как и вектор нормали .
Рис. 2.1.7.3.2. Изображение, полученное методом Фонга
2.1.7.4 Анализ методов Гуро и Фонга
Метод Фонга сложнее, чем метод Гуро. Для каждого пикселя поверхности необходимо выполнять намного больше вычислительных операций. Тем не менее, он дает лучшие результаты, в особенности при имитации зеркальных поверхностей.
Общие черты и отличия методов Фонга и Гуро можно показать на примере цилиндрической поверхности, аппроксимированной многогранником. Пусть источник света находится за нами. Проанализируем закрашивание боковых граней.
Рис. 2.1.7.4.1. Отличия закрашивания Фонга и Гуро
Ребра граней показаны черным цветом для иллюстрации особенностей закрашивания, на самом деле после закрашивания никакого каркаса не будет, и поверхность будет выглядеть гладкой.
Основные отличия заметны на передней грани. Она перпендикулярна направлению лучей света, поэтому нормали в вершинах этой грани располагаются симметрично – они образуют попарно равные по абсолютной величине углы с лучами света. Для метода Гуро это обусловливает одинаковые интенсивности в вершинах передней грани. А раз интенсивности одинаковые, то и для любой точки внутри этой грани интенсивность остается постоянной. Это обусловливает единый цвет закрашивания, а это, очевидно, неправильно.
Метод Фонга дает правильное закрашивание. Если интерполировать нормали передней грани, то по центру будут интерполированные нормали, параллельные лучам света. Поэтому центр передней грани будет светлее, чем края.
2.1.8 Последовательность действий при визуализации сцены
План действий, необходимых для визуализации сцены приведен на следующей схеме:
Рис. 2.1.8.1. Схема визуализации сцены
2.2 Типы, структуры данных и функции, использованные при реализации программного комплекса
2.2.1 Представление исходных данных
При проектировании программы важно сразу решить, как будут представлены исходные данные, то есть, в условиях данной работы – как будет описана карта изообластей высот и трехмерный ландшафт, какими будут форматы файлов для хранения информации о карте и ландшафте.
В данной работе был выбран полигональный способ аппроксимации пространственных фигур. Сущность полигональной модели состоит в том, что каждое тело представляется в виде определенного набора граней-многоугольников, с определенной точностью приближающих форму исходного тела. В качестве грани-многоугольника был выбран треугольник, так как это наиболее простой многоугольник, его точки всегда лежат в одной плоскости и любой более сложный многоугольник можно разбить на несколько треугольников.
Разработанные типы данных и форматы файлов подробно описаны в последующих разделах.
2.2.2 Программа «Редактор карт»
2.2.2.1 Изообласти высоты
Изообласть характеризуется цветом и высотой, поэтому для хранения информации о каждом типе изообластей используется следующая запись:
THeightColor = record