POV-Ray 2 - Uniwersytet Śląski
Transkrypt
POV-Ray 2 - Uniwersytet Śląski
Podstawy POV-Ray’a Diana Domańska Uniwersytet Śląski CSG (Constructive Solid Geometry) Ï Większość kształtów takich jak sfera, prostopadłościan itp. dzielą świat na dwa regiony: region leżący wewnątrz i region leżący na zewnątrz obiektu. CSG (Constructive Solid Geometry) Ï Większość kształtów takich jak sfera, prostopadłościan itp. dzielą świat na dwa regiony: region leżący wewnątrz i region leżący na zewnątrz obiektu. Ï Kształty takie jak trójkąt, wielokąt nie posiadają regionu wewnętrznego i zewnętrznego. W przypadku powierzchni wektor normalny wskazuje region zewnętrzny. CSG (Constructive Solid Geometry) Ï Większość kształtów takich jak sfera, prostopadłościan itp. dzielą świat na dwa regiony: region leżący wewnątrz i region leżący na zewnątrz obiektu. Ï Kształty takie jak trójkąt, wielokąt nie posiadają regionu wewnętrznego i zewnętrznego. W przypadku powierzchni wektor normalny wskazuje region zewnętrzny. Ï Dla danego obiektu możemy odwrócić znaczenie wnętrze/zewnętrze poprzez dodanie w jego definicji słowa kluczowego inverse. CSG (Constructive Solid Geometry) Ï Większość kształtów takich jak sfera, prostopadłościan itp. dzielą świat na dwa regiony: region leżący wewnątrz i region leżący na zewnątrz obiektu. Ï Kształty takie jak trójkąt, wielokąt nie posiadają regionu wewnętrznego i zewnętrznego. W przypadku powierzchni wektor normalny wskazuje region zewnętrzny. Ï Dla danego obiektu możemy odwrócić znaczenie wnętrze/zewnętrze poprzez dodanie w jego definicji słowa kluczowego inverse. Ï W technice CSG można korzystać jedynie z obiektów, które posiadają region wewnętrzny i zewnętrzny. Suma 1 2 3 4 union { obiekty [(opt.)] } Obiekty są łączone, a powierzchnie wewnątrz nie są usuwane. Suma 1 2 3 4 union { obiekty [(opt.)] } Obiekty są łączone, a powierzchnie wewnątrz nie są usuwane. Scalanie 1 2 3 4 merge { obiekty [(opt.)] } Działa tak samo jak union z tą różnicą, że powierzchnie wewnątrz są usuwane. Przydatne przy obiektach przeźroczystych. Działa wolniej od union. Przecięcie 1 2 3 4 intersection { obiekty [(opt.)] } Przecięcie 1 2 3 4 intersection { obiekty [(opt.)] } Różnica 1 2 3 4 difference { obiekty [(opt.)] } 1 2 3 4 5 6 7 union { box { <-1.5, -1, -1>, <0.5, 1, 1> pigment{color <1, 0, 0>} translate <1, 0, 0> } 8 cylinder { <0.5, 0, -0.5>, <0.5, 0, 0.5>, 1.3 pigment{color <106/255, 250/255, 65/255>} translate <-1, 0, 0> } 9 10 11 12 13 14 15 16 } 1 2 3 4 5 6 7 intersection { box { <-1.5, -1, -1>, <0.5, 1, 1> pigment{color <1, 0, 0>} translate <1, 0, 0> } 8 cylinder { <0.5, 0, -0.5>, <0.5, 0, 0.5>, 1.3 pigment{color <106/255, 250/255, 65/255>} translate <-1, 0, 0> } 9 10 11 12 13 14 15 16 } 1 2 3 4 5 6 7 difference { box { <-1.5, -1, -1>, <0.5, 1, 1> pigment{color <1, 0, 0>} translate <1, 0, 0> } 8 cylinder { <0.5, 0, -0.5>, <0.5, 0, 0.5>, 1.3 pigment{color <106/255, 250/255, 65/255>} translate <-1, 0, 0> } 9 10 11 12 13 14 15 16 } 1 2 3 4 5 6 7 8 difference { cylinder { <0.5, 0, -0.5>, <0.5, 0, 0.5>, 1.3 pigment{color <106/255, 250/255, 65/255>} translate <-1, 0, 0> } 9 box { <-1.5, -1, -1>, <0.5, 1, 1> pigment{color <1, 0, 0>} translate <1, 0, 0> } 10 11 12 13 14 15 16 } Własne obiekty Deklarowanie własnego obiektu: 1 #declare nazwa = definicja_obiektu; jest to nazwa do jakiej będziemy się odwoływać w dalszej części naszego skryptu, definicja_obiektu jest to właściwa definicja obiektu składająca się np. z prymitywów, obiektów powstałych przez zastosowanie CSG. nazwa Przykład: 1 2 3 4 #declare bryla = union { box {<-1.5, -1, -1>, <0.5, 1, 1>} cylinder {<0.5, 0, -1>, <0.5, 0, 1>, 1} }; Po zadeklarowaniu własnego obiektu możemy z niego skorzystać w swoim skrypcie wielokrotnie. Aby skorzystać z własnego obiektu: 1 object {nazwa} Po zadeklarowaniu własnego obiektu możemy z niego skorzystać w swoim skrypcie wielokrotnie. Aby skorzystać z własnego obiektu: 1 object {nazwa} Własne obiekty możemy również poddawać podstawowym przekształceniom czy też używać jako obiekty do CSG (o ile posiadają wnętrze/zewnętrze). Przykład: 1 object {bryla translate <-0.5, 0, 0>} Projekt z pierwszych zajęć proszę urozmaicić o techniki CSG oraz stworzyć przynajmniej jeden własny obiekt.