Пов-луч - POV-Ray
Оригинальный автор (ы) | Дэвид Кирк Бак, Аарон А. Коллинз, Александр Энцманн |
---|---|
Разработчики) | POV-команда |
изначальный выпуск | 29 июля 1991 г.[1][2] |
Стабильный выпуск | 3.7.0 (9 ноября 2013 г.[3]) [±] |
Предварительный выпуск | v3.8.0-alpha.10064738 (19 февраля 2019 г.[4]) [±] |
Репозиторий | |
Написано в | C ++ |
Операционная система | Кроссплатформенность |
Тип | Трассировщик лучей |
Лицензия | AGPLv3[5] |
Интернет сайт | www |
В Постоянство Vision Ray Tracer, обычно сокращенно Пов-луч, это кросс-платформенный трассировка лучей программа, которая генерирует изображения из текстовое описание сцены. Первоначально он был основан на DKBTrace, написанном Дэвидом Кирком Баком и Аароном А. Коллинзом для Amiga компьютеры. Есть также влияние более ранних Polyray[6] raytracer благодаря вкладу его автора Александра Энцманна. POV-Ray это бесплатное программное обеспечение с открытым исходным кодом, с исходный код доступно под AGPLv3.
История
Где-то в 1980-х Дэвид Кирк Бак загрузил исходный код для Unix трассировщик лучей к его Amiga. Некоторое время он экспериментировал с ним и в конце концов решил написать свой собственный трассировщик лучей, названный DKBTrace в честь его инициалов. Он разместил это в "Вы можете называть меня Рэй" электронная доска объявлений (BBS) в Чикаго, думая, что это может быть интересно другим. В 1987 году Аарон А. Коллинз загрузил DKBTrace и начал работу над x86 порт этого. Он и Дэвид Бак совместно работали над добавлением еще нескольких функций.
Когда программа оказалась более популярной, чем ожидалось, они не смогли удовлетворить спрос на дополнительные функции. Таким образом, в июле 1991 года Дэвид передал проект команде программистов, работающих в «GraphDev». Форум на CompuServe. В то же время Дэвид считал неуместным использовать свои инициалы в программе, которую он больше не поддерживал. Первоначально использовалось название «STAR-Light» (Программная рабочая группа по анимации и рендерингу), но в конечном итоге название стало «PV-Ray», а затем, в конечном итоге, «POV-Ray» (Постоянство Vision Ray Tracer),[2] имя, вдохновленное Дали картина Постоянство памяти.[7][8]
Особенности приложения и краткое изложение его истории обсуждаются в феврале 2008 года в интервью с Дэвидом Кирком Баком и Крисом Кейсоном в 24-й серии. FLOSS еженедельно.[8]
особенности
POV-Ray существенно повзрослел с момента своего создания. Последние версии программного обеспечения включают следующие функции:
- а Полный по Тьюрингу язык описания сцены (SDL), поддерживающий макросы и циклы[9]
- библиотека готовых сцен, текстур и объектов
- поддержка ряда геометрические примитивы и конструктивная твердотельная геометрия
- несколько видов источники света
- атмосферные эффекты, такие как туман и средства массовой информации (курить, облака )
- размышления, преломления, и свет каустика с помощью фотонное отображение
- поверхностные узоры, такие как морщины, шишки и рябь, для использования в процедурные текстуры и рельефное отображение
- лучезарность
- Поддержка для текстуры и визуализировал вывод во многих форматах изображений, включая TGA, PNG, и JPEG, среди прочего
- обширный пользовательская документация
Одна из главных достопримечательностей POV-Ray - это большая коллекция сторонних ресурсов и инструментов. В Интернете можно найти большое количество инструментов, текстур, моделей, сцен и руководств. Это также полезный справочник для тех, кто хочет узнать, как трассировка лучей и связанные алгоритмы трехмерной геометрии и компьютерной графики.
Текущая версия
Текущая официальная версия POV-Ray - 3.7. В этой версии представлены:
- Поддержка для симметричная многопроцессорная обработка (SMP), чтобы модуль рендеринга мог воспользоваться несколько процессоров
- Поддержка для визуализация с высоким динамическим диапазоном (HDRI), включая OpenEXR и сияние форматы файлов
- улучшен ограничивающий с помощью BSP деревья
Некоторые из основных представленных функций предыдущего выпуска (3.6):
- расширение УФ-отображение к более примитивным
- добавление 16- и 32-битных целочисленных данных в файл плотности
- улучшение 64-битный совместимость
В июле 2006 г. Корпорация Intel начал использовать бета-версия из 3.7, чтобы продемонстрировать свои новые двухъядерный Процессор Conroe за счет эффективности реализации SMP (симметричной многопроцессорной обработки).
Примитивы
POV-Ray, помимо стандартного 3D геометрический формы как тори, сферы, и поля высот, поддерживает математически определенные примитивы такой как изоповерхность (конечное приближение произвольной функции) многочлен примитивный ( бесконечный объект, определяемый Полином 15-го порядка или младший ), джулия фрактал (трехмерный срез 4-х мерный фрактал), суперквадратный эллипсоид (промежуточное звено между сферой и кубом), а параметрический примитивный (с использованием уравнений, которые представляют его поверхность, а не его внутреннюю часть).
POV-Ray внутренне представляет объекты, используя их математические определения; все примитивные объекты POV-Ray могут быть описаны математические функции. Это отличается от многих компьютерных программ, которые включают 3D-модели, которые обычно используют треугольник сетки чтобы собрать все объекты в сцене.
Этот факт дает POV-Ray ряд преимуществ и недостатков по сравнению с другими системами рендеринга и моделирования; Примитивы POV-Ray более точны, чем их полигональные аналоги: объекты, которые можно описать в терминах сфер, плоских поверхностей, цилиндров, торов и т. Д., Являются идеально гладкими и математически точными при визуализации POV-Ray, тогда как полигональные артефакты может быть виден в программном обеспечении для моделирования на основе сетки. Примитивы POV-Ray также проще определить, чем большинство их полигональных аналогов, например, в POV-Ray сфера описывается просто центром и радиусом; в среде на основе сетки сфера должна описываться множеством небольших связанных многоугольников (обычно квадроциклы или треугольники ).
С другой стороны, примитивное моделирование на основе сценариев не всегда является практичным методом для создания определенных объектов, таких как реалистичные персонажи или сложные искусственные артефакты, такие как автомобили. Эти объекты могут и должны быть созданы первыми в приложениях моделирования на основе сетки, таких как Крылья 3D и Блендер, а затем их можно преобразовать в собственный формат сетки POV-Ray.
Примеры языка описания сцены
Ниже приведен пример языка описания сцены, используемого POV-Ray для описания сцены для рендеринга. Он демонстрирует использование цвета фона, камеры, источников света, простой формы прямоугольника, имеющей нормаль поверхности и отделку, а также трансформирующие эффекты вращения.
#версия 3.6;// Включает отдельный файл, определяющий ряд общих цветов #включают "colors.inc" Глобальные настройки { Предполагаемая_ гамма 1.0 }// Устанавливаем цвет фона для изображения (темно-серый) задний план { цвет rgb <0.25, 0.25, 0.25> }// Размещает камеру// направление: Устанавливает, среди прочего, поле зрения камеры// справа: устанавливает соотношение сторон изображения// look_at: сообщает камере, куда смотреть камера { расположение <0.0, 0.5, -4.0> направление 1.5*z правильно Икс*image_width/image_height смотреть на <0.0, 0.0, 0.0> }// Размещение источника света// color: устанавливает цвет источника света (белый)// translate: перемещает источник света в желаемое место источник света { <0, 0, 0> цвет rgb <1, 1, 1> перевести <-5, 5, -5> }// Помещаем еще один источник света// color: устанавливает цвет источника света (темно-серый)// translate: перемещает источник света в желаемое место источник света { <0, 0, 0> цвет rgb <0.25, 0.25, 0.25> перевести <6, -6, -6> }// Устанавливает поле// пигмент: устанавливает цвет для поля («Красный», как определено в «colors.inc»)// finish: Устанавливает, как поверхность коробки отражает свет// normal: Устанавливает неровность коробки с использованием встроенной модели "агат"// rotate: вращает прямоугольник коробка { <-0.5, -0.5, -0.5>, <0.5, 0.5, 0.5> текстура { пигмент { цвет Красный } финиш { зеркальный 0.6 } нормальный { агат 0.25 масштаб 1/2 } } вращать <45,46,47> }
В следующем фрагменте сценария показано использование объявления, присвоения, сравнения переменных и конструкции цикла while:
#declare угол = 0; #в то время как (угол < 360) коробка { <-0.5, -0.5, -0.5> <0.5, 0.5, 0.5> текстура { пигмент { цвет Красный } финиш { зеркальный 0.6 } нормальный { агат 0.25 масштаб 1/2 } } вращать угол } #declare угол = угол + 45; #конец
Моделирование
Сама программа POV-Ray не включает моделирование особенность; По сути, это чистый модуль визуализации со сложным языком описания моделей. В дополнение к этому набору функций сторонние разработчики разработали большое количество программного обеспечения для моделирования, некоторые из которых специализированы для POV-Ray, другие поддерживают импорт и экспорт своих структур данных, включая бесплатный пакет для создания 3D-изображений с открытым исходным кодом. Блендер.
Ряд дополнительных моделей, совместимых с POV-Ray, связаны с Povray.org: Программы моделирования.
В 2007 году POV-Ray приобрела права на Мурена,[10] интерактивная программа трехмерного моделирования, давно используемая с POV-Ray. Однако по состоянию на декабрь 2016 года разработка Moray застопорилась.
Программного обеспечения
Разработка и сопровождение
Официальные изменения в дереве исходных текстов POV-Ray выполняются и / или утверждаются Командой POV. Большая часть отправки патчей и / или сообщений об ошибках делается в группах новостей POV-Ray на news.povray.org Новости сервер (с веб интерфейс так же доступно ). Поскольку доступен источник POV-Ray, есть неофициальные вилки и исправленные версии POV-Ray, доступные от третьих лиц; однако они официально не поддерживаются POV-Team.
Официальные версии POV-Ray в настоящее время не поддерживают шейдер плагины.[11] Некоторые функции, например лучезарность и шлицы все еще находятся в разработке и могут быть изменены синтаксически.
Поддержка платформы
POV-Ray 3.6 распространяется в скомпилированном формате для Macintosh, Windows и Linux.Поддержка для Intel Mac недоступен в Macintosh версия, но поскольку Mac OS X это версия Unix версия для Linux может быть составлен в теме.
Версии 3.7 с SMP поддержка официально поддерживается для Windows и Linux. Неофициальный Macintosh версии для v3.7 можно найти.[12]
POV-Ray может быть портирован на любую платформу с совместимым C ++ компилятор.
Лицензирование
Изначально POV-Ray распространялся под собственной Пов-луч Лицензия. А именно, Лицензия на распространение POV-Ray 3.6.[13] и лицензию на исходный код POV-Ray 3.6,[14] который разрешает бесплатное распространение исходного кода программы и двоичных файлов, но ограничивает коммерческое распространение и создание производных работ, кроме полнофункциональных версий POV-Ray.
Хотя исходный код старых версий доступна для модификации, в связи с вышеуказанными 3.6 и предыдущими лицензионными ограничениями она не была Открытый исходный код или свободное программное обеспечение согласно OSI или ФСПО определение термина. Это было проблемой, поскольку исходный код обменяться с большим FOSS экосистема была невозможна из-за Несовместимость лицензий с участием лицензии с авторским левом.
Одна из причин, по которой POV-Ray изначально не лицензировался в рамках бесплатного программного обеспечения. Стандартная общественная лицензия GNU (GPL) или другие лицензии с открытым исходным кодом, заключается в том, что POV-Ray был разработан до того, как лицензии типа GPL стали широко использоваться; разработчики написали свою собственную лицензию на выпуск POV-Ray, и участники разработки программного обеспечения работали в предположении, что их вклады будут лицензироваться в соответствии с лицензиями POV-Ray 3.6.
В 2013 году с версией 3.7 POV-Ray был перелицензированный под Стандартная общественная лицензия Affero версия 3 (или новее).[15] Таким образом, POV-Ray с тех пор свободное программное обеспечение согласно ФСПО определение, а также программное обеспечение с открытым исходным кодом согласно Определение открытого исходного кода.
Смотрите также
- Блендер - бесплатная программа с открытым исходным кодом для 3D-моделирования, анимации и рендеринга.
- Керкифея - бесплатная программа трассировки лучей с расширенными Эскиз совместимость
- Подсолнух - система рендеринга с открытым исходным кодом для синтеза фотореалистичных изображений, написанная на Java
- YafaRay - популярный бесплатный движок трассировки лучей с открытым исходным кодом
использованная литература
- ^ "POV-Ray: Документация: 1.1.5.3 Историческая история версий"'". povray.org. Получено 2018-12-19.
- ^ а б "POV-Ray: Новости". povray.org. Получено 2018-12-19.
- ^ "Скачать". POV-Ray. 2013-11-09. Получено 2013-11-09.
- ^ «Релизы». POV-Ray. 2019-02-19. Получено 2019-02-19.
- ^ "Лицензия POV-Ray". povray.org. Получено 2014-05-05.
- ^ «Полирай v1.7». Александр Р. Энцманн. Получено 2016-07-05.
- ^ "Документация: 1.1.5 Ранняя история". Пов-луч. Получено 2014-05-05.
- ^ а б "Сеть TWiT Netcast с Лео Ляпортом". Twit.tv. 2008-02-07. Получено 2014-05-05.
- ^ Поль Бурк: Supershape в 3D примеры изображений POV-Ray, сделанных с очень коротким кодом
- ^ "Новости: Объявление о мурене". POV-Ray. 2007-02-01. Получено 2014-05-05.
- ^ для такой реализации см., например, http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 В архиве 2007-02-07 в Wayback Machine
- ^ povrayunofficial_mac на megapov.inetart.net
- ^ "Лицензия на распространение POV-Ray 3.6". povray.org. Получено 2016-12-12.
- ^ "Лицензия на исходный код POV-Ray 3.6". povray.org. Получено 2016-12-12.
- ^ Кейсон, Крис (8 ноября 2013 г.). "Скачать POV-Ray 3.7.0". Получено 11 ноября 2013.
Начиная с версии 3.7, POV-Ray выпускается под лицензией AGPL3 (или более поздней) и, следовательно, является бесплатным программным обеспечением в соответствии с определением FSF. […] Доступен полный исходный код, что позволяет пользователям создавать свои собственные версии, а разработчикам включать части или весь исходный код POV-Ray в свое собственное программное обеспечение, при условии, что он распространяется по совместимой лицензии (например, AGPL3 или - по их выбору - любая более поздняя версия).