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 union { 2 obiekty 3 [(opt.)] 4 } Obiekty są łączone, a powierzchnie wewnątrz nie są usuwane.
Suma 1 union { 2 obiekty 3 [(opt.)] 4 } Obiekty są łączone, a powierzchnie wewnątrz nie są usuwane. Scalanie 1 merge { 2 obiekty 3 [(opt.)] 4 } 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 intersection { 2 obiekty 3 [(opt.)] 4 }
Przecięcie 1 intersection { 2 obiekty 3 [(opt.)] 4 } Różnica 1 difference { 2 obiekty 3 [(opt.)] 4 }
1 union { 2 box { 3 <-1.5, -1, -1>, 4 <0.5, 1, 1> 5 pigment{color <1, 0, 0>} 6 translate <1, 0, 0> 7 } 8 9 cylinder { 10 <0.5, 0, -0.5>, 11 <0.5, 0, 0.5>, 12 1.3 13 pigment{color <106/255, 250/255, 65/255>} 14 translate <-1, 0, 0> 15 } 16 }
1 intersection { 2 box { 3 <-1.5, -1, -1>, 4 <0.5, 1, 1> 5 pigment{color <1, 0, 0>} 6 translate <1, 0, 0> 7 } 8 9 cylinder { 10 <0.5, 0, -0.5>, 11 <0.5, 0, 0.5>, 12 1.3 13 pigment{color <106/255, 250/255, 65/255>} 14 translate <-1, 0, 0> 15 } 16 }
1 difference { 2 box { 3 <-1.5, -1, -1>, 4 <0.5, 1, 1> 5 pigment{color <1, 0, 0>} 6 translate <1, 0, 0> 7 } 8 9 cylinder { 10 <0.5, 0, -0.5>, 11 <0.5, 0, 0.5>, 12 1.3 13 pigment{color <106/255, 250/255, 65/255>} 14 translate <-1, 0, 0> 15 } 16 }
1 difference { 2 cylinder { 3 <0.5, 0, -0.5>, 4 <0.5, 0, 0.5>, 5 1.3 6 pigment{color <106/255, 250/255, 65/255>} 7 translate <-1, 0, 0> 8 } 9 10 box { 11 <-1.5, -1, -1>, 12 <0.5, 1, 1> 13 pigment{color <1, 0, 0>} 14 translate <1, 0, 0> 15 } 16 }
Własne obiekty Deklarowanie własnego obiektu: 1 #declare nazwa = definicja_obiektu; nazwa 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. Przykład: 1 #declare bryla = union { 2 box {<-1.5, -1, -1>, <0.5, 1, 1>} 3 cylinder {<0.5, 0, -1>, <0.5, 0, 1>, 1} 4 };
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.