Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

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

Когда - то в 1980 - х годах, Дэвид Кирк Buck загрузил исходный код для Unix трассировки лучей в его Amiga . Некоторое время он экспериментировал с ним и в конце концов решил написать свой собственный трассировщик лучей, названный DKBTrace в честь его инициалов. Он разместил его на доске объявлений (BBS) «Можете называть меня Рэем» в Чикаго, полагая, что это может заинтересовать других. В 1987 году Аарон А. Коллинз загрузил DKBTrace и начал работать над его портом для x86 . Он и Дэвид Бак совместно работали над добавлением еще нескольких функций.

Когда программа оказалась более популярной, чем ожидалось, они не смогли угнаться за спросом на дополнительные функции. Таким образом, в июле 1991 года Дэвид передал проект команде программистов, работающих на форуме GraphDev на CompuServe . В то же время Дэвид считал неуместным использовать свои инициалы в программе, которую он больше не поддерживал. Название «STAR-Light» (Software Целевая группа по анимации и рендеринга) первоначально использовался, но в конечном итоге название стало «PV-Ray», а затем , в конечном счете «POV-Ray» (Постоянство видения Ray Tracer), [2] Название навеяно картиной Дали « Постоянство памяти» . [7] [8]

Особенности приложения и краткое изложение его истории обсуждаются в феврале 2008 года в интервью с Дэвидом Кирком Баком и Крисом Кейсоном в 24-й серии FLOSS Weekly . [8]

Особенности [ править ]

Стеклянная сцена, визуализированная с помощью POV-Ray, демонстрирует излучение , отображение фотонов , размытие в фокусе и другие фотореалистичные возможности. (Изображение создано Жилем Траном .)

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

  • полный по Тьюрингу язык описания сцены (SDL), который поддерживает макросы и циклы [9]
  • библиотека готовых сцен, текстур и объектов
  • поддержка ряда геометрических примитивов и конструктивной твердотельной геометрии
  • несколько видов источников света
  • атмосферные эффекты, такие как туман и медиа ( дым , облака )
  • отражения , преломления и световые каустики с использованием фотонного картирования
  • поверхностные узоры, такие как морщины , неровности и рябь , для использования в процедурных текстурах и наложении рельефа
  • лучезарность
  • поддержка текстур и визуализированного вывода во многих форматах изображений, включая TGA , PNG и JPEG , среди других
  • обширная пользовательская документация

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

Текущая версия [ править ]

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

  • поддержка симметричной многопроцессорной обработки (SMP), позволяющая рендереру использовать преимущества нескольких процессоров
  • поддержка изображений с расширенным динамическим диапазоном (HDRI), включая форматы файлов OpenEXR и Radiance
  • улучшено ограничение с использованием деревьев BSP

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

  • расширение UV-отображения на большее количество примитивов
  • добавление 16- и 32-битных целочисленных данных в файл плотности
  • улучшение 64-битной совместимости

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

Примитивы [ править ]

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

POV-Ray, в дополнение к стандартным трехмерным геометрическим фигурам, таким как торы , сферы и поля высот , поддерживает математически определенные примитивы, такие как изоповерхность (конечное приближение произвольной функции), полиномиальный примитив ( бесконечный объект, определяемый 15-м порядком или нижний полином ), фрактал Джулии (трехмерный срез четырехмерного фрактала), суперквадратичный эллипсоид (промежуточное звено между сферой и кубом) и параметрический примитивный (с использованием уравнений, которые представляют его поверхность, а не его внутреннюю часть).

POV-Ray внутренне представляет объекты, используя их математические определения; все примитивные объекты POV-Ray могут быть описаны математическими функциями . Это отличается от многих компьютерных программ, которые включают 3D-модели, которые обычно используют треугольные сетки для компоновки всех объектов в сцене.

Этот факт дает POV-Ray ряд преимуществ и недостатков по сравнению с другими системами рендеринга и моделирования; Примитивы POV-Ray более точны, чем их полигональные аналоги: объекты, которые могут быть описаны в терминах сфер, плоских поверхностей, цилиндров, торов и т. Д., Являются идеально гладкими и математически точными при визуализации POV-Ray, тогда как полигональные артефакты могут быть отображается в программном обеспечении для моделирования на основе сеток. Примитивы POV-Ray также проще определить, чем большинство их полигональных аналогов, например, в POV-Ray сфера описывается просто своим центром и радиусом; в среде на основе сетки сфера должна описываться множеством небольших связанных многоугольников (обычно четырехугольников или треугольников ).

С другой стороны, примитивное моделирование на основе сценариев не всегда является практичным методом для создания определенных объектов, таких как реалистичные персонажи или сложные искусственные артефакты, такие как автомобили. Эти объекты можно и нужно сначала создавать в приложениях для моделирования на основе сетки, таких как Wings 3D и Blender , а затем их можно преобразовать в собственный формат сетки POV-Ray.

