Пов-луч - POV-Ray

Пов-луч
Povray logo сфера.png
Оригинальный автор (ы)Дэвид Кирк Бак, Аарон А. Коллинз, Александр Энцманн
Разработчики)POV-команда
изначальный выпуск29 июля 1991 г.; 29 лет назад (1991-07-29)[1][2]
Стабильный выпуск3.7.0 (9 ноября 2013 г.; 7 лет назад (2013-11-09)[3]) [±]
Предварительный выпускv3.8.0-alpha.10064738 (19 февраля 2019 г.; 21 месяц назад (2019-02-19)[4]) [±]
Репозиторий Отредактируйте это в Викиданных
Написано вC ++
Операционная системаКроссплатформенность
ТипТрассировщик лучей
ЛицензияAGPLv3[5]
Интернет сайтwww.povray.org

В Постоянство Vision Ray Tracer, обычно сокращенно Пов-луч, это кросс-платформенный трассировка лучей программа, которая генерирует изображения из текстовое описание сцены. Первоначально он был основан на DKBTrace, написанном Дэвидом Кирком Баком и Аароном А. Коллинзом для Amiga компьютеры. Есть также влияние более ранних Polyray[6] raytracer благодаря вкладу его автора Александра Энцманна. POV-Ray это бесплатное программное обеспечение с открытым исходным кодом, с исходный код доступно под AGPLv3.

История

Ваза на пьедестале, обработанная с помощью DKBTrace 2.12

Где-то в 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, демонстрирующая лучезарность, фотонное отображение, фокусное размытие, и другие фотореалистичные возможности. (Изображение создано Жиль Тран.)

POV-Ray существенно повзрослел с момента своего создания. Последние версии программного обеспечения включают следующие функции:

Одна из главных достопримечательностей POV-Ray - это большая коллекция сторонних ресурсов и инструментов. В Интернете можно найти большое количество инструментов, текстур, моделей, сцен и руководств. Это также полезный справочник для тех, кто хочет узнать, как трассировка лучей и связанные алгоритмы трехмерной геометрии и компьютерной графики.

Текущая версия

Текущая официальная версия POV-Ray - 3.7. В этой версии представлены:

Некоторые из основных представленных функций предыдущего выпуска (3.6):

В июле 2006 г. Корпорация Intel начал использовать бета-версия из 3.7, чтобы продемонстрировать свои новые двухъядерный Процессор Conroe за счет эффективности реализации SMP (симметричной многопроцессорной обработки).

Примитивы

Оформление Диаграмма Венна четырех сфер, созданных с конструктивная твердотельная геометрия, или CSG. Источник на странице описания изображения.
Некоторые цветные игральная кость визуализировано в POV-Ray. CSG, преломление и фокусное размытие демонстрируются.

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 для описания сцены для рендеринга. Он демонстрирует использование цвета фона, камеры, источников света, простой формы прямоугольника, имеющей нормаль поверхности и отделку, а также трансформирующие эффекты вращения.

Вывод изображения 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:

Вывод изображения POV-Ray на основе скрипта
 #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 - популярный бесплатный движок трассировки лучей с открытым исходным кодом

использованная литература

  1. ^ "POV-Ray: Документация: 1.1.5.3 Историческая история версий"'". povray.org. Получено 2018-12-19.
  2. ^ а б "POV-Ray: Новости". povray.org. Получено 2018-12-19.
  3. ^ "Скачать". POV-Ray. 2013-11-09. Получено 2013-11-09.
  4. ^ «Релизы». POV-Ray. 2019-02-19. Получено 2019-02-19.
  5. ^ "Лицензия POV-Ray". povray.org. Получено 2014-05-05.
  6. ^ «Полирай v1.7». Александр Р. Энцманн. Получено 2016-07-05.
  7. ^ "Документация: 1.1.5 Ранняя история". Пов-луч. Получено 2014-05-05.
  8. ^ а б "Сеть TWiT Netcast с Лео Ляпортом". Twit.tv. 2008-02-07. Получено 2014-05-05.
  9. ^ Поль Бурк: Supershape в 3D примеры изображений POV-Ray, сделанных с очень коротким кодом
  10. ^ "Новости: Объявление о мурене". POV-Ray. 2007-02-01. Получено 2014-05-05.
  11. ^ для такой реализации см., например, http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 В архиве 2007-02-07 в Wayback Machine
  12. ^ povrayunofficial_mac на megapov.inetart.net
  13. ^ "Лицензия на распространение POV-Ray 3.6". povray.org. Получено 2016-12-12.
  14. ^ "Лицензия на исходный код POV-Ray 3.6". povray.org. Получено 2016-12-12.
  15. ^ Кейсон, Крис (8 ноября 2013 г.). "Скачать POV-Ray 3.7.0". Получено 11 ноября 2013. Начиная с версии 3.7, POV-Ray выпускается под лицензией AGPL3 (или более поздней) и, следовательно, является бесплатным программным обеспечением в соответствии с определением FSF. […] Доступен полный исходный код, что позволяет пользователям создавать свои собственные версии, а разработчикам включать части или весь исходный код POV-Ray в свое собственное программное обеспечение, при условии, что он распространяется по совместимой лицензии (например, AGPL3 или - по их выбору - любая более поздняя версия).

внешние ссылки