Pov ray for windows что это за программа

Немногие реальные объекты могут быть собраны из примитивов. В то же время некоторые операции над примитивами могут существенно изменить их внешний вид. Скажем

Содержание

  1. Работаем с POV-Ray
  2. 1.Интерфейс программы
  3. 2.Модификаторы
  4. 3. Операции
  5. Работаем с POV-Ray
  6. Опыт использования POV-Ray
  7. Содержание мастер класса.
  8. 1. Введение
  9. 2. Краткая характеристика программ для 3D моделирования
  10. 2.2. Обзор визуальных моделлеров для POV-Ray
  11. 3. Практическое моделирование на основе заготовок
  12. 4.Практическая работа.
  13. Программы рендеринга POV-Ray, LuxRender и Blender в качестве теста процессоров и ПК: изучаем зависимость теста от количества ядер процессора, тактовой частоты процессора и частоты памяти
  14. POV-Ray 3.7
  15. LuxRender 1.6 x64 OpenCL
  16. Вlender 2.77a
  17. Тестовый стенд и методика тестирования
  18. Зависимость результатов от количества ядер процессора
  19. Зависимость результатов от частоты процессора
  20. Зависимость результатов от частоты памяти
  21. Заключение
  22. POV-Ray
  23. J. Max Wilson
  24. POV-Ray Extension for Visual Studio Code
  25. What’s New
  26. Version 0.0.11
  27. Version 0.0.10
  28. Features
  29. Requirements
  30. Running POV-Ray using Docker
  31. Installing POV-Ray
  32. Ubuntu Linux
  33. Windows 10 with WSL
  34. Windows
  35. Known Issues
  36. Links
  37. Attributions
  38. Pov ray for windows что это за программа

Работаем с POV-Ray

1.Интерфейс программы

2.Модификаторы

pv2

3. Операции

Немногие реальные объекты могут быть собраны из примитивов. В то же время некоторые операции над примитивами могут существенно изменить их внешний вид. Скажем можно взять сферу и внедрить ее в другой объект. В результате объект и сфера приобретают некоторую общую область. Можно изъять общую область из объекта и тем изменить его внешний вид. Это соответствует операции difference. Напротив. можно извлечь только общую область объекта и сферы и также получить новый объект. Такая операция называетсяintersection. Группу объектов можно объединить при помоши операции union. Операции такого рода называются булевыми.

. В качестве примера создадим предмет под названием игральный кубик. В качестве основы возьмем куб, а затем с помощью сфер выдавим на его поверхности необходимое число углублений.

cubic

В операции difference самый первый объект выполняет роль заготовки. Все остальные объекты ‘выедают’ часть его объема.
Сферы создают лунки на поверхности кубика. Важно отметить, что цвет сфер определяет цвет лунок.

С помощью операции intersection создадим объект, который в оптике называется линзой. Как известно, линза состоит из двух сферических поверхностей. Поэтому возьмем две сферы и расположим их так, чтобы они частично пересекались.

Теперь остается извлечь их общую объемную область.
Создадим сцену

Источник

Работаем с POV-Ray

Опыт использования POV-Ray

Содержание мастер класса.

1. Введение

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

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

2. Краткая характеристика программ для 3D моделирования

Итак в POV-Ray можно импортировать внешние модели и там окончательно формировать сцену. Т.е. Позиционировать, текстурировать и рендерить.

2.2. Обзор визуальных моделлеров для POV-Ray

Теперь кратко о каждой из программ.

Blender
Универсальная многофункциональная программа. Естественно, что знакомство с интерфейсом требует немало времени. Имеет собственный рендер. Но может использоваться для создания заготовок для POV-Ray. Имеет экспорт в формате OBJ. Где-то в сети бродит программа для непосредственно экспорта в формат POV-Ray.

Art Of Illusion
Программа можно считать реально ориентированной на POV-Ray. Имеет собственную систему текстурирования, и позволяет создавать сетки. Импортирует модели в формате OBJ и имеет экспорт в формате POV-Ray.

Wings3D
Программа для полигонального моделирования. Модели строятся из примитивов, которые можно легко деформировать с помощью визуального моделлера. Имеет импорт из набора популярных 3D форматов и экспорт в формате POV-Ray.

Sculptris
Программа для скульптурного моделирования. Это относительно новый способ работы с сеткой. Причем программа очень легко осваивается и при наличии художественного мышления позволяет строить достаточно сложные модели. Имеет импорт-экспорт в формате OBJ.

TrueSpace
Программа с длинной историей и мощным интерфейсом. Была платной, куплена Microsoft с какими-то надеждами. Потом интерес пропал и теперь доступна бесплатная версия. Программа не поддерживается, но снабжена хорошим Help. Имеет импорт-экспорт в формате OBJ и других популярных форматах.

3. Практическое моделирование на основе заготовок

Но можно масштабировать, перемещать и вращать объект как единое целое.В POV-Ray это может выглядеть как

object

4.Практическая работа.

Слушатель мастер класса будет использовать заготовку сцены. Используя операторы scale,rotate,translate он построит собственный вариант сцены. Сцена может выглядеть следующим образом

Источник

Программы рендеринга 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 small

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), которую рекомендуется использовать для тестирования.

luxrender small

Поскольку 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).

blend small

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

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

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

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

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

Количество используемых в ходе тестирования ядер процессора 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 ГГц.

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

cores

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

norm cores

Для рендеров 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 МГц.

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

freq

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

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

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

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

memory

Как видим, скорость выполнения тестовых задач во всех рендерах никак не зависит от частоты работы памяти. По крайней мере, в четырехканальном режиме работы пропускной способности памяти 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

J. Max Wilson

POV-Ray Extension for Visual Studio Code

vscode povray

The Persistence of Vision Raytracer is a high-quality, free software tool for creating three-dimensional graphics by using a Scene Description Language.

This extension allows you to use Visual Studio Code to edit POV-Ray Scene Description files and render them using POV-Ray in the integrated terminal.

What’s New

Version 0.0.11

Version 0.0.10

Features

vscode povray demo

Includes Syntax Highlighting and Snippets for common POV-Ray scene elements

vscode povray snippets demo

Control output image format and output path through User and Workspace settings

vscode povray output image format

Set default image dimensions for rendered images

vscode povray settings render dimensions

Option to open the rendered image when rendering completes.

vscode povray settings open after render

Enjoy built in VS Code features like bracket matching, code folding, and comment toggling

vscode features

Requirements

This extension does not install POV-Ray. You can either install it yourself or run it using Docker.

Running POV-Ray using Docker

If you have Docker installed, you can easily run POV-Ray on any platform by selecting the Docker > Enable Docker option in the VS Code POV-Ray settings.

vscode povray settings docker

By default, the jmaxwilson/povray:latest docker image will be used. Additional povray docker images are available and you can set the image you want to use in the settings.

Note: if you are using WSL Bash as your integrated terminal on Windows, you will need some addtional setup to make Docker for Windows work with WSL Bash.

Installing POV-Ray

If you are not using Docker, you will need to install POV-Ray for your specific OS and you will need to make sure that it can be run via the commandline from your terminal.

Ubuntu Linux

Windows 10 with WSL

For the best experience on Windows, install the Windows Subsystem for Linux (WSL) and Ubuntu for Windows. Then configure VS Code to use C:\Windows\System32\bash.exe as the integrated shell. Once you have WSL and Ubuntu working, you can install the povray package for Ubuntu exactly the same as above.

Windows

Download and run the POV-Ray installer for Windows:

Make sure the full path to pvengine.exe is added to your PATH Environment Variable so that it can be run from Powershell or the Windows command line.

You may also have to turn off Script I/O Restrictions in the POV-Ray Options.

Download the unofficial Command line POV-Ray 3.7.0 final for Mac:

Using the terminal, unzip the downloaded file and move the extracted files into

Create a povray symlink in /usr/local/bin to run Povray37UnofficialMacCmd :

Modify the POV-Ray Extension Settings in VS Code to set the Library Path to

vscode povray settings library path

Known Issues

Links

Attributions

POV-Ray Scene Description Language syntax highlighting adapted from the atom-language-povray project by 羽洲.

Источник

Pov ray for windows что это за программа

Starting with version 3.7, POV-Ray is released under the AGPL3 (or later) license and thus is Free Software according to the FSF definition.

    «Free software» means software that respects users’ freedom and community. Roughly, the users have the freedom to run, copy, distribute, study, change and improve the software. With these freedoms, the users (both individually and collectively) control the program and what it does for them.

fill fill

POV-Ray 3.7.0 (released 6 November 2013) is the current official version for all platforms. There are significant internal changes in this version due to the introduction of SMP support. A comprehensive change list is available for those interested in the full details, as well as the changelog. A summarized list of changes is available via our documentation and is important reading for anyone familiar with prior versions of POV-Ray.

fill fill
fill
fill fill
fill

POV-Ray for Windows requires Windows XP or later, and has been tested on versions up to and including Windows 8. We recommend having at least 100mb or so of free disk space (for temporary file storage during renders) and at least 1GB of available memory, though less is OK if you are not doing complicated scenes. Since the POV-Ray for Windows distribution package includes both the 32 and 64-bit binaries, the setup file determines which one to provide as the main program link (all versions are installed). Full documentation and sample scene files are also included.

Sysadmins/Lab Techs: If you wish to use POVWIN in a multi-user environment and/or do a non-standard install, please see the non-standard installations section in our documentation.

fill fill
fill
fill fill
fill

Reviewers: if you will be using POV-Ray to benchmark CPU’s, please read our benchmarking with POV-Ray page for information that you need to know.

fill fill
fill
fill fill
fill

Users of platforms that do not have official binaries will probably need to build their own version from the source (though it is expected that many Unix-like systems that have package managers or a ports system will provide a single-line means of installing a binary or fetching/building from source). Developers for all platforms who want to take a look at the source code, make a modification or port it to a new platform should also choose to download the sources. The source code, documentation and example scene files for all platforms can be obtained from our github repository. Where possible we will attempt to assist with build problems via our support forums.

fill fill
fill
fill fill
fill

We have preserved the download page for version 3.6 if you wish to access that version. Please refer to our old version tree. for older versions of POV-Ray or for versions of platforms for which official support has been discontinued. All official releases of POV-Ray since v1.0 (released in 1992) are available there.

Источник

Adblock
detector

fill fill
fill
fill
  • Описание
  • Что нового

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

Что нового в этой версии?

3.7.0
(02.12.2014)

  • удалены устаревшие файлы;
  • удалены устаревшие заголовки файлов для borland, mingw и watcom компиляторов;
  • исправлена опечатка в переименовании;
  • исправлены ошибки в коде программы;
  • доработаны некоторые программные инструменты и т.д.

Смотреть всю историю изменений

Скриншоты:

Системы:

Windows

Размер:

30,5 Мб

Автор:

POV-Ray Pty Ltd.

(
Сайт)

Языки:

Английский

Лицензия:

Freeware

(Бесплатная)

Обновление: 18.01.2017
Версия: 3.7.0 + 3.7.1 Beta 2
Имя файла:

povwin-3.7-agpl3-setup.exe

Подписка на обновления

POV-Ray



официальный сайт
06 февраль Бесплатное ПО — лицензия для личного и коммерческого использования. подробнее…

POV-Ray главный экран

Описание

Специализированная программа для создания 3D сцен. Не имеет графического редактора, все сцены задаются на встроенном языке. Программа поддерживает огромное количество материалов, текстурированние, различные модели, отражение.

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

Примеры рендеров

Рендер деревьев в POV-Tree и пост-обработка в Photoshop CS4.

POV-Ray пример рендеров деревьев

POV-Ray пример рендера

POV-Ray рендер бонсай

04 февраль 2016

↑ Вверх ↑

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

POV-Rayv3.7binpvengine64.exe /BENCHMARK

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

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), которую рекомендуется использовать для тестирования.

Поскольку 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).

Запуск процесса рендеринга возможен как из интерфейсного окна самой программы (клавиша F12), так и из командной строки. Для тестирования режим запуска из командной строки более удобен. Команда запуска процесса рендеринга имеет огромное количество параметров, ознакомиться с которыми можно, набрав команду blender.exe -h.

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

blender.exe -b <путь_к_файлу_BMW27.blend> -f 1

В данном случае подразумевается, что процесс рендеринга происходит в фоновом режиме (параметр —b) и рендерится только один кадр (параметр -f 1).

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

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

  • Процессор: Intel Core i7-6950X (Broadwell-E);
  • Системная плата: Asus Rampage V Edition 10 (Intel X99);
  • Память: 4×4 ГБ DDR4-2400 (Kingston HyperX Predator HX424C12PBK4/16);
  • Видеокарта: Nvidia Quadro 600;
  • Накопитель: SSD Seagate ST480FN0021 (480 ГБ).

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

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

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

Количество используемых в ходе тестирования ядер процессора 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 ГГц.

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

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

Для рендеров 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 МГц.

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

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

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

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

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

Как видим, скорость выполнения тестовых задач во всех рендерах никак не зависит от частоты работы памяти. По крайней мере, в четырехканальном режиме работы пропускной способности памяти 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.

From Wikipedia, the free encyclopedia

POV-Ray

Povray logo sphere.png
Original author(s) David Kirk Buck, Aaron A. Collins, Alexander Enzmann
Developer(s) The POV-Team
Initial release July 29, 1991; 31 years ago[1][2]
Stable release

3.7.0.8[3] Edit this on Wikidata
/ 27 May 2018; 4 years ago

Preview release v3.8.0-beta.2 (August 9, 2021; 17 months ago[4]) [±]
Repository
  • github.com/POV-Ray/povray Edit this at Wikidata
Written in C++
Operating system Cross-platform
Type Ray tracer
License AGPL-3.0-or-later[5]
Website www.povray.org

The Persistence of Vision Ray Tracer, most commonly acronymed as POV-Ray, is a cross-platform ray-tracing program that generates images from a text-based scene description. It was originally based on DKBTrace, written by David Kirk Buck and Aaron A. Collins for Amiga computers. There are also influences from the earlier Polyray[6] raytracer because of contributions from its author, Alexander Enzmann. POV-Ray is free and open-source software, with the source code available under the AGPL-3.0-or-later license.

History[edit]

A vase on a pedestal rendered with DKBTrace 2.12

Sometime in the 1980s, David Kirk Buck downloaded the source code for a Unix ray tracer to his Amiga. He experimented with it for a while and eventually decided to write his own ray tracer named DKBTrace after his initials. He posted it to the «You Can Call Me Ray» bulletin board system (BBS) in Chicago, thinking others might be interested in it. In 1987, Aaron A. Collins downloaded DKBTrace and began working on an x86 port of it. He and David Buck collaborated to add several more features.

When the program proved to be more popular than anticipated, they could not keep up with demand for more features. Thus, in July 1991, David turned over the project to a team of programmers working in the «GraphDev» forum on CompuServe. At the same time, David felt that it was inappropriate to use his initials on a program he no longer maintained. The name «STAR-Light» (Software Taskforce on Animation and Rendering) was initially used, but eventually the name became «PV-Ray», and then ultimately «POV-Ray» (Persistence of Vision Ray Tracer),[2] a name inspired by Dalí’s painting, The Persistence of Memory.[7][8]

Features of the application, and a summary of its history, are discussed in a February 2008 interview with David Kirk Buck and Chris Cason on episode 24 of FLOSS Weekly.[8]

Features[edit]

POV-Ray has matured substantially since it was created. Recent versions of the software include the following features:

  • a Turing-complete scene description language (SDL) that supports macros and loops[9]
  • a library of ready-made scenes, textures, and objects
  • support for a number of geometric primitives and constructive solid geometry
  • several kinds of light sources
  • atmospheric effects such as fog and media (smoke, clouds)
  • reflections, refractions, and light caustics using photon mapping
  • surface patterns such as wrinkles, bumps, and ripples, for use in procedural textures and bump mapping
  • radiosity
  • support for textures and rendered output in many image formats, including TGA, PNG, and JPEG, among others
  • extensive user documentation

One of POV-Ray’s main attractions is its large collection of third-party-made assets and tools. A large number of tools, textures, models, scenes, and tutorials can be found on the web. It is also a useful reference for those wanting to learn how ray tracing and related 3D geometry and computer graphics algorithms work.

Current version[edit]

The current official version of POV-Ray is 3.7. This version introduces:

  • support for symmetric multiprocessing (SMP), to allow the renderer to take advantage of multiple processors
  • support for high-dynamic-range imaging (HDRI), including the OpenEXR and radiance file formats
  • improved bounding using BSP trees

Some of the main introduced features of the previous release (3.6) are:

  • extending UV mapping to more primitives
  • adding 16- and 32-bit integer data to a density file
  • improving 64-bit compatibility

