Radiance — это набор инструментов для моделирования освещения , первоначально написанный Грегом Уордом. [1] Он включает в себя средство рендеринга , а также множество других инструментов для измерения смоделированных уровней освещенности. Он использует трассировку лучей для выполнения всех расчетов освещения, ускоренных за счет использования структуры данных октодерева . Он был пионером концепции визуализации с расширенным динамическим диапазоном , где уровни освещенности представляют собой (теоретически) открытые значения вместо десятичной доли максимума (например, от 0,0 до 1,0) или целой доли максимума (от 0 до 255/255). . Он также реализует глобальное освещение , используя метод Монте-Карло для выборки света, падающего на точку.
Грег Уорд начал разработку Radiance в 1985 году, когда работал в Национальной лаборатории Лоуренса в Беркли . Исходный код распространялся по лицензии, запрещающей дальнейшее распространение. В январе 2002 года Radiance 3.4 была повторно лицензирована по менее строгой лицензии.
Одно исследование показало, что Radiance является наиболее полезным программным пакетом для моделирования архитектурного освещения. В исследовании также отмечается, что Radiance часто служит базовым механизмом моделирования для многих других пакетов. [2]
Radiance определила формат изображения для хранения изображений HDR, который теперь описывается как формат изображения RGBE . Поскольку это был первый (и долгое время единственный) формат изображения HDR, этот формат поддерживается многими другими [ какими? ] пакеты программного обеспечения. [ нужна цитата ]
Файл начинается с подписи «#?RADIANCE», а затем в нескольких строках перечислены команды, использованные для создания изображения. Эта информация позволяет средству рендеринга продолжить частично завершенный рендеринг (вручную или с использованием интерфейса rad ). Существуют также объявления «ключ = значение» , включая строку «FORMAT=32-bit_rle_rgbe».
После этого идет пустая строка, обозначающая конец заголовка. Одна строка описывает разрешение и порядок пикселей. При использовании инструментов Radiance это всегда имеет форму «-Y высота + X ширина» . После этой строки следуют данные двоичных пикселей.
Radiance рассчитывает значения освещенности как тройки с плавающей запятой , по одному для красного, зеленого и синего. Но хранение полного числа двойной точности для каждого канала (8 байт × 3 = 24 байта) является обузой даже для современных систем. Для сжатия данных изображения используются два этапа. Первый масштабирует три значения с плавающей запятой, чтобы использовать общий 8-битный показатель степени , взятый из самого яркого из трех. Затем каждое значение усекается до 8-битной мантиссы (дробной части). В результате получается четыре байта по 32 бита на каждый пиксель. Это приводит к сжатию 6:1 за счет снижения точности цветопередачи.
Второй этап выполняет кодирование длины серии для 32-битных значений пикселей. Это оказывает ограниченное влияние на размер большинства визуализируемых изображений, но это быстро и просто.
Сцена сияния создается из одного или нескольких объектных файлов. Формат .rad представляет собой простой текстовый файл. В нем можно указывать отдельные геометрические объекты, а также вызывать программы, начиная строку с восклицательного знака '!'. [4]
При указании геометрии первая строка
имя типа модификатора
Следующие три строки содержат параметры, начинающиеся с целого числа, указывающего количество параметров. Параметры не обязательно должны находиться в одной строке, их можно продолжать на нескольких строках для удобства чтения.
Модификаторы создают материалы и могут быть объединены в цепочку, изменяя один другой.
Например:
myball.rad
хромированный шар-сфера004 0 0 10 10
Затем это можно поместить в другой файл с помощью программы xform (описанной ниже):
сцена.рад
пустота металл хром005 0,8 0,8 0,8 0,9 0,0!xform -a 5 -t 20 0 0 myball.rad
Это создает хромированный материал и пять хромированных сфер, расположенных на расстоянии 20 единиц друг от друга по оси X.
Прежде чем сцену можно будет использовать, ее необходимо скомпилировать в файл октодерева ('.oct') с помощью инструмента oconv . Большинство инструментов рендеринга (см. ниже) используют в качестве входных данных файл октодерева.
Пакет Radiance включает более 50 инструментов. Они были разработаны для использования в Unix и Unix-подобных системах. Многие инструменты действуют как фильтры, принимая входные данные со стандартного ввода и отправляя обработанный результат на стандартный вывод . Их можно использовать в командной строке Unix и передать в новый файл или включить в сами файлы сцен Radiance («.rad»), как показано выше.
Некоторые программы Radiance манипулируют данными сцены Radiance, читая их из указанного файла или их стандартного ввода и записывая в стандартный вывод.
Генераторы упрощают задачу моделирования сцены, они создают определенные типы геометрии из заданных параметров.
Radiance включает в себя ряд программ для конвертации геометрии сцены из других форматов. К ним относятся: