YafaRay (YafRay, Yet Another Free Raytracer) – бесплатная свободная программа трассировки лучей c открытым исходным , использующая для описания сцены язык XML. В феврале 2004 года модуль управления YafaRay’ем был интегрирован в программу 3D-моделирования Blender.
Программа распространяется под лицензией GNU Lesser General Public License.
Возможности YafaRay
Глобальное освещение. YafaRay использует основанное на приближениях метода Монте-Карло глобальное освещение для создания реалистично-освещённых визуализаций 3D-сцен.
Эта система основана, главным образом, на освещении от неба. Во внимание также принимается расчёт мягких теней. Кроме того, освещение может быть получено из изображения с высоким динамическим диапазоном.
YafaRay использует распределение фотонов, которое учитывает каустику (искажение света при отражении или прохождении, например, через линзу). Для симуляции полупрозрачных материалов в разработке находится шейдер, имитирующий подповерхностное рассеяние света.
Эффекты фокусной глубины резкости могут быть воспроизведены с помощью этой возможности. Если камера зафиксирована на определённой точке сцены, дальние объекты будут вне фокуса.
Если поверхность не является идеальным отражателем, отражённый свет искажается. Чем дальше находится отражаемый объект, тем сильнее будет искажение. YafaRay может имитировать данное явление.
Архитектура YafaRay
YafaRay имеет модульную структуру, основанную на ядре и других связанных с ним элементах рендеринга: загрузчике сцены, источниках освещения и шейдерах. Вместе с API это позволяет разрабатывать плагины рендеринга для использования YafaRay из любой программы или 3D-приложения. В список поддерживаемых программ входят: Blender, Wings 3D и Aztec.
YafaRay полностью написан на языке C++, что сделало программу хорошо переносимой. Прекомпилированные исполняемые файлы существуют для всех наиболее распространённых платформ: GNU/Linux, Win32, Mac OS X и Irix. YafaRay может быть использован в качестве автономного движка рендеринга, использующего собственный формат описания сцены. В этом случае он может использоваться непосредственно из командной строки, скрипта и т. д.. Также существуют заготовки для параллельного или распределённого рендеринга.
Ссылки