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.

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