Система за трасировка на лъчи, реализирана на езика 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 и се изпълнява вътре във всеки ред за паралелизиране на рендеринга. Поддържаните геометрични примитиви са цилиндри, торус, сфери и ориентирани правопаралелепипеди, върху които се извършват операции на обединение и разлика (премахване на пресечените части). Ландшафтът се генерира математически.

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

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster