Podstawy POV
Transkrypt
Podstawy POV
Podstawy POV-Ray'a Diana Doma«ska Uniwersytet l¡ski Diana Doma«ska (U) Podstawy POV-Ray'a 1 / 13 POV-Ray (Persistence of Vision Raytracer) jest j¦zykiem opisu sceny sªu»¡cym do tworzenia trójwymiarowej graki o wysokiej jako±ci. Aby otrzyma¢ wysok¡ jako±¢ graki POV-Ray wykorzystuje algorytm ±ledzenia promieni (ang. Ray Tracing). Algorytm ten oblicza kolor i nat¦»enie o±wietlenia oddzielnie dla ka»dego punktu sceny zgodnie z zycznymi prawami rozchodzenia si¦ ±wiatªa. POV-Ray jest caªkowicie darmowy, dziaªa na ró»nych systemach (Windows, Linux, MacOS) i mo»na go ±ci¡gn¡¢ ze strony http://www.povray.org/ Diana Doma«ska (U) Podstawy POV-Ray'a 2 / 13 Ukªad wspóªrz¦dnych Y Z X Diana Doma«ska (U) Podstawy POV-Ray'a 3 / 13 ródªo ±wiatªa, kamera (podstawy) ródªo ±wiatªa 1 2 3 4 5 light_source { <x, y, z> // polozenie zrodla swiatla color <r, g, b> // kolor swiatla [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 4 / 13 ródªo ±wiatªa, kamera (podstawy) ródªo ±wiatªa 1 2 3 4 5 light_source { <x, y, z> // polozenie zrodla swiatla color <r, g, b> // kolor swiatla [(opt.)] } Inne sposoby podawania koloru rgb <r, g, b> color red r green g blue b na pocz¡tku pliku ze skryptem zamieszczamy instrukcj¦ wª¡czaj¡c¡ plik z denicjami kolorów #include "colors.inc" W pliku znajduj¡ si¦ denicje kolorów, do których mo»emy si¦ odwoªywa¢ po ich nazwach np. Red, Orange, SummerSky, itp. Diana Doma«ska (U) Podstawy POV-Ray'a 4 / 13 Kamera 1 2 3 4 5 camera { location <x, y, z> // polozenie kamery look_at <x, y, z> // punkt, na ktory kamera patrzy [(opt.)] } Wi¦cej szczegóªowych informacji na temat ¹ródeª ±wiatªa i kamery podamy na jednych z dalszych zaj¦¢. Diana Doma«ska (U) Podstawy POV-Ray'a 5 / 13 Tªo, pªaszczyzna Tªo 1 2 3 background { <r, g, b> // kolor tla } Pªaszczyzna 1 2 3 4 5 6 plane { <x, y, z>, // wektor normalny d // przesuniecie plaszczyzny od poczatku ukl. // wspol. w kierunku wektora normalnego [(opt.)] } Cz¦sto pªaszczyzna jest prostopadªa do osi ukªadu wspóªrz¦dnych dlatego te» zdeniowano odpowiednie staªe: x, y, z, które podajemy w miejsce wektora normalnego. Diana Doma«ska (U) Podstawy POV-Ray'a 6 / 13 Podstawowe prymitywy graczne Sfera 1 2 3 4 5 sphere { <x, y, z>, // wspolrzedne srodka sfery r // promien sfery [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 7 / 13 Podstawowe prymitywy graczne Sfera 1 2 3 4 5 sphere { <x, y, z>, // wspolrzedne srodka sfery r // promien sfery [(opt.)] } Walec 1 2 3 4 5 6 7 cylinder { <x1, y1, z1>, // srodek dolenj podstawy <x2, y2, z2>, // srodek gornej podstawy r // promien [open] // walec bez podstaw [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 7 / 13 ci¦ty sto»ek 1 2 3 4 5 6 7 8 cone { <x1, y1, z1>, // srodek dolnej podstawy r1, // promien dolnej podstawy <x2, y2, z2>, // srodek gornej podstawy r2 // promien dolnej podstawy [open] // stozek bez podstaw [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 8 / 13 ci¦ty sto»ek 1 2 3 4 5 6 7 8 cone { <x1, y1, z1>, // srodek dolnej podstawy r1, // promien dolnej podstawy <x2, y2, z2>, // srodek gornej podstawy r2 // promien dolnej podstawy [open] // stozek bez podstaw [(opt.)] } Prostopadªo±cian 1 2 3 4 5 box { <x1, y1, z1>, // lewy dolny wierzcholek <x2, y2, z2> // prawy gorny wierzcholek [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 8 / 13 Torus 1 2 3 4 5 torus { r1, // promien r2 // promien [(opt.)] } Z r2 r1 Diana Doma«ska (U) Podstawy POV-Ray'a X 9 / 13 Trójk¡t 1 2 3 4 5 6 triangle { <x1, y1, z1>, // wierzcholki trojkata <x2, y2, z2>, <x3, y3, z3> [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 10 / 13 Trójk¡t 1 2 3 4 5 6 triangle { <x1, y1, z1>, // wierzcholki trojkata <x2, y2, z2>, <x3, y3, z3> [(opt.)] } Wielok¡t 1 2 3 4 5 6 7 polygon { n, // liczba wierzcholkow <x1, y1, z1>, // wierzcholki ... <xn, yn, zn> [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 10 / 13 Dysk 1 2 3 4 5 6 7 disc { <x, y, z>, // wspolrzedne srodka <nx, ny, nz>, // wektor normalny r // promien [, r1] // proimien otworu [(opt.)] } Diana Doma«ska (U) Podstawy POV-Ray'a 11 / 13 Podstawowe transformacje Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie! Diana Doma«ska (U) Podstawy POV-Ray'a 12 / 13 Podstawowe transformacje Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie! Translacja 1 translate <tx, ty, tz> Diana Doma«ska (U) Podstawy POV-Ray'a 12 / 13 Podstawowe transformacje Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie! Translacja 1 translate <tx, ty, tz> Rotacja 1 rotate <rx, ry, rz> K¡ty podawane s¡ w stopniach. Diana Doma«ska (U) Podstawy POV-Ray'a 12 / 13 Podstawowe transformacje Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie! Translacja 1 translate <tx, ty, tz> Rotacja 1 rotate <rx, ry, rz> K¡ty podawane s¡ w stopniach. Skalowanie 1 scale <sx, sy, sz> Diana Doma«ska (U) Podstawy POV-Ray'a 12 / 13 Projekt: U»ywaj¡c gur i bryª poznanych na zaj¦ciach oraz trzech dowolnie wybranych z dokumentacji utwórz projekt zwi¡zany z por¡ zimow¡. Diana Doma«ska (U) Podstawy POV-Ray'a 13 / 13