Что такое pov ray

Пов-луч

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

Содержание

История

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Где-то в 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. Фото Что такое pov ray

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

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

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

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

Примитивы

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

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. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

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

Источник

Научные иллюстрации в POV-Ray

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

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Обычная кухня. Нет, это не фотография, а изображение, созданное в программе POV-Ray методом трассировки лучей. Представьте, что экран вашего компьютера — это окно, за которым что-то происходит. Это «что-то» называется сценой. Цвет каждого пикселя на экране — это цвет луча, который выходит из глаза, проходит через этот пиксель и сталкивается со сценой. Луч может просто вернуться назад, а может отразиться от зеркальной поверхности или преломиться, проходя, например, из воздуха в стекло. Чтобы узнать цвет, в который окрасится пиксель, нужно запустить через него луч и проследить путь этого луча по сцене. Отсюда произошло название алгоритма: ray-tracing — трассировка лучей.

Точнее, это обратная трассировка лучей. Ведь, как мы знаем, луч не выходит из глаза, а наоборот, попадает в него, проделав свой путь от источника света. Однако такая (прямая) трассировка требует огромных вычислительных ресурсов, ведь большая часть лучей пропадает даром, не попав в наше поле зрения. Подробнее физические основы метода обратной трассировки лучей изложены в книге Е. В. Шикина и А. В. Борескова «Компьютерная графика. Динамика, реалистические изображения» (М.: Диалог-МИФИ, 1995).

POV-Ray или, полностью — The Persistence of Vision Ray-Tracer — использует обратную трассировку лучей для создания трехмерных фотореалистических изображений. Сцена в POV-Ray описывается на SDL (Scene Description Language) — интерпретируемом языке программирования с С-подобным синтаксисом. При помощью SDL пользователь задает положение камеры, источников света, размещение объектов и их свойства, атмосферные эффекты и т. п.

Применение POV-Ray для научной иллюстрации — лишь малая часть среди возможных направлений использования этой программы. И даже с этой малой частью мы в статье успеем лишь познакомимся. Что ж, приступим…

Векторы и система координат

Система координат, принятая в POV-Ray по умолчанию, выглядит так:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Ось Z направлена внутрь монитора.

Чтобы получить изображение, нам понадобится объект для съемки, освещение, и камера. Вот с нее и начнем.

Камера

Источник света

Разместим позади и справа от камеры источник света light_source :

По умолчанию, источник света невидим — это просто светящаяся точка, но его можно сделать видимым, а также привязать к любому объекту, как встроенному, так и созданному пользователем.

Простые объекты

POV-Ray располагает обширной библиотекой готовых объектов. Вот, например, как задается сфера:

Первый вектор определяет положение центра сферы, а следующее за ним число — ее радиус. Наша сфера расположена в начале координат и ее радиус равен 2.

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

По умолчанию, сфера окрашивается в черный цвет. Пигмент (краситель), задающий цвет объекта, определяется в блоке pigment :

Цвет пигмента задается точно также как цвет источника света. В нашем случае сфера будет окрашена в белый цвет.

Собирая все фрагменты вместе, получим:

Пора «попросить» POV-Ray оттрассировать это. Сохраним сцену в файле test.pov и запустим POV-Ray командой:

В POV-Ray для Windows трассировку можно выполнить с помощью меню:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Вот что у нас получилось:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Для начала неплохо. Напоминает планету в космосе. Можно усилить это сходство, нанеся на поверхность сферы рельеф и текстуру. Как это сделать, описано здесь, а мы пойдем дальше.

Конструктивная геометрия

Новые тела можно получать из уже имеющихся при помощи операций объединения, слияния, разности, пересечения и т. п. Такой способ создания новых объектов называется конструктивной блочной геометрией (Constructive solid geometry, CSG).

Создадим изображение молекулы воды, состоящее из большой сферы — атома кислорода и двух малых сфер — атомов водорода:

Команда rotate вращает объект относительно начала отсчета. В данном случае мы повернули вторую из малых сфер на 104.45 градуса (т. е. на угол между атомами водорода в молекуле воды). Как видно, в POV-Ray, в отличие от многих языков программирования, углы задаются в градусах, а не в радианах.

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Заметим, что после своего создания объект H2O поворачивается как единое целое на 36 градусов:

Применяя этот подход можно легко создать несколько объектов:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Немудрено, что POV-Ray активно используется для визуализации молекулярных структур (пример).

Анимация

Теперь командная строка будет выглядеть так:

В результате получится последовательность из 20 кадров — графических файлов, которые затем можно будет преобразовать в видео. Для этого есть масса инструментов, например Virtualdub — широко распространенный, свободный и кроссплатформенный.

Вот что у нас получилось в итоге:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Цикл while

Допустим, нам нужно выполнять анимацию вплоть до заданного момента времени. Тогда нам пригодится цикл с условием:

Он будет выполняться до тех пор, пока остается истинным логическое условие, стоящее в скобках.

Давайте нарисуем бокс, поместим на его вершину шар, столкнем его и нарисуем что из этого получится:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Обратите внимание на то, что сцена освещена сразу тремя источниками света. Первый источник дает нам обычное освещение. Зачем тогда нужны два других? А вот зачем. Второй источник освещает сцену сверху и позволяет получить «дорожку» из теней шаров в горизонтальной плоскости. Третий — светит сбоку и дает тени шаров на вертикальной стенке бокса. Теперь мы можем увидеть, что вдоль координаты X шар движется равномерно, а вдоль Y — ускоряется. Пригодится в качестве наглядного примера на уроке физики, не так ли?

Заметим, что POV-Ray — не лучшее средство для моделирования движения, он все-таки только «рисователь». Обычно, движение моделируется с помощью какого-то из языков программирования (например, С), результаты сохраняются в виде команд POV-Ray, а уж тот рисует как двигалось тело. Но, как видим, если нужно, то простое моделирование можно выполнить и в самом POV-Ray.

Немного ссылок

Впервые опубликовано в KV.by. Здесь приводится в авторской редакции.

Читайте также

Комментарии

Дмитрий Храмов
Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.

Источник

Программы рендеринга POV-Ray, LuxRender и Blender в качестве теста процессоров и ПК: изучаем зависимость теста от количества ядер процессора, тактовой частоты процессора и частоты памяти

Эта статья является третьей в цикле, посвященном различным реальным приложениям, которые могут использоваться для тестирования процессоров, компьютеров, ноутбуков и рабочих станций и которые в дальнейшем будут положены в основу нового тестового пакета iXBT Application Benchmark 2017. Напомним, что в первой статье данного цикла мы рассматривали два специализированных приложения LAMMPS и NAMD, которые используются для решения задач молекулярной динамики. Во второй статье мы уделили внимание специализированным математическим пакетам FFTW и GNU Octave. В нынешней же мы рассмотрим программы, которые используются для рендеринга трехмерных сцен. Всего рассматривается три популярных рендера: POV-Ray 3.7, LuxRender 1.6 и Вlender 2.77a.

POV-Ray 3.7

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

Программа читает текстовые файлы, в которых хранится информация, описывающая объект и освещение сцены, и генерирует сцену из определенной точки расположения камеры (которая также описана в файле).

Имеются скомпилированные под Windows версии программы.

В программе POV-Ray 3.7 имеется встроенный бенчмарк (POV-Ray benchmark 2.01), который может запускаться как из меню главного окна программы (Render→Run Benchmark (All CPU’s)), так и из командной строки. При тестировании мы запускаем бенчмарк в режиме командной строки, поскольку это просто удобнее. Синтаксис команды следующий:

Вообще, скорость работы рендеров часто измеряется в PPS (Pixel Per Second), то есть в количестве отрендеренных пикселей за секунду. Но в нашем случае измеряется именно время рендеринга всей сцены.

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

LuxRender 1.6 x64 OpenCL

LuxRender относится к категории фотореалистичных или физически точных (без допущений) рендеров. Это бесплатная программа с удобным пользовательским интерфейсом. Сцены для LuxRender могут быть подготовлены в различных 3D-программах, таких как Blender, 3DS Max, Maya и пр.

Имеются версии LuxRender под Windows, Mac OS X и операционные системы на базе ядра Linux. При тестировании мы используем 64-битную Windows-версию программы с поддержкой технологии OpenCL (LuxRender 1.6 x64 OpenCL).

На сайте разработчика можно скачать сцену (luxtime.lxs), которую рекомендуется использовать для тестирования.

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Поскольку LuxRender является фотореалистичным рендером, процесс рендеринга в нем может длиться бесконечно долго. Точнее, он длится до тех пор, пока пользователь не остановит процесс при достижении удовлетворительного качества. Пользовательский интерфейс программы LuxRender позволяет задать условия, при достижении которых рендеринг будет остановлен. Это могут быть временны́е ограничения, когда задается время рендеринга, либо ограничения по качеству, которое задается в S/p (Samples per pixel). Хорошее качество достигается при значении 100 S/p, однако такое качество требует очень продолжительного времени рендеринга. Поэтому при тестировании мы ограничиваем качество на уровне 30 S/p, измеряя время рендеринга, которое требуется для достижения такого качества.

Вlender 2.77a

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

На сайте производителя есть версии этого программного пакета под Mac OS X, Linux и Windows. Для тестирования мы используем 64-битную Windows-версию Вlender 2.77a.

Кроме того, на сайте производителя есть примеры сцен, которые можно использовать для тестирования. Мы используем сцену BMW Benchmark (файл BMW27.blend.zip).

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Для тестирования мы используем следующую команду:

Тестовый стенд и методика тестирования

В ходе тестирования замерялось время выполнения тестовых задач.

Рассматривалась зависимость результатов тестирования от количества используемых ядер процессора, от частоты ядер процессора и от частоты памяти.

Зависимость результатов от количества ядер процессора

Количество используемых в ходе тестирования ядер процессора Intel Core i7-6950X регулировалось через настройки UEFI BIOS платы Asus Rampage V Edition 10. Напомним, что процессор Intel Core i7-6950X является 10-ядерным, но поддерживает технологию Hyper-Threading, поэтому операционной системой и приложениями он видится как 20-ядерный (имеет 20 логических ядер).

Мы не отключали технологию Hyper-Threading и меняли лишь количество физических ядер процессор от 1 до 10. В дальнейшем мы будем говорить о логических ядрах процессора, количество которых менялось от 2 до 20 с шагом 2.

Частота работы всех ядер процессора фиксировалась и составляла 4,0 ГГц.

Результаты тестирования следующие:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Для всех рендеров время выполнения тестовой задачи зависит от количества процессоров примерно одинаково. При удвоении числа ядер процессора время выполнения теста уменьшается примерно в 2 раза, скорость выполнения тестовых задач меняется почти линейно в зависимости от числа ядер процессора. Это особенно хорошо видно по графику зависимости нормированной скорости выполнения тестовых задач от числа ядер процессора (нормируется относительно времени выполнения задач на двух логических ядрах процессора).

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Для рендеров POV-Ray и LuxRender скорость выполнения тестовых задач меняется линейно в зависимости от числа ядер процессора фактически во всем диапазоне: при увеличении числа ядер от 2 до 20 скорость возрастает почти в 10 раз. Для рендера Blender линейная зависимость скорости выполнения тестовой задачи от числа ядер процессора наблюдается лишь в диапазоне от 2 до 12 ядер. При большем количестве ядер (от 12 до 20) зависимость тоже почти линейная, но коэффициент линейной зависимости уже меньше. В результате при увеличении числа ядер от 2 до 12 скорость возрастает почти в 5,5 раза, а при увеличении числа ядер от 2 до 20 скорость возрастает в 7,7 раза.

Зависимость результатов от частоты процессора

Частота ядер процессора Intel Core i7-6950X менялась в настройках UEFI BIOS платы Asus Rampage V Edition 10 путем изменения коэффициента умножения. Частота работы всех ядер фиксировалась (то есть режим Turbo Boost отключался). Использовались все ядра процессора (10 физических/20 логических). Частота менялась от 3,0 ГГц до 4,2 ГГц с шагом 200 МГц.

Результаты тестирования следующие:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Как видно по результатам тестирования, во всех трех рендерах время выполнения тестовых задач зависит от частоты ядер процессора практически одинаково. При увеличении частоты с 3 до 4,2 ГГц (увеличение на 40%) время выполнения тестовых задач уменьшается примерно на 24%.

Зависимость результатов от частоты памяти

Теперь рассмотрим зависимость скорости выполнения тестовых задач от частоты работы памяти. Память DDR4 работала в четырехканальном режиме (по одному модулю на канал), а частота памяти менялась в настройках UEFI BIOS в диапазоне от 1600 МГц до 2800 МГц c шагом в 200 МГц. Тайминги памяти фиксировались и не менялись при изменении частоты. Все ядра процессора работали на частоте 4,0 ГГц.

Результаты тестирования следующие:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Как видим, скорость выполнения тестовых задач во всех рендерах никак не зависит от частоты работы памяти. По крайней мере, в четырехканальном режиме работы пропускной способности памяти DDR4 вполне достаточно даже на частоте 1600 МГц, и дальнейшее увеличение частоты памяти не позволяет ускорить выполнение тестовых задач.

Это типичный для большинства приложений результат. Приложения, скорость работы которых зависит от частоты памяти — это, скорее, исключение из правил.

Заключение

Итак, в этой статье были рассмотрены три приложения для рендеринга: POV-Ray 3.7, LuxRender 1.6 и Вlender 2.77a. На примере 10-ядерного процессора Intel Core i7-6950X было показано, что, во-первых, тестовые задачи в этих пакетах отлично распараллеливаются на все ядра процессора и загружают их на 100%. Именно это обстоятельство позволяет рассматривать данные приложения как отличный вариант для тестирования многоядерных процессоров. Зависимость скорости выполнения тестовых задач от числа ядер процессора является почти линейной для всех рендеров.

Во-вторых, было показано, что время выполнения тестовых задач во всех трех рендерах линейным образом зависит от частоты ядер процессора. При увеличении частоты процессора на 40% время выполнения тестовых задач уменьшается примерно на 24%.

В-третьих, было показано, что время выполнения тестовых задач во всех трех рендерах никак не зависит от частоты памяти DDR4 (в четырехканальном режиме и в диапазоне от 1600 до 2400 МГц).

В следующей статье данного цикла мы рассмотрим два видеоконвертора: HandBrake 0.10.5 и MediaCoder 0.8.45.5852.

Источник

Научные иллюстрации в POV-Ray

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

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Обычная кухня. Нет, это не фотография, а изображение, созданное в программе POV-Ray методом трассировки лучей. Представьте, что экран вашего компьютера — это окно, за которым что-то происходит. Это «что-то» называется сценой. Цвет каждого пикселя на экране — это цвет луча, который выходит из глаза, проходит через этот пиксель и сталкивается со сценой. Луч может просто вернуться назад, а может отразиться от зеркальной поверхности или преломиться, проходя, например, из воздуха в стекло. Чтобы узнать цвет, в который окрасится пиксель, нужно запустить через него луч и проследить путь этого луча по сцене. Отсюда произошло название алгоритма: ray-tracing — трассировка лучей.

Точнее, это обратная трассировка лучей. Ведь, как мы знаем, луч не выходит из глаза, а наоборот, попадает в него, проделав свой путь от источника света. Однако такая (прямая) трассировка требует огромных вычислительных ресурсов, ведь большая часть лучей пропадает даром, не попав в наше поле зрения. Подробнее физические основы метода обратной трассировки лучей изложены в книге Е. В. Шикина и А. В. Борескова «Компьютерная графика. Динамика, реалистические изображения» (М.: Диалог-МИФИ, 1995).

POV-Ray или, полностью — The Persistence of Vision Ray-Tracer — использует обратную трассировку лучей для создания трехмерных фотореалистических изображений. Сцена в POV-Ray описывается на SDL (Scene Description Language) — интерпретируемом языке программирования с С-подобным синтаксисом. При помощью SDL пользователь задает положение камеры, источников света, размещение объектов и их свойства, атмосферные эффекты и т. п.

Применение POV-Ray для научной иллюстрации — лишь малая часть среди возможных направлений использования этой программы. И даже с этой малой частью мы в статье успеем лишь познакомимся. Что ж, приступим…

Система координат, принятая в POV-Ray по умолчанию, выглядит так:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Ось Z направлена внутрь монитора.

Чтобы получить изображение, нам понадобится объект для съемки, освещение, и камера. Вот с нее и начнем.

Камера. «Фотографию» сцены невозможно создать без камеры (camera). Точка, в которой расположена камера, задается параметром location, а параметр look_at определяет точку, куда она направлена. В качестве примера, поместим камеру в точку и направим ее в начало отсчета. Записывается это так:

Источник света. Разместим позади и справа от камеры источник света light_source:

По умолчанию, источник света невидим — это просто светящаяся точка, но его можно сделать видимым, а также привязать к любому объекту, как встроенному, так и созданному пользователем.

Простые объекты. POV-Ray располагает обширной библиотекой готовых объектов. Вот, например, как задается сфера:

Первый вектор определяет положение центра сферы, а следующее за ним число — ее радиус. Наша сфера расположена в начале координат и ее радиус равен 2.

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Вставка готовых объектов POV-Ray при помощи меню Insert (POV-Ray для Windows).

По умолчанию, сфера окрашивается в черный цвет. Пигмент (краситель), задающий цвет объекта, определяется в блоке pigment:

Цвет пигмента задается точно также как цвет источника света. В нашем случае сфера будет окрашена в белый цвет.

Собирая все фрагменты вместе, получим:

Пора «попросить» POV-Ray оттрассировать это. Сохраним сцену в файле test.pov и запустим POV-Ray командой:

povray +itest +w320 +h240

В POV-Ray для Windows трассировку можно выполнить с помощью меню:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Запуск трассировки сцены с помощью кнопки Run.

Вот что у нас получилось:

Что такое pov ray. Смотреть фото Что такое pov ray. Смотреть картинку Что такое pov ray. Картинка про Что такое pov ray. Фото Что такое pov ray

Для начала неплохо. Напоминает планету в космосе. Можно усилить это сходство, нанеся на поверхность сферы рельеф и текстуру. Как это сделать, описано здесь, а мы пойдем дальше.

Конструктивная геометрия. Новые тела можно получать из уже имеющихся при помощи операций объединения, слияния, разности, пересечения и т. п. Такой способ создания новых объектов называется конструктивной блочной геометрией (Constructive solid geometry, CSG).

Создадим изображение молекулы воды, состоящее из большой сферы — атома кислорода и двух малых сфер — атомов водорода:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Оригинальный автор (ы)Дэвид Кирк Бак, Аарон А. Коллинз, Александр Энцманн
Разработчики)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] ) [±]
Репозиторий