Курсовая работа: Реализация алгоритма обратной трассировки лучей для моделей с большим числом полигонов

Массив Tek содержит текстурные координаты, каждой вершины треугольника.

Запись треугольника не содержит координат вершин, она содержит ссылки на вершины. Таким образом, сразу несколько треугольников, могут ссылаться на одну и ту же вершину.

Это дает большую экономию памяти, так как общую для всех треугольников вершину нужно описать всего один раз.

Это упрощает изменение координат вершины. Если бы координаты вершин хранились непосредственно в записи треугольника, то пришлось бы изменить все записи треугольников, включающие данную вершину. В данном случае надо изменить координаты только одной точки.

Очень удобно поворачивать, объекты. Если необходимо повернуть заданный объект, достаточно пробежать по всем его точкам и изменить их координаты.

Настройки цвета, коэффициентов и сглаживания у каждого треугольника свои, а не одинаковые у всех треугольников объекта. Это дает большую свободу в формировании сцены.

Коэффициенты затухания и преломления задаются в записи объекта, так как они характеризуют весь объект целиком.

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

К недостаткам можно отнести то, что получение координат вершин треугольника по ссылке занимает больше времени, чем если бы мы читали их непосредственно из записи треугольника.

Иерархические оболочки

Для хранения иерархических оболочек используется массив Shapes. Он состоит из записей:

TShape=record

tip: integer;

S: integer;

G: TSpisok;

S1: integer;

G1: TSpisok;

Low: array [1. .8] of integer;

NLow: integer;

XC,YC,ZC,R: real;

end;

Первый элемент в массиве Shapes соответствует оболочке, включающей все треугольники сцены.

Поле tip принимает два значения: 1 и 2. Если у оболочки нет подоболочек, то tip равен 2, в противном случае равен 1.

G - это указатель на список треугольников, принадлежащих данной оболочке, S - их число.

G1 - это указатель на список треугольников, которые принадлежат оболочке и очень большие, S1 - их число.

Low - массив содержащий номера подоболочек в массиве Shapes, Nlow - число этих подоболочек.

XC, YC, ZC - координаты центра этой оболочки.

R - радиус оболочки.

Таким образом, в памяти разворачивается дерево. Из корня (т.е. из первой оболочки) его легко обойти. Проще всего это можно сделать, пользуясь рекурсивным алгоритмом.

2.2.3 Текстуры

К-во Просмотров: 404
Бесплатно скачать Курсовая работа: Реализация алгоритма обратной трассировки лучей для моделей с большим числом полигонов