Примеры языка описания сцены [ править ]

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

Вывод изображения POV-Ray на основе скрипта
 #version  3.6 ; // Включает отдельный файл, определяющий ряд общих цветов  #include  "colors.inc"  global_settings  {  hibited_gamma  1.0  }// Устанавливает цвет фона для изображения (темно-серый)  background  {  color  rgb  < 0,25 ,  0,25 ,  0,25 >  }// Помещает камеру // направление: Устанавливает, среди прочего, поле обзора камеры // вправо: Устанавливает соотношение сторон изображения // look_at: Сообщает камере, куда смотреть  камеру  {  location  < 0.0 ,  0.5 ,  - 4.0 >  направление  1.5 * z  вправо  x * image_width / image_height  look_at  < 0.0 ,  0.0 ,  0.0 >  }// Помещает источник света // color: устанавливает цвет источника света (белый) // translate:  перемещает  источник света в желаемое место light_source {  < 0 ,  0 ,  0 >  color  rgb  < 1 ,  1 ,  1 >  translate  < - 5 ,  5 ,  - 5 >  } // Помещает другой источник света // color: Устанавливает цвет источника света (темно-серый) // translate:  перемещает  источник света в желаемое место light_source {  < 0,  0 ,  0 >  цвет  rgb  < 0,25 ,  0,25 ,  0,25 >  перевести  < 6 ,  - 6 ,  - 6 >  }// Устанавливает прямоугольник // пигмент: Устанавливает цвет для поля («Красный», как определено в «colors.inc») // Готово : Устанавливает, как поверхность поля отражает свет // Нормально: Устанавливает неровность для box с использованием встроенной модели "агат" // rotate: вращает box  box  {  < - 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  the_angle  =  0 ; #while  ( the_angle  <  360 )  коробка  {  < - 0,5 ,  - 0,5 ,  - 0,5 >  < 0,5 ,  0,5 ,  0,5 >  текстуры  {  пигмент  {  цвет  красный  }  покрытия  {  зеркальной  0,6  }  нормального  {  агатом  0,25  Шкало  1 / 2  }  }  поворот  the_angle  }  #declare  the_angle  = the_angle  +  45 ;  #конец

Моделирование [ править ]

Сама программа POV-Ray не включает функцию моделирования ; По сути, это чистый модуль визуализации со сложным языком описания моделей. Чтобы сопровождать этот набор функций, третьи стороны разработали большое количество программного обеспечения для моделирования, некоторые из которых специализируются на POV-Ray, другие поддерживают импорт и экспорт своих структур данных, включая бесплатный пакет для создания 3D-изображений с открытым исходным кодом Blender .

Ссылки на ряд дополнительных моделей, совместимых с POV-Ray, размещены на сайте Povray.org: Modeling Programs .

В 2007 году , POV-Ray приобрела права на Морей , [10] интерактивная программа моделирования 3-D давно используется с 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 . А именно, Лицензия на распространение POV-Ray 3.6 [13] и Лицензия на исходный код POV-Ray 3.6, [14] которые разрешают бесплатное распространение исходного кода программы и двоичных файлов, но ограничивают коммерческое распространение и создание производных работ, кроме полностью функциональных. версии POV-Ray.

Хотя исходный код более старых версий доступен для модификации, из-за вышеуказанного 3.6 и предыдущих лицензионных ограничений, это не было открытым исходным кодом или бесплатным программным обеспечением в соответствии с определением термина OSI или FSF . Это было проблемой, поскольку обмен исходным кодом с большей экосистемой FOSS был невозможен из-за несовместимости лицензий с лицензиями с авторским левом .

Одна из причин, по которой POV-Ray изначально не лицензировалась под Стандартной общественной лицензией GNU (GPL) для бесплатного программного обеспечения или другими лицензиями с открытым исходным кодом, заключается в том, что POV-Ray был разработан до того, как лицензии в стиле GPL стали широко использоваться; разработчики написали свою собственную лицензию на выпуск POV-Ray, и участники разработки программного обеспечения работали в предположении, что их вклады будут лицензироваться в соответствии с лицензиями POV-Ray 3.6.

В 2013 году с версией 3.7 POV-Ray был повторно лицензирован под Стандартной общественной лицензией Affero версии 3 (или более поздней). [15] Таким образом, POV-Ray с тех пор является бесплатным программным обеспечением согласно определению FSF, а также программным обеспечением с открытым исходным кодом согласно определению открытого исходного кода .

См. Также [ править ]

  • Blender - бесплатная программа с открытым исходным кодом для 3D-моделирования, анимации и рендеринга.
  • Kerkythea - бесплатная программа для трассировки лучей с улучшенной совместимостью со Sketchup.
  • Sunflow - система рендеринга с открытым исходным кодом для синтеза фотореалистичных изображений, написанная на Java.
  • YafaRay - популярный бесплатный движок трассировки лучей с открытым исходным кодом

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Пов -луч на Керли