In July 2006, Intel Corporation started using the beta version of 3.7 to demonstrate their new dual-core Conroe processor due to the efficiency of the SMP (symmetric multiprocessing) implementation.

Primitives[edit]

POV-Ray, in addition to standard 3D geometric shapes like tori, spheres, and heightfields, supports mathematically defined primitives such as the isosurface (a finite approximation of an arbitrary function), the polynomial primitive (an infinite object defined by a 15th order or lower polynomial), the julia fractal (a 3-dimensional slice of a 4-dimensional fractal), the superquadratic ellipsoid (an intermediate between a sphere and a cube), and the parametric primitive (using equations that represent its surface, rather than its interior).

POV-Ray internally represents objects using their mathematical definitions; all POV-Ray primitive objects can be described by mathematical functions. This is different from many computer programs that include 3D models, which typically use triangle meshes to compose all the objects in a scene.

This fact provides POV-Ray with several advantages and disadvantages over other rendering and modeling systems; POV-Ray primitives are more accurate than their polygonal counterparts: objects that can be described in terms of spheres, planar surfaces, cylinders, tori, and the like, are perfectly smooth and mathematically accurate in POV-Ray renderings, whereas polygonal artifacts may be visible in mesh-based modeling software. POV-Ray primitives are also simpler to define than most of their polygonal counterparts, e.g., in POV-Ray, a sphere is described simply by its center and radius; in a mesh-based environment, a sphere must be described by a multitude of small connected polygons (usually quads or triangles).

On the other hand, script-based primitive modeling is not always a practical method to create certain objects, such as realistic characters or complex man-made artifacts like cars. Those objects can and should be created first in mesh-based modeling applications such as Wings 3D and Blender, and then they can be converted to POV-Ray’s own mesh format.

Examples of the scene description language[edit]

The following is an example of the scene description language used by POV-Ray to describe a scene to render. It demonstrates the use of a background colour, camera, lights, a simple box shape having a surface normal and finish, and the transforming effects of rotation.

POV-Ray image output based on the script

 #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 <0.25, 0.25, 0.25> }

// 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  <0.0, 0.5, -4.0>
                direction 1.5*z
                right     x*image_width/image_height
                look_at   <0.0, 0.0, 0.0> }

// Places a light source
// color: Sets the color of the light source (white)
// translate: Moves the light source to a desired location
 light_source { <0, 0, 0>
                color rgb <1, 1, 1>
                translate <-5, 5, -5> }
// 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 { <0, 0, 0>
                color rgb <0.25, 0.25, 0.25>
                translate <6, -6, -6> }

// 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          { <-0.5, -0.5, -0.5>,
                <0.5, 0.5, 0.5>
                texture { pigment { color Red }
                          finish  { specular 0.6 }
                          normal  { agate 0.25 scale 1/2 }
                        }
                rotate <45,46,47> }

The following script fragment shows the use of variable declaration, assignment, comparison and the while loop construct:

POV-Ray image output based on the script

 #declare the_angle = 0;

 #while (the_angle < 360)
 	box {   <-0.5, -0.5, -0.5>
 		<0.5, 0.5, 0.5>
                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

Modeling[edit]

The POV-Ray program itself does not include a modeling feature; it is essentially a pure renderer with a sophisticated model description language. To accompany this feature set, third parties have developed a large variety of modeling software, some specialized for POV-Ray, others supporting import and export of its data structures, including the free and open-source 3D creation suite Blender.

A number of additional POV-Ray compatible modelers are linked from Povray.org: Modelling Programs.

In 2007, POV-Ray acquired the rights to Moray,[10] an interactive 3-D modeling program long used with POV-Ray. However, as of December 2016, Moray development is stalled.[11]

Software[edit]

Development and maintenance[edit]

Official modifications to the POV-Ray source tree are done and/or approved by the POV-Team. Most patch submission and/or bug reporting is done in the POV-Ray newsgroups on the news.povray.org news server (with a Web interface also available). Since POV-Ray’s source is available there are unofficial forks and patched versions of POV-Ray available from third parties; however, these are not officially supported by the POV-Team.

Official POV-Ray versions currently do not support shader plug-ins.[12] Some features, like radiosity and splines are still in development and may be subject to syntactical change.

Platform support[edit]

POV-Ray 3.6 is distributed in compiled format for Mac, Windows and Linux.
Support for Intel Macs is not available in the Mac version, but since Mac OS X is a version of Unix the Linux version can be compiled on it.

The 3.7 versions with SMP support are officially supported for Windows and Linux. Unofficial Mac versions for v3.7 can be found.[13]

POV-Ray can be ported to any platform which has a compatible C++ compiler.

Licensing[edit]

Originally, POV-Ray was distributed under its own POV-Ray License. Namely, the POV-Ray 3.6 Distribution License[14] and the POV-Ray 3.6 Source License,[15] which permitted free distribution of the program source code and binaries, but restricts commercial distribution and the creation of derivative works other than fully functional versions of POV-Ray.

Although the source code of older versions is available for modification, due to the above 3.6 and prior license restrictions, it was not open source or free software according to the OSI or the FSF definition of the term. This was a problem as source code exchange with the greater FOSS ecosystem was impossible due to License incompatibility with copyleft licenses.

One of the reasons that POV-Ray was not originally licensed under the free software GNU General Public License (GPL), or other open source licenses, is that POV-Ray was developed before the GPL-style licenses became widely used; the developers wrote their own license for the release of POV-Ray, and contributors to the software worked under the assumption their contributions would be licensed under the POV-Ray 3.6 Licenses.

In 2013, with version 3.7, POV-Ray was relicensed under the Affero General Public License version 3 (or later).[16] Thus POV-Ray is since then free software according to the FSF definition and also open source software according to the Open Source Definition.

See also[edit]

Wikimedia Commons has media related to POV-Ray.

  • Blender – a free and open-source software program for 3D modeling, animation, and rendering
  • Kerkythea – a freeware ray-tracing program with enhanced Sketchup compatibility
  • Sunflow – an open-source rendering system for photo-realistic image synthesis, written in Java
  • YafaRay – a popular free open-source ray-tracing engine

References[edit]

  1. ^ «POV-Ray: Documentation: 1.1.5.3 A Historic ‘Version History’«. povray.org. Retrieved 2018-12-19.
  2. ^ a b «POV-Ray: News». povray.org. Retrieved 2018-12-19.
  3. ^ «Release 3.7.0.8». 27 May 2018. Retrieved 27 May 2018.
  4. ^ «POV-Ray Beta Release v3.8.0-beta.2». POV-Ray. 2021-08-09. Retrieved 2021-08-29.
  5. ^ «POV-Ray License». povray.org. Retrieved 2014-05-05.
  6. ^ «Polyray v1.7». Alexander R. Enzmann. Retrieved 2016-07-05.
  7. ^ «Documentation: 1.1.5 The Early History of». POV-Ray. Retrieved 2014-05-05.
  8. ^ a b «The TWiT Netcast Network with Leo Laporte». Twit.tv. 2008-02-07. Retrieved 2014-05-05.
  9. ^ Paul Bourke: Supershape in 3D are examples of POV-Ray images made with very short code
  10. ^ «News: Moray Announcement». POV-Ray. 2007-02-01. Retrieved 2014-05-05.
  11. ^ «POV-Ray/povray: The persistence of Vision Raytracer». POV-Ray. 2013-09-06. Retrieved 2022-08-05.
  12. ^ for such an implementation, see e.g., http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 Archived 2007-02-07 at the Wayback Machine
  13. ^ povrayunofficial_mac on megapov.inetart.net
  14. ^ «POV-Ray 3.6 Distribution License». povray.org. Retrieved 2016-12-12.
  15. ^ «POV-Ray 3.6 Source License». povray.org. Retrieved 2016-12-12.
  16. ^ Cason, Chris (8 November 2013). «Download POV-Ray 3.7.0». Retrieved 11 November 2013. Starting with version 3.7, POV-Ray is released under the AGPL3 (or later) license and thus is Free Software according to the FSF definition. […] Full source code is available, allowing users to build their own versions and for developers to incorporate portions or all of the POV-Ray source into their own software provided it is distributed under a compatible license (for example, the AGPL3 or – at their option – any later version).

External links[edit]

Wikimedia Commons has media related to POV-Ray.

  • Official website
  • POV-Ray at Curlie

From Wikipedia, the free encyclopedia

POV-Ray

Povray logo sphere.png
Original author(s) David Kirk Buck, Aaron A. Collins, Alexander Enzmann
Developer(s) The POV-Team
Initial release July 29, 1991; 31 years ago[1][2]
Stable release

3.7.0.8[3] Edit this on Wikidata
/ 27 May 2018; 4 years ago

Preview release v3.8.0-beta.2 (August 9, 2021; 17 months ago[4]) [±]
Repository
  • github.com/POV-Ray/povray Edit this at Wikidata
Written in C++
Operating system Cross-platform
Type Ray tracer
License AGPL-3.0-or-later[5]
Website www.povray.org

The Persistence of Vision Ray Tracer, most commonly acronymed as POV-Ray, is a cross-platform ray-tracing program that generates images from a text-based scene description. It was originally based on DKBTrace, written by David Kirk Buck and Aaron A. Collins for Amiga computers. There are also influences from the earlier Polyray[6] raytracer because of contributions from its author, Alexander Enzmann. POV-Ray is free and open-source software, with the source code available under the AGPL-3.0-or-later license.

History[edit]

A vase on a pedestal rendered with DKBTrace 2.12

Sometime in the 1980s, David Kirk Buck downloaded the source code for a Unix ray tracer to his Amiga. He experimented with it for a while and eventually decided to write his own ray tracer named DKBTrace after his initials. He posted it to the «You Can Call Me Ray» bulletin board system (BBS) in Chicago, thinking others might be interested in it. In 1987, Aaron A. Collins downloaded DKBTrace and began working on an x86 port of it. He and David Buck collaborated to add several more features.

When the program proved to be more popular than anticipated, they could not keep up with demand for more features. Thus, in July 1991, David turned over the project to a team of programmers working in the «GraphDev» forum on CompuServe. At the same time, David felt that it was inappropriate to use his initials on a program he no longer maintained. The name «STAR-Light» (Software Taskforce on Animation and Rendering) was initially used, but eventually the name became «PV-Ray», and then ultimately «POV-Ray» (Persistence of Vision Ray Tracer),[2] a name inspired by Dalí’s painting, The Persistence of Memory.[7][8]

Features of the application, and a summary of its history, are discussed in a February 2008 interview with David Kirk Buck and Chris Cason on episode 24 of FLOSS Weekly.[8]

Features[edit]

POV-Ray has matured substantially since it was created. Recent versions of the software include the following features:

  • a Turing-complete scene description language (SDL) that supports macros and loops[9]
  • a library of ready-made scenes, textures, and objects
  • support for a number of geometric primitives and constructive solid geometry
  • several kinds of light sources
  • atmospheric effects such as fog and media (smoke, clouds)
  • reflections, refractions, and light caustics using photon mapping
  • surface patterns such as wrinkles, bumps, and ripples, for use in procedural textures and bump mapping
  • radiosity
  • support for textures and rendered output in many image formats, including TGA, PNG, and JPEG, among others
  • extensive user documentation

One of POV-Ray’s main attractions is its large collection of third-party-made assets and tools. A large number of tools, textures, models, scenes, and tutorials can be found on the web. It is also a useful reference for those wanting to learn how ray tracing and related 3D geometry and computer graphics algorithms work.

Current version[edit]

The current official version of POV-Ray is 3.7. This version introduces:

  • support for symmetric multiprocessing (SMP), to allow the renderer to take advantage of multiple processors
  • support for high-dynamic-range imaging (HDRI), including the OpenEXR and radiance file formats
  • improved bounding using BSP trees

Some of the main introduced features of the previous release (3.6) are:

  • extending UV mapping to more primitives
  • adding 16- and 32-bit integer data to a density file
  • improving 64-bit compatibility

In July 2006, Intel Corporation started using the beta version of 3.7 to demonstrate their new dual-core Conroe processor due to the efficiency of the SMP (symmetric multiprocessing) implementation.

Primitives[edit]

POV-Ray, in addition to standard 3D geometric shapes like tori, spheres, and heightfields, supports mathematically defined primitives such as the isosurface (a finite approximation of an arbitrary function), the polynomial primitive (an infinite object defined by a 15th order or lower polynomial), the julia fractal (a 3-dimensional slice of a 4-dimensional fractal), the superquadratic ellipsoid (an intermediate between a sphere and a cube), and the parametric primitive (using equations that represent its surface, rather than its interior).

POV-Ray internally represents objects using their mathematical definitions; all POV-Ray primitive objects can be described by mathematical functions. This is different from many computer programs that include 3D models, which typically use triangle meshes to compose all the objects in a scene.

This fact provides POV-Ray with several advantages and disadvantages over other rendering and modeling systems; POV-Ray primitives are more accurate than their polygonal counterparts: objects that can be described in terms of spheres, planar surfaces, cylinders, tori, and the like, are perfectly smooth and mathematically accurate in POV-Ray renderings, whereas polygonal artifacts may be visible in mesh-based modeling software. POV-Ray primitives are also simpler to define than most of their polygonal counterparts, e.g., in POV-Ray, a sphere is described simply by its center and radius; in a mesh-based environment, a sphere must be described by a multitude of small connected polygons (usually quads or triangles).

On the other hand, script-based primitive modeling is not always a practical method to create certain objects, such as realistic characters or complex man-made artifacts like cars. Those objects can and should be created first in mesh-based modeling applications such as Wings 3D and Blender, and then they can be converted to POV-Ray’s own mesh format.

Examples of the scene description language[edit]

The following is an example of the scene description language used by POV-Ray to describe a scene to render. It demonstrates the use of a background colour, camera, lights, a simple box shape having a surface normal and finish, and the transforming effects of rotation.

POV-Ray image output based on the script

 #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 <0.25, 0.25, 0.25> }

// 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  <0.0, 0.5, -4.0>
                direction 1.5*z
                right     x*image_width/image_height
                look_at   <0.0, 0.0, 0.0> }

// Places a light source
// color: Sets the color of the light source (white)
// translate: Moves the light source to a desired location
 light_source { <0, 0, 0>
                color rgb <1, 1, 1>
                translate <-5, 5, -5> }
// 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 { <0, 0, 0>
                color rgb <0.25, 0.25, 0.25>
                translate <6, -6, -6> }

// 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          { <-0.5, -0.5, -0.5>,
                <0.5, 0.5, 0.5>
                texture { pigment { color Red }
                          finish  { specular 0.6 }
                          normal  { agate 0.25 scale 1/2 }
                        }
                rotate <45,46,47> }

The following script fragment shows the use of variable declaration, assignment, comparison and the while loop construct:

