Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Трассировка лучей

Инсталляция

mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=mode /path/to/repo
make

Данная последовательность команд сгенерирует Вам исполняемый файл raycmd. Он поддерживает команду --help.

Переменная mode может принимать три возможных значения:

  • Release. Компиляция для использования в Ваших проектах.
  • RelWithDebInfo. Компиляция производится с опцией -DDEBUG, что может быть полезно для отладки.
  • Debug. Компиляция производится с опцией -DDEBUG и с санитайзерами (в случае Linux) или с опцией -DGLIBCXX_DEBUG иначе.

Использование

Конфиг

TODO. Пока читайте код. Также есть примеры конфигов в папке config_examples.

Библиотека

Помимо утилиты raycmd собирается динамическая библиотека libtrace.so. Для её использования подключается заголовок tracing.hpp. Основные функции:

  • check_json_scene. Принимает QJsonObject (конфиг) и проверяет его на наличие всех необходимых аттрибутов. Возвращает структуру verdict, хранящую поле ok (хороший ли конфиг) и msg (сообщения об ошибках).

  • parse_json_scene. Принимает QJsonObject (конфиг). Возвращает пару: сцену (Scene) и доп. параметры рендеринга (Hitinfo), содержащие тип рендеринга (full или preview) и способ пересечения луча со сценой (Simple - простой перебор или Hard - Bounding Volume Hierarchy). Рендеринг осуществляется командой scene->render(hitinfo) и возвращает QImage.

About

Ray tracing engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages