Пов-луч

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

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

СОДЕРЖАНИЕ
  • 1 История
  • 2 Особенности
    • 2.1 Текущая версия
    • 2.2 Примитивы
    • 2.3 Примеры языка описания сцены
  • 3 Моделирование
  • 4 Программное обеспечение
    • 4.1 Разработка и сопровождение
    • 4.2 Поддержка платформы
    • 4.3 Лицензирование
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История
Ваза на пьедестале, обработанная с помощью DKBTrace 2.12

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

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

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

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

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

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

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

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

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

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

Примитивы

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

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

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

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

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

Примеры языка описания сцены

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

Вывод изображения POV-Ray на основе скрипта
 #version 3.6; // Includes a separate file defining a number of common colours #include "colors.inc" global_settings { assumed_gamma 1.0 } // Sets a background colour for the image (dark grey) background { color rgb lt;0.25, 0.25, 0.25gt; } // Places a camera // direction: Sets, among other things, the field of view of the camera // right: Sets the aspect ratio of the image // look_at: Tells the camera where to look camera { location lt;0.0, 0.5, -4.0gt; direction 1.5*z right x*image_width/image_height look_at lt;0.0, 0.0, 0.0gt; } // Places a light source // color: Sets the color of the light source (white) // translate: Moves the light source to a desired location light_source { lt;0, 0, 0gt; color rgb lt;1, 1, 1gt; translate lt;-5, 5, -5gt; } // Places another light source // color: Sets the color of the light source (dark grey) // translate: Moves the light source to a desired location light_source { lt;0, 0, 0gt; color rgb lt;0.25, 0.25, 0.25gt; translate lt;6, -6, -6gt; } // Sets a box // pigment: Sets a color for the box ("Red" as defined in "colors.inc") // finish: Sets how the surface of the box reflects light // normal: Sets a bumpiness for the box using the "agate" in-built model // rotate: Rotates the box box { lt;-0.5, -0.5, -0.5gt;, lt;0.5, 0.5, 0.5gt; texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1/2 } } rotate lt;45,46,47gt; }

В следующем фрагменте сценария показано использование объявления, присваивания, сравнения переменных и конструкции цикла while:

Вывод изображения POV-Ray на основе скрипта
 #declare the_angle = 0; #while (the_angle lt; 360) box { lt;-0.5, -0.5, -0.5gt; lt;0.5, 0.5, 0.5gt; texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1/2 } } rotate the_angle } #declare the_angle = the_angle + 45; #end
Моделирование

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

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

В 2007 году POV-Ray приобрела права на Moray, интерактивную программу трехмерного моделирования, которая долгое время использовалась с POV-Ray. Однако по состоянию на декабрь 2016 года разработка Moray застопорилась.

Программное обеспечение

Разработка и сопровождение

Официальные изменения в дереве исходных текстов POV-Ray выполняются и / или утверждаются Командой POV. Большая часть отправки исправлений и / или сообщений об ошибках осуществляется в группах новостей POV-Ray на сервере новостей news.povray.org ( также доступен веб-интерфейс ). Поскольку источник POV-Ray доступен, существуют неофициальные форки и исправленные версии POV-Ray, доступные от третьих лиц; однако они официально не поддерживаются POV-Team.

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

Поддержка платформы

POV-Ray 3.6 распространяется в скомпилированном формате для Macintosh, Windows и Linux. Поддержка Intel Mac недоступна в версии для Macintosh, но, поскольку Mac OS X является версией Unix, на ней можно скомпилировать версию для Linux.

Версии 3.7 с поддержкой SMP официально поддерживаются для Windows и Linux. Можно найти неофициальные версии Macintosh для v3.7.

POV-Ray можно портировать на любую платформу, имеющую совместимый компилятор C ++.

Лицензирование

Первоначально POV-Ray распространялся под собственной лицензией POV-Ray . А именно, Лицензия на распространение POV-Ray 3.6 и Лицензия на исходный код POV-Ray 3.6, которые разрешали бесплатное распространение исходного кода программы и двоичных файлов, но ограничивали коммерческое распространение и создание производных работ, кроме полнофункциональных версий 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 (или более поздней). Таким образом, POV-Ray с тех пор является бесплатным программным обеспечением согласно определению FSF, а также программным обеспечением с открытым исходным кодом согласно определению открытого исходного кода.

Смотрите также
  • Blender - бесплатная программа с открытым исходным кодом для 3D-моделирования, анимации и рендеринга.
  • Kerkythea - бесплатная программа для трассировки лучей с улучшенной совместимостью со Sketchup.
  • Sunflow - система рендеринга с открытым исходным кодом для синтеза фотореалистичных изображений, написанная на Java.
  • YafaRay - популярный бесплатный движок трассировки лучей с открытым исходным кодом
использованная литература
внешние ссылки
Последняя правка сделана 2024-01-08 09:17:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте