Пишем трассировщик лучей на Brainfuck
В Brainfuck всего восемь операций и одна лента ячеек, где в каждой помещается число от нуля до 255. Ни умножения, ни деления, ни дробных чисел, ни второго регистра.
И на этом языке кто-то собрал трассировщик лучей со сферами и отражениями.
Дробные числа, умножение, деление и квадратный корень здесь приходится воссоздавать с нуля из тех самых восьми символов. Работает всё настолько неторопливо, что до полного рендера дело так и не дошло, и картинку для статьи пришлось добывать обходным путём.
Разберёмся, как из восьми символов собирается настоящая математика с дробями и корнями.