Курсовая работа: Реализация алгоритма обратной трассировки лучей для моделей с большим числом полигонов
Если у оболочки нет подоболочек, то ищем пересечения с треугольниками этой оболочки. Если же у нее есть подоболочки, то вызываем п.2 для них всех.
При пересечении оболочек с лучом необходимо преобразовать, центры оболочек в систему координат, связанную с лучом.
При повороте или сдвиге всех объектов сцены, необходимо преобразовывать и центры оболочек. Если же совершаются преобразования не над всей сценой, а только над отдельными объектами, то необходимо произвести полный перерасчет оболочек.
2.5 Текстурирование
2.5.1. Процедуры для работы с текстурами
Для работы с текстурой предусмотрены 3 функции:
1. AddTeksture
Эта функция загружает текстуру в память. Входным данным для нее является имя файла, в котором находится текстура. Для успешной загрузки текстуры необходимо, чтобы она:
имела размеры, равные степени двойки
была в формате BMP
имела глубину цвета равную 24.
Функция возвратит true при успешной загрузке текстуры и false при неудаче.
2. CloseTex
Удаляет все ранее загруженные текстуры из памяти.
3. GetTexPoint
Эта функция позволяет получить 3 компоненты цвета точки текстуры. Входными параметрами для нее являются:
X и Y - координаты точки текстуры
Nom - номер текстуры
Первые две функции используются на этапе создания изображения. С их помощью можно легко нарисовать одну и ту же сцену с разными текстурами. При этом придется переделать всего несколько строчек.
Третья функция используется непосредственно на этапе текстурирования.
Как было сказано выше, текстурирование осуществляется в процедуре Per. Как только луч нашел пересечение с каким-либо треугольником, происходит определение цвета точки, с которой было найдено пересечение. Если у атрибутов треугольника стоит номер текстуры, равный нулю, то в качестве цвета треугольника берется цвет, записанный в атрибутах. В противном случае определяется, какая точка текстуры соответствует данной точке треугольника.
2.5.2. Собственно текстурирование
Поставим в соответствие каждому треугольнику формулы преобразования координат точек треугольника в текстурные координаты:
Определим коэффициенты a,b,c,d,e,f.
Поставим в соответствие каждой вершине треугольника нужную текстурную координату.