MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Отрисовка сцены "Отражающиеся дорожки" алгоритмом обратной трассировки лучей

Название:Отрисовка сцены "Отражающиеся дорожки" алгоритмом обратной трассировки лучей
Просмотров:174
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание: Курсовая работа на тему: «Отрисовка сцены «Отражающиеся дорожки» алгоритмом обратной трассировки лучей» Екатеринбург 2011 г. Алгоритм работы програ

Часть полного текста документа:

Курсовая работа на тему: «Отрисовка сцены «Отражающиеся дорожки» алгоритмом обратной трассировки лучей»

Екатеринбург 2011 г.


Алгоритм работы программы

1)  Заранее в программе заданы объекты и источники света, тип поверхности объектов, размеры окна для отображения изображения, цвет фона, а также координаты точки обзора;

2)  Затем для каждого пикселя изображения рассчитываем цвет, для этого направляем лучи;

3)  Если заданный луч не пересекает ни одного объекта сцены, то закрашиваем данный пиксель в цвет фона.

4)  Если же заданный луч пересекает какой-либо объект сцены, то обращаемся к методу класса Ray рассчитывающему цвет в точке пересечения. Он в свою очередь обращается к аналогичному методу класса Sphere, который находит координаты точки пересечения луча с объектом, увеличивает длину луча (вектора) до точки пересечения с объектом, находит вектор нормали к поверхности в точке пересечения.

5)  Программа передает все найденные выше параметры в метод класса Surface, который рассчитывает цвет в данной точке. В зависимости от свойств материала пересеченного объекта данный метод находит затененность, отражение, преломление в данной точке. При наличии двух последних генерируется новый луч, который трассируется (т.е. проходит заново пункты 3–5 данного алгоритма (рекурсия)). При трассировке этого луча мы получаем цвет в данной точке, который модифицируется при помощи коэффициентов и возвращается в главную функцию для последующей отрисовки.


Блок-схема программы

программа трассировка тень освещение


Заключение

В результате работы над программой были выполнены поставленные требования: реализована трассировка лучей с просчетом теней, освещения, отражения, преломления лучей, что является несомненным достоинством программы. Также задан объект – сфера. Недостатком программы считаю то, что не рассмотрены такие источники света, как свет окружающей среды и направленный свет.


Приложение 1

Полученное изображение


Приложение 2

Листинг Light.java

package objects;

/**

*

* @author Алексей

*/

 // Источник света

public class Light {

public WorkVector lightvec; // позиция истоника света

public float lightred, lightgreen, lightblue; // цвет источника света

public Light (WorkVector v, float r, float g, float b) {

lightvec = v;

lightred = r;

lightgreen = g;

lightblue = b;

}

}


Приложение 3

Листинг Ray.java

package objects;

import java.awt. Color;

import java.util. Vector;

/**

*

* @author Алексей

*/

 // Луч

public class Ray {

float max_distance = Float.MAX_VALUE; // максимальная значение для currentDistance луча

WorkVector initRay; // начало луча

WorkVector finalRay; // направление луча

float currentDistance; // Текущее расстояние до обьекта

Sphere object; // Обьект, с которым произошло столкновение луча

public Ray (WorkVector eye, WorkVector dir) {

initRay = new WorkVector(eye);

finalRay = WorkVector.normalize(dir);

}

public boolean trace (Vector objects) {

currentDistance = max_distance;

object = null;

for (int i = 0; i < objects.size(); i++) {

Sphere object = (Sphere) objects.elementAt(i);

object.intersection(this); // проверка пересечения с объектом

}

return (object!= null); // возвращение true если было пересечение

}

public final Color Shade (Vector lights, Vector objects, Color bgnd) {

return object. Shade (this, lights, objects, bgnd);

}

}


Приложение 4

Листинг Sphere.java

package objects;

import java.awt. ............




 
     

Вечно с вами © MaterStudiorum.ru