-
Notifications
You must be signed in to change notification settings - Fork 1
Home
yaroslavsokolov edited this page Jan 27, 2021
·
3 revisions
main.py:
- Главный файл рендера
logsaver.py:
- Содержит функцию saveLog для сохранения состояния рендера во время ошибки для дальнейшего тестирования
filereader.py:
- Файл, который в будущем будет загружать сцены формата .3dml, представляющий из себя описание сцены в формате json
Objects.py:
- Файл, содержащий обьекты, используемые в рендере:
- Scene - сцена
- Sphere - сфера
- Light - освещение (3 типов)
- Camera - камера
- LoadingSprite - анимированный спрайт загрузки
- Text - Текст на экране приветствия
- Logo - Логотип на экране приветствия
somemath.py:
- Файл содержит некоторые вычислительные функции, такие как скалярное произведение векторов, произведение вектора на число, поворот вектора, перевод координат проекции в координаты экрана и т.п.
settings.py:
- Содержит код подгрузки и инициализации некоторых переменных (такие, как цвет фона, подгрузка изображений). Далее идут ресурсы сцены
raytracing.py:
- Главный модуль, отвечает за трассировку лучей.
- trace(screen) - начинает трассировку
- TraceRay(O, D, t_min, t_max, depth) - рекурсивно просчитывает лучи и отражения
- ClosestIntersection(O, D, t_min, t_max) - находит объект, с которым пересекся луч
- ReflectRay(R, N) - ищет отражение луча
- IntersectRaySphere(O, D, sphere) - находит пересечение луча с объектом путем решения квадратного уравнения
- ComputeLighting(P, N, V, s) - просчитывает освещение