Приложение
Здесь приведен исходный текст основных модулей учебной программы для демонстрации метода трассировки лучей.
В модуле scene поддерживаются структуры данных для описания сцены и функции создания объектов сцены. Каждый объект представляется одной или несколькими плоскими треугольными или четырехугольными гранями. Параметры материала объекта — собственный цвет поверхности и параметры отражения и пропускания света, такие как фоновое рассеяние (ambient), диффузное (diffuse), зеркальное отражение (reflect), зеркальные блики (specular), гладкость (показатель Фонга р) и прозрачность (through). Описание объектов записывается в три одномерных вектора, поддерживающих иерархию: объекты — грани — вершины. Для ускорения трассировки в структуры данных также записываются оболочки. Есть два типа оболочек — оболочки объектов и оболочки отдельных граней. Оболочки имеют форму шара.
Файл scene.h:
/
Альфа-канал — характеристика прозрачности.
Анимация (animation) — последовательность кадров, которые воспринимаются как кино.
Антиалиасинг (antialiasing) — устранение ступенчатого эффекта растровых изображений, сглаживание путем задания цветов отдельных угловых пикселов.
Аффинное преобразование — линейное преобразование, например, преобразование координат.
Битовый массив (bitmap)— растр, который сохраняется в памяти или на диске.
Векторизация (vectorization) — преобразование в векторную форму описания из растровой или другой формы.
Векторная графика — создание изображений на основе векторного описания отдельных объектов.
Окно (window) — фрагмент плоскости графического вывода. В операционной системе Windows это фундаментальное понятие, которое ассоциируется с выполняемой программой.
Видеоадаптер — устройство, с помощью которого непосредственно формируется изображение на экране монитора компьютерной системы. Создание изображения осуществляется на основе данных, которые присылаются из процессора и памяти.
Виртуальная реальность (virtual reality) — понятие, которое означает способность компьютерной системы создать для человека иллюзию действий в некотором пространстве.
Видовое преобразование (view transform) — преобразование координат согласно ракурсу показа пространственных объектов.
Воксел (voxel — volume picture element) — элемент объемного растра. Массивы в. используются для моделирования объемных трехмерных объектов.
Вексельный рендеринг — отображение на основе воксельной модели.
• В.р. прямого хода (forward rendering) — вывод точек в произвольном порядке с использованием Z-буфера.
• В.р. BTF (back-to-front) — сканирование объема начинается с самых дальних вокселов и заканчивается самыми близкими.
• В.р. FTB (front-to-back) — сканирование объема начинается с самых близких вокселов и заканчивается самыми дальними вокселами.
Гамма-коррекция — компенсация нелинейности функции яркости для экранов дисплеев телевизионного типа.
Геоинформационная система (ГИС)— компьютерная система, которая хранит в базе данных описание и обеспечивает анализ объектов, которые располагаются на поверхности Земли.
Графический интерфейс пользователя (Graphical User Interface, GUI) — набор графических элементов, которые предусмотрены для пользователей компьютерной системы для выполнения некоторых операций.
Гуро метод — способ закрашивания граней трехмерных объектов, который использует интерполяцию интенсивностей отражения света в вершинах граней.
Дизеринг (dithering) — иллюзия оттенка цвета, созданная смешением близко расположенных точек различных цветов.
Интерактивная компьютерная графика — понятие, которое использовалось для того, чтобы подчеркнуть наличие аппаратных и программных способов диалога с человеком в графической компьютерной системе.
Интерфейс графического устройства (Graphic Device Interface, GDI) — подсистема операционной системы Windows.
Компьютерная графика — создание изображений с помощью компьютера.
Контекст (context) — указывает место графического вывода. С контекстом ассоциируется поверхность отображения и структура данных, которые описывают основные параметры.
• К. графического устройства (device context) — фундаментальное понятие графики для функций API Windows.
• К. отображения (rendering context) — контекст для функций библиотеки OpenGL.
Линиатура— количество точек (линий) на единицу длины. Используется
для характеристики растеризации методом дизеринга. Метафайл (metafile) — описание изображения в файле, которое содержит
операторы графики в соответствующей последовательности. Морфинг (morphing) — методы преобразования формы объектов. Муар — видеоэффект, узор, который возникает вследствие взаимодействия растровых структур изображения и растровых элементов устройства отображения.
Операционная система— программа, которая управляет ресурсами компьютера и другими программами. Пример о.с. — Windows, Unix, MacOS. Палитра (pallete) — набор цветов, важных для определенного изображения. Пиксел (pixel — picture element) — элемент растра. Плоттер (plotter) — векторное устройство для отображения на бумаге. Полигон (polygon) — многоугольник, фигура, которая ограничивается контуром связанных отрезков прямых.
Полилиния (polyline) — ломаная линия связанных отрезков прямых. Принтер (printer) — устройство для печати, преимущественно растрового
типа. Растеризация (rasterization) — создание растрового изображения на основе
векторного (или другого) описания элементов изображения. Растровое изображение — изображение, созданное множеством близко расположенных точек различного цвета (пикселов).
Рендеринг (rendering) — процесс отображения информации в графическом виде. Как правило, это относится к созданию изображений трехмерных объектов.
Разрешающая способность растра (resolution) — характеристика растров и растровых устройств. Измеряется в количестве пикселов на единицу длины, например, в дюймах (dpi).
• Оптическая р. сп. р. — характеризует оптическую систему растровых устройств ввода-вывода.
• Интерполированная р. сп. р. — выше оптической благодаря интерполяции.
Система автоматизированного проектирования, САПР (Computer Aided Design, CAD) — система для проектирования сложных объектов с помощью компьютера. Обычно функционирует в интерактивном режиме и широко использует компьютерную графику.
Сканер (scanner) — устройство для ввода графических изображений в компьютер.
Сплайн — кривая или поверхность специального типа, которая может использоваться для аппроксимации фрагментов линий или поверхностей сложной формы. Несколько связанных сплайнов описывают форму как единое целое.
Спрайт (sprite) — растровое изображение отдельного объекта рисунка, которое сохраняется в битовом массиве и быстро копируется в нужное место. Спрайты широко используются в анимации.
Тексел (texel — texture element) — элемент растровой текстуры.
Текстура (texture) — стиль закрашивания, который создает иллюзию рельефности поверхности объекта. Часто используется в виде растровых образцов (битмапов).
Трассировка лучей (raytracing) — методы создания реалистичных изображений, основанные на отслеживании распространения световых лучей.
• Обпйтная тр. л. — отслеживание световых лучей в обратном порядке, то ecS, начиная от точки наблюдения и далее, к источникам света.
Триангуляция -^ формирование модели поверхности в виде множества связанных треугольников.
Фильтрация текстур — способ коррекции, интерполяции изображения при наложении текстуры на поверхность объектов.
Фонга метод — способ закрашивания граней трехмерных объектов, который основывается на интерполяции векторов нормалей в вершинах.
Фракталы (fractals) — объекты сложной формы, которые описываются простыми циклами итераций.
Шрифт (font) — набор знаков символов для представления текста в полиграфии, компьютерных системах, причем для этих знаков характерны единство стиля, размеров, одинаковость способов отображения.
• Растровый шр. — набор растровых изображений символов.
• Векторный шр. — использует описание символов в векторной форме, благодаря чему может гибко изменять размеры и форму текста.
• TrueType— формат шрифтов для программ операционной системы Windows, является разновидностью векторного шрифта— использует описание формы символов В-сплайнами.
AGP (Accelerated Graphics Port) — локальная шина для обмена информацией
между видеоадаптером, процессором и оперативной памятью.
API (Application Program Interface) — интерфейс для разработки прикладных
программ.
BMP — растровый графический формат файлов, который широко используется программами в операционной среде Windows. Изображение сохраняется в форме битового массива.
CMYK (Cyan Magenta Yellow blac) — субтрактивная цветовая модель.
DirectX — подсистема Windows для графического вывода. Direct3D — программный интерфейс API, разработанный в Microsoft для
трехмерной графики в Windows.
dpi (dots per inch) — количество точек на дюйм длины. Единица измерения
разрешающей способности растра.
DXF — векторный графический формат файлов. Разработан Autodesk.
EMF (Enhanced MetaFile) — векторный графический формат для программ в
среде Windows.
FIF (Fractal Image Format) — формат файлов для изображений, которые сжаты методом фрактального сжатия. fps (frames per second) — количество кадров в секунду. Единица измерения
скорости видеосистемы для мультимедиа
. GIF— растровый графический формат, который широко используется в
Internet. Разработан CompuServe.
GLide — программный интерфейс API, разработанный в 3Dfx Interactive для графических программ, использующих графические видеоадаптеры семейства Voodoo.
HTML — формат файлов для документов, в которых присутствуют текст,
графика и другие элементы. Широко используется в Internet.
JPEG (Joint Photographic Experts Group) — стандарт формата файлов для
растровых изображений с эффективным сжатием информации. LZW — метод сжатия информации, который используется, например, в файлах формата GIF.
MIP mapping — сохранение нескольких вариантов текстуры для различных ракурсов, масштабов показа, что обеспечивает улучшение вывода тексту-рированных поверхностей.
MPEG (Moving Pictures Expert Group) — стандарт для цифрового кодирования компьютерных видеофильмов.
OpenGL (Open Graphic Library)— библиотека графических функций, интерфейс для графических прикладных программ. Разработана Silicon Graphics.
PCX — популярный растровый графический формат. Разработан ZSoft.
PDF (Portable Document Format) — формат файлов электронных документов. Файл может включать текст, графику (растровую и векторную) и прочие данные. Разработан Adobe.
RAM (Random Access Memory) — оперативная память компьютера.
• VRAM (Video RAM) — видеопамять, кадровый буфер в видеоадаптерах.
RGB (Red Green Blue) — аддитивная цветовая модель, согласно которой цвет кодируется тремя компонентами — красным, зеленым и синим.
RGBA (Red Green Blue Alpha) — компоненты описания цвета и прозрачности для элементов изображения.
RLE (Run Length Encoding) — метод сжатия информации. Используется, например, в файлах PCX.
TIFF (Tag Image File Format)— растровый графический формат, который используется для обмена графическими данными.
VRML (Virtual Reality Modeling Language) — компьютерный язык описания трехмерных объектов и сцен. Используется в Internet.
Wavelet transform — метод преобразования, который можно использовать для эффективного сжатия изображений. Внедряется AT&T.
Windows— операционная система для компьютеров. Использует графический интерфейс пользователя. Часто применяется в персональных компьютерах типа IBM PC. Разработана Microsoft.
WMF (Windows MetaFile) — векторный графический формат для программ в среде Windows.
XYZ — название цветовой модели, принятой Международной Комиссией по Освещению.
Z-буфер— массив, в котором сохраняются значения расстояния до точки наблюдения (глубина) для каждого пиксела растрового изображения. Используется в алгоритмах создания изображений трехмерных объектов с удалением невидимых точек.