POV-Ray
POV-Ray (Persistence of Vision Raytracer) — програма трасування променів, яка створює зображення по текстовому опису і доступна на багатьох комп'ютерних платформах. Спочатку була створена на основі DKBTrace, написана Девідом Кірком Баком і Ароном А. Колінзом для комп'ютерів Amiga. Також мав місце вплив раннього трасувача променів Polyray Raytracer Олександра Ензмана. POV-Ray — програма з відкритим кодом безкоштовної ліцензії AGPL3. В даному продукті використовується багато методів для генерації 3D моделей, включаючи програму «moray» для інтерактивного моделювання.
![]() | |
![]() | |
| Тип | Ray tracer |
|---|---|
| Розробник | The POV-Team |
| Стабільний випуск | 3.7.0[1] |
| Репозиторій | github.com/POV-Ray/povray |
| Нестабільний випуск | 3.7 Release Candidate 7[2] |
| Операційна система | Багатоплатформність |
| Мова програмування | C++ |
| Ліцензія | AGPLv3[3] |
| Вебсайт | www.povray.org |
Історія
Колись у 1980-х роках, Девід Кірк Бак завантажив сирцевий код на Unix для трасування променів на свій комп'ютер Amiga. Експериментуючи з ним деякий час, зрештою зважився написати свій власний трасувач променів, котрий пізніше отримав назву DKBTrace. Девід розмістив це на електронній дошці оголошень BBS в Чикаго з назвою «You Can Call Me Ray», думаючи, що інші можуть бути зацікавлені в цьому. У 1987 році Арон А. Колінз завантажив DKBTrace і почав працювати на 86-розрядному порті з цією програмою. Арон і Девід Бек співпрацювали, щоб додати ще кілька функцій. Коли програма виявилася більш популярною, ніж очікувалося, вони не могли більше йти в ногу з попитом на більш широкі можливості. Таким чином, в липні 1991 року Девід передав проект до команди програмістів, що працювали на GraphDev форумі в CompuServe. Водночас, він вважав недоцільним використовувати в імені програми з котрою він більше не працює свої ініціали. Спочатку програму хотіли назвати «STAR» (Software Taskforce on Animation and Rendering), але в підсумку назва стала «Persistence of Vision Raytracer», або коротко «POV-Ray».[4]
POV-Ray був першим трасувачем променів використаним для рендерінга зображення на навколоземній орбіті, його використав Марк Шаттлворт всередині Міжнародної космічної станції.[5]
Особливості

POV-Ray стала істотно функціональніше, з того часу як була створена. Останні версії програми включають в себе наступні можливості:
- Тьюринг-повна мова опису сцени (SDL), в якій підтримуються макроси та цикли.[6]
- Бібліотека готових сцен, текстур та об'єктів.
- Підтримка ряду геометричних примітивів та конструктивної блокової геометрії.
- Декілька види джерел світла.
- Атмосферні ефекти, такі як туман, дим, хмари.
- Відбиття, заломлення та легка каустика з використанням фотонних карт.
- Моделі поверхні, такі як зморшки, удари, і брижі, для використання в процедурному текстуруванні та в рельєфному текстуруванні.
- Освітлення (комп'ютерна графіка).
- Підтримка формату зображення для текстур, в тому числі TGA, PNG, JPEG.
- Велика кількість документації для користувача.
Однією з головних переваг POV-Ray є його велика інформаційна база. В інтернеті можна знайти велику кількість інструментів, текстур, моделей, сцен і книжок. Також є корисні довідникові матеріали для тих, хто хоче дізнатися як працюють алгоритми трасування променів, та пов'язані з ними геометричні та графічні алгоритми.
Приклади коду опису сцени
Нижче наведено приклад коду опису сцени з використанням POV-Ray для візуалізації. Використовується колір фону, камера, підсвічування, проста форма коробки, що має нормаль поверхні, ефекти обертання.
#version 3.6;
//Includes a separate file defining a number of common colours
#include "colors.inc"
global_settings { assumed_gamma 1.0 }
//Sets a background colour for the image (dark grey)
background { color rgb <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> }
Наступний фрагмент сценарію показує використання оголошень змінних, привласнення, порівняння і конструкцій циклу:
#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
Програмне забезпечення
Розробка та підтримка
Офіційні модифікації POV-Ray зроблені та затверджені POV-Team. Найкращі патчі та звіти помилок можна знайти в групі новин POV-Ray на news.povray.org. Оскільки POV-Ray програма з відкритим кодом, то виправлені версії POV-Ray доступні від третіх осіб, однак, вони офіційно не підтримуються POV-Team. Офіційні версії POV-Ray в даний час не підтримують шейдери плагінів. Деякі функції, такі як рендеринг та сплайн все ще знаходяться в розробці і можуть бути пов'язані з синтаксичними змінам.
Підтримка платформ
POV-Ray поширюється в скомпільованій формат для Macintosh, Windows та Linux. Підтримка Intel Macs не доступна у версії Macintosh, але так як Mac OS X являє собою версію Unix то версії Linux можуть бути скомпільовані на ньому. POV-Ray також може бути скомпільована на будь-якій платформі, яка має сумісний компілятор С ++. В 3,7 версії підтримується SMP, однак, ранні версії доступні лише для Windows і Linux.
Ліцензія
Починаючи з версії 3.7, POV-Ray випускається під AGPL3 ліцензією, таким чином, являє собою безкоштовним програмним забезпеченням, відповідно до FSF. Попередні версії POV-Ray випущені під POV-Ray ліцензією, що дозволяє вільне розповсюдження вихідного коду і файлів у двійковій формі, за винятком комерційного розповсюдження і створення відмінних повнофункціональних версій POV-Ray.
Див. також
Примітки
- Завантажити. POV-Ray.
- Зміни. POV-Ray.
- Ліцензія. Povray.org. Процитовано 5 травня 2014.
- Документація: 1.1.5 рання історія. POV-Ray.
- Reach for the stars. Oyonale.com. 5 травня 2002. Процитовано 5 травня 2014.
- Пол Бурк: Супер форма в 3D.