POV-Ray image output based on the script

 #declare the_angle = 0;

 #while (the_angle < 360)
 	box {   <-0.5, -0.5, -0.5>
 		<0.5, 0.5, 0.5>
                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

Modeling[edit]

The POV-Ray program itself does not include a modeling feature; it is essentially a pure renderer with a sophisticated model description language. To accompany this feature set, third parties have developed a large variety of modeling software, some specialized for POV-Ray, others supporting import and export of its data structures, including the free and open-source 3D creation suite Blender.

A number of additional POV-Ray compatible modelers are linked from Povray.org: Modelling Programs.

In 2007, POV-Ray acquired the rights to Moray,[10] an interactive 3-D modeling program long used with POV-Ray. However, as of December 2016, Moray development is stalled.[11]

Software[edit]

Development and maintenance[edit]

Official modifications to the POV-Ray source tree are done and/or approved by the POV-Team. Most patch submission and/or bug reporting is done in the POV-Ray newsgroups on the news.povray.org news server (with a Web interface also available). Since POV-Ray’s source is available there are unofficial forks and patched versions of POV-Ray available from third parties; however, these are not officially supported by the POV-Team.

Official POV-Ray versions currently do not support shader plug-ins.[12] Some features, like radiosity and splines are still in development and may be subject to syntactical change.

Platform support[edit]

POV-Ray 3.6 is distributed in compiled format for Mac, Windows and Linux.
Support for Intel Macs is not available in the Mac version, but since Mac OS X is a version of Unix the Linux version can be compiled on it.

The 3.7 versions with SMP support are officially supported for Windows and Linux. Unofficial Mac versions for v3.7 can be found.[13]

POV-Ray can be ported to any platform which has a compatible C++ compiler.

Licensing[edit]

Originally, POV-Ray was distributed under its own POV-Ray License. Namely, the POV-Ray 3.6 Distribution License[14] and the POV-Ray 3.6 Source License,[15] which permitted free distribution of the program source code and binaries, but restricts commercial distribution and the creation of derivative works other than fully functional versions of POV-Ray.

Although the source code of older versions is available for modification, due to the above 3.6 and prior license restrictions, it was not open source or free software according to the OSI or the FSF definition of the term. This was a problem as source code exchange with the greater FOSS ecosystem was impossible due to License incompatibility with copyleft licenses.

One of the reasons that POV-Ray was not originally licensed under the free software GNU General Public License (GPL), or other open source licenses, is that POV-Ray was developed before the GPL-style licenses became widely used; the developers wrote their own license for the release of POV-Ray, and contributors to the software worked under the assumption their contributions would be licensed under the POV-Ray 3.6 Licenses.

In 2013, with version 3.7, POV-Ray was relicensed under the Affero General Public License version 3 (or later).[16] Thus POV-Ray is since then free software according to the FSF definition and also open source software according to the Open Source Definition.

See also[edit]

Wikimedia Commons has media related to POV-Ray.

  • Blender – a free and open-source software program for 3D modeling, animation, and rendering
  • Kerkythea – a freeware ray-tracing program with enhanced Sketchup compatibility
  • Sunflow – an open-source rendering system for photo-realistic image synthesis, written in Java
  • YafaRay – a popular free open-source ray-tracing engine

References[edit]

  1. ^ «POV-Ray: Documentation: 1.1.5.3 A Historic ‘Version History’«. povray.org. Retrieved 2018-12-19.
  2. ^ a b «POV-Ray: News». povray.org. Retrieved 2018-12-19.
  3. ^ «Release 3.7.0.8». 27 May 2018. Retrieved 27 May 2018.
  4. ^ «POV-Ray Beta Release v3.8.0-beta.2». POV-Ray. 2021-08-09. Retrieved 2021-08-29.
  5. ^ «POV-Ray License». povray.org. Retrieved 2014-05-05.
  6. ^ «Polyray v1.7». Alexander R. Enzmann. Retrieved 2016-07-05.
  7. ^ «Documentation: 1.1.5 The Early History of». POV-Ray. Retrieved 2014-05-05.
  8. ^ a b «The TWiT Netcast Network with Leo Laporte». Twit.tv. 2008-02-07. Retrieved 2014-05-05.
  9. ^ Paul Bourke: Supershape in 3D are examples of POV-Ray images made with very short code
  10. ^ «News: Moray Announcement». POV-Ray. 2007-02-01. Retrieved 2014-05-05.
  11. ^ «POV-Ray/povray: The persistence of Vision Raytracer». POV-Ray. 2013-09-06. Retrieved 2022-08-05.
  12. ^ for such an implementation, see e.g., http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 Archived 2007-02-07 at the Wayback Machine
  13. ^ povrayunofficial_mac on megapov.inetart.net
  14. ^ «POV-Ray 3.6 Distribution License». povray.org. Retrieved 2016-12-12.
  15. ^ «POV-Ray 3.6 Source License». povray.org. Retrieved 2016-12-12.
  16. ^ Cason, Chris (8 November 2013). «Download POV-Ray 3.7.0». Retrieved 11 November 2013. Starting with version 3.7, POV-Ray is released under the AGPL3 (or later) license and thus is Free Software according to the FSF definition. […] Full source code is available, allowing users to build their own versions and for developers to incorporate portions or all of the POV-Ray source into their own software provided it is distributed under a compatible license (for example, the AGPL3 or – at their option – any later version).

External links[edit]

Wikimedia Commons has media related to POV-Ray.

  • Official website
  • POV-Ray at Curlie

Содержание мастер класса.

  • 1. Введение
  • 2. Как подготовить модель для экспорта в POV-Ray
    • 2.1 Краткая характеристика программ для 3D моделирования
    • 2.2. Обзор визуальных моделлеров для POV-Ray
    • 2.3 Обзор визуальных моделлеров для POV-Ray

  • 3. Практическое моделирование на основе заготовок
  • 4. Практическая работа. 
  • 5. Примеры сцен построенных на основе данной методики

1. Введение

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

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

Плюс такого подхода , реализованного в POV-Ray в том, что требуется минимальное время для изучения интерфейса программы. (Хорошо известно, что в 3DsMax очень сложный интерфейс и надо потратить много времени на его изучение).

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

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

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

2. Краткая характеристика программ для 3D моделирования

Есть программа для преобразования модели в форматах OBJ, STL и др. в формат POV-Ray. Это PozeRay. Можно сказать, что она специально заточена под POV-Ray . Программа не только выполняет преобразование, но позволяет редактировать модель в исходном формате. Хотя эти возможности достаточно скромные.

Существуют программы, с достаточно сильным визуальным моделлером и также умеющие сохранять модель в формате POV-Ray . Это Wings3D и Art Of Illusion. Эти программы можно также использовать для импорта моделей в формате OBJ и последующем преобразовании в формат POV-Ray.

Наконец для создания моделей-заготовок подходят как свободное ПО, так и коммерческие программы, которые могут экспортировать модель в формате OBJ. Из свободных — это, например,Blender, TrueSpace, Sculptris

Итак в POV-Ray можно импортировать внешние модели и там окончательно формировать сцену. Т.е. Позиционировать, текстурировать и рендерить.

2.2. Обзор визуальных моделлеров для POV-Ray

Теперь кратко о каждой из программ.

Blender
Универсальная многофункциональная программа. Естественно, что знакомство с интерфейсом требует немало времени. Имеет собственный рендер. Но может использоваться для создания заготовок для POV-Ray. Имеет экспорт в формате OBJ. Где-то в сети бродит программа для непосредственно экспорта в формат POV-Ray.

Art Of Illusion
Программа можно считать реально ориентированной на POV-Ray. Имеет собственную систему текстурирования, и позволяет создавать сетки. Импортирует модели в формате OBJ и имеет экспорт в формате POV-Ray.

Wings3D
Программа для полигонального моделирования. Модели строятся из примитивов, которые можно легко деформировать с помощью визуального моделлера. Имеет импорт из набора популярных 3D форматов и экспорт в формате POV-Ray.

Sculptris
Программа для скульптурного моделирования. Это относительно новый способ работы с сеткой. Причем программа очень легко осваивается и при наличии художественного мышления позволяет строить достаточно сложные модели. Имеет импорт-экспорт в формате OBJ.

TrueSpace
Программа с длинной историей и мощным интерфейсом. Была платной, куплена Microsoft с какими-то надеждами. Потом интерес пропал и теперь доступна бесплатная версия. Программа не поддерживается, но снабжена хорошим Help. Имеет импорт-экспорт в формате OBJ и других популярных форматах.

3. Практическое моделирование на основе заготовок

Итак результат экспорта внешней модели в POV-Ray — это один или несколько файлов. Обычно tсть головной файл с расширением Pov и файлы с расширением inc . Последний формат относится к, так называемым, подключаемым файлам. Сами файлы, как правило, содержат координаты треугольников и нормалей и представляют собой набор цифр, описывающих модель. В POV-Ray нет инструментов для редактирования таких файлов. Т.е. изменить сетку объекта нельзя.

Но можно масштабировать, перемещать и вращать объект как единое целое.В POV-Ray это может выглядеть как

object{MyObject scale<sx,sy,sz> rotate<rx,ry,rz> translate <x, y, z> 



 

scale<sx,sy,sz> — оператор масштабирования, где sx,sy,sz — коэффициенты масштабирования вдоль координатных осей.
rotate<rx,ry,rz>- оператор поворота вокруг координатных осей. Причем угол — в градусах.
translate <x, y, z> -оператор смещения объекта вдоль соответствующих координатных осей.

Например, scale<2,1,1>. Объект будет вытянут вдоль оси Х с коэффициентом 2.
Наконец можно легко размножать объекты путем простого копирования строки.

Слушатель мастер класса будет использовать заготовку сцены. Используя операторы scale,rotate,translate он построит собственный вариант сцены. Сцена может выглядеть следующим образом

#include(MyObject2.inc)                       // 3
camera {…………………}                     // 4
light_source{……………….}                 // 5

object{MyObject1 scale<sx1,sy1,sz1> rotate<rx1,ry1,rz1> translate <x1, y1, z1>    // 7

object{MyObject2 scale<sx2,sy2,sz2> rotate<rx2,ry2,rz2> translate <x2, y2, z2>    // 8

В строках 1-3 декларируются подключаемые объекты. В строках 4-5 вводятся обязательные элементы сцены, такие как камера и свет.
И наконец на сцену выставляются сами объекты MyObject, MyObject1,MyObject2. Каждый из которых имеют собственное положение на сцене.
Заготовка сцены будет включена в исходную сцену. Пользователь будет манипулировать как с самими объектами, так и камерой и освещением.

Как это делается?
POV-Ray: общая характеристика
Простые сцены для трассировки
Более сложные сцены для трассировки
Если хочется большего
Технические характеристики
Заключение
Литература

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


Как это делается?
POV-Ray: общая характеристика
Простые сцены для трассировки
Более сложные сцены для трассировки
Если хочется большего
Технические характеристики
Заключение
Литература


Трассировка лучей (ray tracing) — метод машинной графики, позволяющий создавать фотореалистические изображения любых трехмерных сцен. Трассировка лучей моделирует прохождение лучей света через изображаемую сцену. Фотореализм достигается путем математического моделирования оптических свойств света и его взаимодействия с объектами. Сначала отдельные объекты располагаются в трехмерном пространстве-сцене, а также задаются физические и оптические свойства их поверхностей и их цвет. Затем определяется, где будут расположены источники света и наблюдатель. И наконец, с помощью программы трассировки лучей создается математическая модель сцены, света и наблюдателя, с помощью которой вычисляется цвет каждого пиксела графического изображения, получаемого на экране дисплея.

В качестве хорошей аналогии довольно сложного математического процесса трассировки лучей можно рассмотреть комнату с одним открытым окном. Вообразим, что в ней только что покрасили в разные цвета стены, пол, потолок, а заодно и все, что находится внутри. Краска еще не высохла. Вообразим теперь, что кто-то бросает в окно этой комнаты очень прыгучий резиновый мячик. Мячик начнет прыгать по комнате, стукаясь о свежевыкрашенные поверхности и собирая на себя их краску. Так будет продолжаться до тех пор, пока этот бесконечно прыгучий мяч не вылетит обратно в окно. Так вот, тот цвет, в который в результате окрасится мячик, и будет соответствовать цвету той точки окна-дисплея, через которую он вылетел из комнаты-сцены.

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

Поверхность с минимальным расстоянием считается видимой наблюдателем. Для этой поверхности производится математическое отражение луча, а если поверхность частично или полностью прозрачна, то и преломление луча. Отраженный и преломленный лучи называются вторичными лучами, и для них повторяется та же самая процедура, что и для исходного первичного луча, а именно поиск пересекаемых поверхностей, сортировка по расстоянию и вычисление новых вторичных лучей. Все пересекаемые поверхности с минимальными расстояниями включаются в так называемое двоичное дерево трассировки, где, например, левые ветви используются для отраженных лучей, а правые для преломленных. Максимальная «глубина» трассировки лучей либо задается пользователем, либо определяется самой программой-трассировщиком в зависимости от наличия свободной памяти.

Затем для определения цвета пиксела производится проход дерева снизу вверх, при котором суммируются интенсивности цвета всех поверхностей, пересеченных первичным и всеми вторичными лучами с учетом затухания. Если ни одна из поверхностей не была пересечена первичным лучом, то пикселу присваивается цвет фона. Проблемы вычисления интенсивности цвета поверхностей очень подробно разбираются в работе [1].

Как это делается?

Трассировка лучей используется в МГ давно и успешно. Программы, выполняющие трассировку, нередко являются составной частью сложных систем геометрического моделирования, таких как, например, Alias Power Animator. Однако надо заметить, что, обеспечивая очень высокое качество изображений, трассировка лучей как метод визуализации требует довольно много времени и, как правило, применяется на финальных стадиях подготовки изображений. Зачастую одна картинка может трассироваться на протяжении нескольких часов и даже суток, но результаты оправдывают затраты. Совсем недавно это обстоятельство препятствовало широкому распространению трассировки среди пользователей ПК. Однако сейчас, когда мощные и сравнительно дешевые Pentium-системы сильно потеснили дорогие профессиональные графические рабочие станции, трассировка лучей и удивительные миры света и теней могут войти в каждый дом и в каждую лабораторию.

Среди широкого семейства программ, в которых так или иначе используется трассировка лучей, особое место занимает POV-Ray. Это de-facto одновременно стандартная программа трассировки и формат данных для описания сложных трехмерных сцен. Но что, пожалуй, самое важное — она абсолютно бесплатная. И здесь нет никаких подводных камней. Программа POV-Ray [2-4] разработана группой программистов, именующих себя POV-Ray team, и доступна для бесплатного копирования из http://www.povray.org/ пользователям Windows 3.1/Win32s, Windows 95/NT, MS DOS, Macintosh, i86 Linux, Unix, SGI IRIX, SunOS и Amiga. Сам я открыл для себя POV-Ray несколько лет назад и с тех пор постоянно использую его как в своих научных исследованиях, так и в учебном процессе в курсе «Компьютерная графика» на ПК, a также на рабочих станциях SGI и HP.

POV-Ray: общая характеристика

Итак, программа POV-Ray (Persistence Of Vision Raytracer) написана на стандартном C и доступна вместе с текстами программ для всех широко используемых платформ. После инсталляции POV-Ray представляет собой один исполняемый файл — собственно трассировщик и несколько каталогов с файлами палитр цветов, текстур и примеров 3D-сцен. Сцены для трассировки описываются в текстовых файлах на С-подобном языке. Эти файлы вместе с возможным дополнительным файлом параметров для визуализации являются входными данными для программы pov-ray. Результат работы трассировщика — изображение, нарисованное на экране дисплея и сохраненное в файле в формате TGA или GIF.

Простые сцены для трассировки

Рассмотрим, как описываются сцены в POV-Ray. На рис. 2 приведен пример описания простой сцены для трассировки.

#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
camera 
{
	location  <0, 3, -4>
	up <0, 1, 0>
	right <1, 0, 0>
	look_at   <0, 2,  2>
}
light_source 
{
	<2, 4, -3>
	color White
}
sphere 
{
	<0, 2, 2>, 2
	texture  
	{
		pigment {color Green}
		finish {phong 1}
 	}
}
plane
{
	<0,1,0>,0
	pigment 
	{
	checker
		color Red
		color Blue
	}
}

Рисунок 2.

Первые три команды #include необходимы для подключения библиотек стандартных цветов, геометрических объектов и текстур. Команда camera{} задает положение наблюдателя в точке с координатами (0, 3, -4), смотрящего в направлении точки с координатами (0, 2, 2). POV-Ray использует левую прямоугольную декартову систему координат XYZ, где оси X и Y параллельны экрану дисплея, а ось Z направлена внутрь. Следующая команда light_source{} задает положение одного точечного источника света в точке (2, 4, -3), излучающего белый свет. Команда sphere{} задает геометрические и оптические параметры блестящей зеленой сферы радиуса 2 с центром в точке (0, 2, 2). И наконец, команда plane{} определяет еще один геометрический объект — бесконечную горизонтальную плоскость, окрашенную в шахматную клетку с красными и синими полями. Сохранив этот текст в файле с именем my_scene.pov, нам остается только запустить программу povray:

povray +Imy_scene.pov +Omy_scene.tga +FT +V +D +H400 +W400

Параметры программы определяют, где находится файл описания сцены и в каком файле сохранить картинку, а также задают режим синхронного вывода изображения на экран дисплея и размер самого изображения 400×400. Результат работы программы приведен на рис. 3. Надо заметить, что рисовать картинку в процессе трассировки вовсе не обязательно, так как она будет записана в файл изображения по окончании процесса. Это позволяет выполнять трассировку на удаленных компьютерах в пакетных режимах счета.

Посмотрим теперь, как можно изменить внешний вид объектов, добавив тем самым больше реализма в изображение. Например, заменив в описании сферы графические атрибуты на

texture
{ 
	pigment {color Green} 
	normal {bumps 0.8  scale 0.2} 
	finish {phong 1} 
}

получим вместо гладкой сферы иллюзию ноздреватой поверхности, напоминающую экзотический фрукт. Единственное, что мы добавили в описание сферы, это указание программе произвести псевдослучайные пертурбации нормалей к поверхности сферы, что привело к искажению изображения ее поверхности. Можно заметить, что сама геометрия поверхности не изменилась.

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

#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
camera 
{
  location  <0, 3, -4>
  up <0, 1, 0>
  right <1, 0, 0>
  look_at   <0, 2,  2>
}
light_source 
{
  <2, 4, -3>
  color White
}

union
{
  cone 
  {
    <0,0,1>,0.8
    <0,4.5,1>,0.0
    texture {White_Wood  scale 0.5}
  }
  difference
  {
    sphere 
    {
      <0, 2, 2>, 2
      texture { pigment {color Green} finish {phong 1}}
    }
    cylinder 
    {
      <0,2,-1.2>,<0,2,4.2>,0.5
      texture{Gold_Metal}
    }
  }
}
plane
{
  <0,1,0>,0
  pigment 
  {
    checker
      color Red
      color Blue
  }
}

Рисунок 6.

В следующем примере мы добавим в сцену другие геометрические объекты, «сделанные» из разных материалов, и применим к ним теоретико-множественные операции. В сцене (описание — рис. 6) в зеленой сфере сделана цилиндрическая дырка с золотыми стенками (мы вычли цилиндр из сферы), и затем все это проткнулось деревянным конусом. Здесь использовались операции union{} и difference{}.

Более сложные сцены для трассировки

К ним относятся объекты с «размытой» границей, которые можно использовать для моделирования облаков, тумана, пыли, дыма, пламени и светящихся газов. Для этих целей служат объекты halo, которые строятся на основе геометрических примитивов POV-Ray. Так, например, пламя, смоделировано в описании (рис. 8) путем превращения в объект halo уже известной нам сферы. Параметры объекта halo указывают, что объект должен излучать свет. Цвет объекта определяется заданной таблицей цветов с ее сферическим отображением на объем объекта с заданными параметрами и турбулентностью.

#include "colors.inc"
camera {
 location <0, 0, -2.5>
 look_at <0, 0, 0>
   }

light_source { <10, 10, -10> color rgb 1 shadowless }

sphere { 0, 1
  pigment { color rgbt <1, 1, 1, 1> }
  halo {
        emitting
        spherical_mapping
        linear
        turbulence 1.5
        color_map {
                      [ 0.0 color rgbt <1, 0, 0,   1.0> ]
                      [ 0.5 color rgbt <1, 1, 0, -1.0> ]
                      [ 1.0 color rgbt <1, 0, 0,   1.0> ]
                        }
        frequency 2
        samples 20
        scale 0.5
         }
   hollow
   scale 1.5
 }

Рисунок 8.
Описание сцены с объектом halo.

Чтобы дать общее представление о том, как с помощью простых и сложных объектов, текстур и световых эффектов можно создавать сложные виртуальные миры, объединим все вместе и рассмотрим, как сделана сцена. Это «классический» для МГ чайник, смоделированный POV-Ray в стиле Tiffany&Co, к которому для пущей выразительности добавим еще пара.

Основная часть описания этой сцены приведена на рис. 10. Команда plane описывает горизонтальную плоскость, на которой стоит чайник. Цвет плоскости задан компонентами красного, зеленого и синего цветов. Затем в программе определяются четыре сложных геометрических объекта с именами Cyl1_Pot, Cyl2_Pot, Cyl3_Pot, Tri_Pot, описанные в файлах с именами teapot.c1, teapot.c2, teapot.c3, teapot.tri соответственно. В этих файлах задаются цилиндры, задающие диагональные, горизонтальные и вертикальные сечения чайника, а также треугольники, задающие его поверхность. Эти файлы большие и скучные, так как состоят только из обращений к примитивам cylinder{} и triangle{}, и потому мы их пропустим, отметив, что POV-Ray позволяет разбивать сцены на модули и хранить их в разных файлах.

plane { y, -1
    pigment { color red 0.13 green 0.37 blue 0.41  }
    finish { ambient 0.1 }
}

#declare Cyl1_Pot = union { #include "teapot.c1" }
#declare Cyl2_Pot = union { #include "teapot.c2" } #declare 
Cyl3_Pot = union { #include "teapot.c3" }
#declare Tri_Pot = union { #include "teapot.tri" }

union {
    object { Cyl1_Pot texture { T_Gold_3C } }
    object { Cyl2_Pot texture { T_Gold_3C } }
    object { Cyl3_Pot texture { T_Gold_3C } }
    object { Tri_Pot
        texture { T_Gold_3C
            	  normal { granite 0.3 scale 0.2 }
        	}
    }
    cone {<0,0,4>,6
          <0,0,0>,0.2
          pigment { color rgbt <1, 1, 1, 1> }
          halo {
              attenuating
              spherical_mapping
              linear
              turbulence 1.0
              color_map {
                         [ 0 color rgbt <1, 1, 1, 1> ]
                         [ 1 color rgbt <1, 1, 1, 0> ]
                             }
              samples 10
                }
          hollow
          no_shadow
          scale<0.6,0.6,0.8>
          translate<3.1600,0.0000,2.40>
        }

    translate y 1
    translate ((3.15-2.0)/2)   z
    rotate -x 90
    rotate y 60
}

Рисунок 10.
Описание сцены «чайник с паром».

Следующей в описании сцены встречается команда union{}, объединяющая в одну сцену три группы цилиндров, треугольники и пар. Цилиндрам придана золотая текстура. Для треугольников используется такая же текстура, но с пертурбацией нормалей. Наконец, пар смоделирован как объект halo внутри задающего перевернутого конуса, приблизительно так, как это рассматривалось в предыдущем примере. Пар первоначально смоделирован в начале координат, а затем смасштабирован до требуемых размеров с помощью команды scale{} и перенесен к носику чайника командой translate{}. В заключение все объекты, объединенные командой union{}, сдвигаются вдоль координат y и z, с поворотом вокруг осей X и Y.

Описание методов и массу примеров трассировки лучей можно найти на узлах http://www.ntu.edu.sg/home/assourin и
http://www.u-aizu.ac.jp/public/www/labs/sw-sm/FrepWWW/F-rep.html.

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

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

Надо заметить, что POV-Ray team не разрабатывает никаких интерактивных средств моделирования сцен, но ссылки на два из них содержатся в http://www.povray.org/, и еще добрый десяток freeware программ может быть найден в сети для Windows/Windows 95.

Если хочется большего

POV-Ray поддерживается и, можно сказать, питается своими пользователями. Кроме основного набора функций, которые выполняет POV-Ray, существует еще очень много дополнительных библиотек и расширений программы. Часть из них поддерживается собственно POV-Ray team, но гораздо больше сделано и распространяется для POV-Ray его пользователями. Список того, что можно делать с помощью всех этих утилит и расширений, велик и разнообразен. Это и автоматическое моделирование деревьев, цепей и канатов. Это и набор линз и соответствующих эффектов для наблюдения смоделированных сцен. Это и средства, позволяющие «взорвать» любой сложный объект POV-Ray и превратить его в красиво разлетающиеся кусочки. Это и программы генерации ракушек и змей. Наконец, это программа конверсии файлов описания рельефа Digital Elevation Model.

Достаточно интересно расширение POV-Ray, разработанное R. Сузуки (http://www.public.usit.net/rsuzuki/e/povray/), которое позволяет производить трассировку объектов, заданных любой вещественной функцией вида f(x,y,z), где точки считаются принадлежащими объекту, если функция их координат больше или равна нулю. Это расширение позволяет включать практически любой тип геометрического объекта в моделируемую сцену. О математических методах моделирования геометрических объектов с помощью таких функций говорилось в статье [5], авторы которой используют упомянутое расширение POV-Ray для получения качественных изображений.

Технические характеристики

POV-Ray:

  • язык высокого уровня для описания 3D-сцен;
  • библиотеки типовых сцен, цветов, текстур и геометрических примитивов;
  • высококачественные изображения (до 48 бит на пиксел), встроенная программа вывода изображений для 15-ти и 24-битных дисплеев;
  • моделирование поверхностей по заданным высотам;
  • разнообразные источники света: прожектор, цилиндрические источники и поверхностные протяженные источники;
  • закраска по Фонгу, изображение бликов и излучений для реалистичных поверхностей;
  • моделирование атмосферных эффектов, включая туман, радугу и изображение светящихся объектов с неопределенными границами: облака, пыль, огонь и пар;
  • набор основных геометрических примитивов: сфера, параллелепипед, цилиндр, конус, поверхности второго порядка, треугольник и плоскость;
  • сложные геометрические объекты, включающие тор, гиперболоид, параболоид, поверхность Безье, высотные поля, потенциальные поля, поверхности четвертого порядка, сглаженные треугольники, текст, фракталы, суперквадрики, поверхности вращения, призмы, полигоны и планки;
  • возможность собирать объекты в более сложные, используя их объединение, включение, пересечение и вычитание (конструктивная геометрия — CSG);
  • возможность задания различных материалов с помощью стандартных текстур и изображений в файлах;
  • встроенные стандартные цвета, узоры и орнаменты;
  • возможность использования нескольких слоев полупрозрачных текстур или узоров из текстур, в том числе и созданных пользователем;
  • вывод графического изображения на экран в процессе трассировки.

Заключение

Конечно, в небольшой статье трудно рассказать обо всем, что можно делать с помощью методов трассировки лучей. Читателей, мало знакомых с проблемой, эта статья может натолкнуть на идею применения возможностей машинной графики в своей работе, а специалистам укажет путь к громадным ресурсам freeware программного обеспечения, связанного с трассировкой лучей и удивительными мирами геометрии, света и текстур.


Литература

  1. A. S. Glassner,et al., «An Introduction to Ray Tracing», Academic Press, London, 1989.
  2. C. Young and D. Wells, «Ray Tracing Creations», 2d Ed., Waite Group Press 1994.
  3. A. Enzmann, L. Kretzschmar, C. Young, Ray Tracing Worlds with POV-Ray, Waite Group Press 1994.
  4. E. Schwan, Ray Tracing for the Macintosh CD, Waite Group Press, 1994.
  5. В. Аджиев, А. Пасько, В. Савченко, А. Сурин Моделирование форм с использованием вещественных функций. Открытые системы, 1996, #5 (19), с. 14-18.

Starting with version 3.7, POV-Ray is released under the AGPL3 (or later) license and
thus is Free Software according to the FSF definition.


    «Free software» means software that respects users’ freedom and community. Roughly, the users have the freedom to run, copy,
    distribute, study, change and improve the software. With these freedoms, the users (both individually and collectively) control
    the program and what it does for them.

Full source code is available, allowing users to build their own versions and for developers to incorporate portions or all of the POV-Ray source
into their own software provided it is distributed under a compatible license (for example, the AGPL3 or — at their option — any later version).
The POV-Ray developers also provide officially-supported binaries for selected platforms (currently only Microsoft Windows, but expected to include OS X shortly).

POV-Ray 3.7.0 (released 6 November 2013) is the current official version for all platforms. There are significant
internal changes in this version due to the introduction of SMP support. A comprehensive change list
is available for those interested in the full details, as well as the changelog. A summarized list
of changes is available via our documentation and
is important reading for anyone familiar with prior versions of POV-Ray.

POV-Ray for Windows requires Windows XP or later, and has been tested on versions up to and including Windows 8.
We recommend having at least 100mb or so of free disk space (for temporary file storage during renders) and at
least 1GB of available memory, though less is OK if you are not doing complicated scenes. Since the POV-Ray for
Windows distribution package includes both the 32 and 64-bit binaries, the setup file determines which
one to provide as the main program link (all versions are installed). Full documentation and sample scene files
are also included.

Download Windows Installer

Sysadmins/Lab Techs: If you wish to use POVWIN in a multi-user environment and/or do a non-standard install, please see the
non-standard installations section in our documentation.

Reviewers: if you will be using POV-Ray to benchmark CPU’s, please read our
benchmarking with POV-Ray page for information that
you need to know.

Users of platforms that do not have official binaries will probably need to build their own version from the source (though it is expected that many Unix-like systems
that have package managers or a ports system will provide a single-line means of installing a binary or fetching/building from source).
Developers for all platforms who want to take a look at the source code, make a modification or port it to a new platform should also choose to download the sources.
The source code, documentation and example scene files for all platforms can be obtained from our github repository.
Where possible we will attempt to assist with build problems via our support forums.

We have preserved the download page for version 3.6 if you wish to access that version.
Please refer to our old version tree.
for older versions of POV-Ray or for versions of platforms for which official support has been discontinued. All official releases of POV-Ray since v1.0 (released in 1992)
are available there.

These files are also available at our FTP site, ftp.povray.org, which is accessible using anonymous FTP with any standard FTP program
(you may also explore the entire FTP site in your browser without needing an FTP program).


POV-Ray — The Persistence of Vision Raytracer

Quick Tests
Code Analysis
Maintenance Status

  • License
  • Forums
  • Bug Reports
  • Official Binaries
  • Building POV-Ray
  • IDE Versions
  • 3D Modeller
  • Documentation
  • Contacting Us

License

As of version v3.7, the source for POV-Ray is licensed under the AGPL3. The documentation is under the
Creative Commons Attribution-Noncommercial-ShareAlike 2.5 license, and support files such
as SDL includes, macros, sample scenes and so forth are under the Creative Commons Attribution-ShareAlike
3.0 Unported License (see each file header for the specific one).

Forums

Discussion regarding POV-Ray is traditionally done via our forums at http://news.povray.org/.
These are also available via NNTP at news://news.povray.org/ for those preferring that.

Please note that the POV-Ray developers do not monitor all forums regularly. The ones we
tend to check most frequently are povray.general, povray.windows and povray.unix.

Bug Reports

It’s generally a good idea to mention a bug in the forums prior to lodging a formal
report; this can save you some time if it’s a non-bug or a solution is known. You
should also first check the known issues
to see if it has been reported already.

If you’re sure something is a bug then please do lodge a bug report on the GitHub issues tracker.

Official Binaries

At this point in time, the only platform for which the project distributes pre-built
‘official’ (i.e. supported) binaries is Microsoft Windows. These may be
obtained via http://www.povray.org/download/. We do intend to provide Mac OS X
binaries shortly, but these will be console-mode only (based on the unix build).

Official Windows binaries of selected development versions are made availabe at
https://github.com/POV-Ray/povray/releases on a semi-irregular basis.

Building POV-Ray

At this point in time we generally recommend building from the latest version of the
latest-stable branch. Alternatively,
you may want to opt for a recent tagged version
to test-drive features that have been added since the latest stable release.

Please do not build directly from the master branch (or any other non-stable branch
for that matter), as versions from that branch may report ambiguous version numbers,
making it difficult to obtain version-specific support or report bugs in a useful manner.

POV-Ray should compile on any POSIX-compliant system with the required tools (please see
unix/README.md for build instructions),
on Microsoft Windows systems that have Visual Studio 2015 Update 1 or later installed (targeting
XP or later, both 32 and 64-bit — be sure to see windows/README.md,
otherwise your build will not work), and also on Mac systems (console mode only, using
an appropriately-modified version of the unix build — not currently provided by us).

If you are using an operating system with a package or ports system such as
Ubuntu or FreeBSD, you may like to check whether or not POV-Ray is available
via that route.

IDE versions

Currently the only version of POV-Ray with an IDE as such is the Windows build.
We do want to change that, though. With the release of POV-Ray v3.7 we have added
a clear split between the backend (renderer) and frontend (UI or console), along
with a C++ layer which abstracts this into a fairly easily-understood set of
classes (VFE, aka ‘Virtual Front End’).

We will offer support to those wishing to use this interface layer to integrate
POV-Ray into an open-source cross-platform IDE. We would also be interested in
hearing suggestions as to what we could base such an IDE on, should we go ahead
to integrate it ourselves.

Putting it another way: we consider getting a cross-platform IDE a high priority.

3D Modeller

POV-Ray does not currently have its own 3d modelling application (at least, not one
in a usable state). We do own the rights to the Moray modeller, which was formerly
commercial, but it needs a little work to get it working with v3.7 or later. It is also
Windows only (due to its use of MFC). Nevertheless we will be adding the source
to the repository at a future date.

Authors of open-source modellers with a compatible licence wishing to directly
integrate POV-Ray are welcome to contact us for support in doing so.

Documentation

When built and installed via the means provided in the source tree, all versions
of POV-Ray come with documentation. For the Unix build, this is in the form of a
manpage giving basic usage, and full HTML-based documentation. For the Windows
version, there is a HtmlHelp (.CHM) file provided.

The official location for the online documentation is http://www.povray.org/documentation/.
Further information, as well as online documentation for the current development
version, can be found at http://wiki.povray.org.

Contacting Us

We prefer that you contact us via the forums mentioned at the head of this document.
If the matter is one that requires direct email contact (and this generally will NOT
include tech support requests, though exceptions are made for package maintainers)
you may use the address listed at the bottom of http://www.povray.org/povlegal.html.

Понравилась статья? Поделить с друзьями:
  • Posiflex pd 2800 драйвер windows 10
  • Potplayer не работает на windows 10
  • Posiflex pd 2600 драйвер для windows 10
  • Potplayer для windows 11 pro 64
  • Posiflex ks 6715 установка windows 10