c-ray — это компактный и понятный CPU-рендерер, реализующий алгоритм трассировки лучей (ray tracing) на языке программирования C99. Он был разработан для обучения и экспериментов, с акцентом на простоту кода и минимальные зависимости. Изначально c-ray был создан как одностраничный фильтр, принимающий описание сцены через стандартный ввод и выводящий изображение в формате PPM. Со временем проект эволюционировал, добавив поддержку более сложных сцен и расширенную функциональность.
Проект активно используется в образовательных целях, служа эталонным бенчмарком для оценки производительности CPU-рендереров. Он также находит применение в качестве основы для создания рендереров в других языках программирования. Несмотря на свою компактность, c-ray поддерживает такие функции, как глобальное освещение, отражения и простое управление камерой, что делает его полезным инструментом для изучения основ рендеринга и трассировки лучей.
- Реализация на языке C99 с минимальными зависимостями
 - Поддержка глобального освещения с использованием простого Монте-Карло интегратора
 - Реализация камеры с глубиной резкости и тонкой линзой
 - Поддержка многопоточности для ускорения рендеринга
 - Встроенная система материалов с более чем 30 типами узлов, включая приближенную модель Principled BSDF
 - Поддержка рендеринга по сети с использованием TCP/IP
 - Наличие Python-обёртки и API на C для интеграции с другими приложениями
 - Поддержка плагина для Blender, позволяющего использовать c-ray в качестве рендерера
 - Простая система описания сцены с использованием текстовых файлов
 - Поддержка формата PPM для вывода изображений
 - Возможность использования c-ray в качестве бенчмарка для оценки производительности CPU-рендереров