Skip to content
yaroslavsokolov edited this page Jan 27, 2021 · 3 revisions

Welcome to the py_raytracing wiki!

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) - просчитывает освещение
Clone this wiki locally