POV-Ray

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
POV-Ray
POV-Ray logo
Тип Ray tracer
Розробник The POV-Team
Стабільний випуск 3.7.0[1]
Нестабільний випуск 3.7 Release Candidate 7[2]
Операційна система Багатоплатформність
Мова програмування C++
Ліцензія AGPLv3[3]
Репозиторій github.com/POV-Ray/povray
Вебсайт www.povray.org

POV-Ray (Persistence of Vision Raytracer) — програма трасування променів, яка створює зображення по текстовому опису і доступна на багатьох комп'ютерних платформах. Спочатку була створена на основі DKBTrace, написана Девідом Кірком Баком і Ароном А. Колінзом для комп'ютерів Amiga. Також мав місце вплив раннього трасувача променів Polyray Raytracer Олександра Ензмана. POV-Ray — програма з відкритим кодом безкоштовної ліцензії AGPL3. В даному продукті використовується багато методів для генерації 3D моделей, включаючи програму «moray» для інтерактивного моделювання.

Історія[ред. | ред. код]

Колись у 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

POV-Ray стала істотно функціональніше, з того часу як була створена. Останні версії програми включають в себе наступні можливості:

Однією з головних переваг POV-Ray є його велика інформаційна база. В інтернеті можна знайти велику кількість інструментів, текстур, моделей, сцен і книжок. Також є корисні довідникові матеріали для тих, хто хоче дізнатися як працюють алгоритми трасування променів, та пов'язані з ними геометричні та графічні алгоритми.

Приклади коду опису сцени[ред. | ред. код]

Нижче наведено приклад коду опису сцени з використанням POV-Ray для візуалізації. Використовується колір фону, камера, підсвічування, проста форма коробки, що має нормаль поверхні, ефекти обертання.

#version 3.6;
//Includes a separate file defining a number of common colours
 #include "colors.inc"
 global_settings { assumed_gamma 1.0 }
 
//Sets a background colour for the image (dark grey)
 background   { color rgb <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 на [[https://web.archive.org/web/20080828180237/http://news.povray.org/ Архівовано 28 серпня 2008 у Wayback Machine.] news.povray.org]. Оскільки POV-Ray програма з відкритим кодом, то виправлені версії POV-Ray доступні від третіх осіб, однак, вони офіційно не підтримуються POV-Team. Офіційні версії POV-Ray в даний час не підтримують шейдери плагінів. Деякі функції, такі як рендеринг та сплайн все ще знаходяться в розробці і можуть бути пов'язані з синтаксичними змінам.

Підтримка платформ[ред. | ред. код]

POV-Ray поширюється в скомпільованій формат для Macintosh, Windows та Linux. Підтримка Intel Macs[en] не доступна у версії 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.

Див. також[ред. | ред. код]

  • Blender —  пакет для створення тривимірної комп'ютерної графіки
  • Kerkythea — безкоштовна програма трасування променів
  • Sunflow — система рендеринга з використанням глобального освітлення
  • YafaRay — безкоштовна програма з відкритим кодом для трасування променів

Примітки[ред. | ред. код]

  1. Завантажити. POV-Ray. Архів оригіналу за 25 березня 2022. Процитовано 2 червня 2014.
  2. Зміни. POV-Ray. Архів оригіналу за 4 червня 2014. Процитовано 2 червня 2014.
  3. Ліцензія. Povray.org. Архів оригіналу за 15 березня 2016. Процитовано 5 травня 2014.
  4. Документація: 1.1.5 рання історія. POV-Ray. Архів оригіналу за 4 грудня 2014. Процитовано 2 червня 2014.
  5. Reach for the stars. Oyonale.com. 5 травня 2002. Архів оригіналу за 21 серпня 2014. Процитовано 5 травня 2014.
  6. Пол Бурк: Супер форма в 3D. Архів оригіналу за 4 червня 2014. Процитовано 2 червня 2014.

Посилання[ред. | ред. код]