Система трассировки лучей, реализованная на языке SQL

Алексей Миловидов, сооснователь СУБД ClickHouse, при содействии AI-ассистента Claude опубликовал систему трассировки лучей, реализованную целиком на языке SQL. Рендеринг с симуляцией освещения на базе трассировки путей реализован в виде одного SQL-запроса без пользовательских функций (UDF) и без подключения внешнего кода. Для вывода графики используется возможность СУБД ClickHouse, сохранять результат запросов в формате PNG. Полноценно проект работоспособен при запуске в СУБД ClickHouse, но с отдельными ошибками и в 33 раза медленнее может работать в СУБД CedarDB. Проект распространяется под лицензией Creative Commons BY-NC-SA.

Каждый пиксель представляет собой строку в таблице, в которой имеются столбцы с координатами (X, Y) и представлением цвета (R, G, B). Необходимые для 3D-вычислений математические операции построены, а кортежах — вектор кодируется как Tuple (Float64, Float64, Float64). Цикл для моделирования многократных отражений света от поверхностей реализован через SQL-функцию arrayFold и выполняется внутри каждой строки для распараллеливания рендеринга. Из геометрических примитивов поддерживаются цилиндры, торы, сферы и ориентированные параллелепипеды, над которыми выполняются операции объединения и разности (удаления пересечений). Ландшафт генерируется математически.

CFD0C5CECEC5D4_1782928852.png

Ранее разработчики СУБД ClickHouse подготовили написанные на SQL Doom-подобную игру, эмулятор RISC-V и синтезатор музыки.

Источник: http://www.opennet.ru/opennews/art.shtml? num=65820

©  OpenNet