Interior - Caustics - 2006-10-26
Używając Caustics w bloku Interior uzyskujemy podobny efekt jaki daje photons, z tym że działa to dużo szybciej.
wiecej >>

Szukaj: 
Logowanie
Login
Hasło   
Pamiętaj mnie na tej stronie
 Zarejestruj się...




Najnowsza grafika
maxmoon
2012-04-24


Najnowsza tapeta
Nunas
2011-09-15
Modelowanie kubka

Dla kogo jest przeznaczony ten tutorial?

Dla osób, które dopiero niedawno zaczęły zabawę z POV-Ray'em - mają opanowane jego podstawy, wiedzą, co to jest cylinder i mają ochotę poznać nową funkcje, jaką jest blob.

Co znajdziesz w tym tutorialu?

  1. Podstawy modelowania [teksturami zajmiemy się w innym tutorialu].
  2. Obsługa funkcji blob [główne parametry i możliwości].

Zaczynamy:

Krok 1: Założenia podstawowe:

Na samym początku trzeba stworzyć nową scenę [jak to zrobić jest już chyba oczywiste].
Do naszej sceny użyjemy: - pliku z gotowymi pre-definiowanymi kolorami
  
  #include "colors.inc"
  
- światła:
  
  light_source { < 0.00, 50.00,  -50.00> color White }
  
- kamery:
  
  camera { location < 0.00, 15.00,  -20.00> look_at < 0.00, 0.00, 12.50> }
  
- podłogi:
  
  plane {y, 0.00 texture {pigment {Gray45}} }
  
- tła:
  
  background { color Gray45}
  
Cały kod powinien wyglądać następująco:
  
  #include "colors.inc"
  camera { 
   location < 0.00, 15.00,  -20.00> 
   look_at < 0.00, 0.00, 12.50> }
  light_source { < 0.00, 50.00,  -50.00> color White }
  plane {y, 0.00 texture {pigment {White}} }
  background { color White }
  

Krok 2: Stworzenie kubka z cylindrów [cylinder]:

Teraz, gdy już mamy założenia początkowe można zacząć coś modelować, w naszym przypadku będzie to kubek z uchem.

To, co widać na rysunku trzeba uzyskać, aby funkcja blob mogła poprawnie zadziałać. Aby to uzyskać należy stworzyć 7 cylindrów: - cylinder 1 [główna bryła kubka]:
  
  cylinder { < 0.00, 0.00, 0.00> < 0.00, 8.50, 0.00> 3.50 texture {pigment{White}} }
  
- cylinder 2 [wycięcie wnętrza kubka]:
  
  cylinder { < 0.00, 0.50, 0.00> < 0.00,  10.00, 0.00> 3.30 texture {pigment{White}} }
  
- cylinder 3:
  
  cylinder { < 3.45, 7.00, 0.00> < 4.40, 7.50, 0.00> 0.50 texture {pigment{White}} }
  
- cylinder 4:
  
  cylinder { < 4.40, 7.50, 0.00> < 5.45, 7.00, 0.00> 0.50 texture {pigment{White}} }
  
- cylinder 5:
  
  cylinder { < 5.45, 2.55, 0.00> < 5.45, 6.95, 0.00> 0.50 texture {pigment{White}} }
  
- cylinder 6:
  
  cylinder { < 4.40, 1.00, 0.00> < 5.45, 2.50, 0.00> 0.50 texture {pigment{White}} }
  
- cylinder 7:
  
  cylinder { < 3.45, 1.50, 0.00> < 4.40, 1.00, 0.00> 0.50 texture {pigment{White}} }
  

Cały kod powinien wyglądać następująco:
  
  #include "colors.inc"
  
  camera { location < 0.00, 15.00,  -20.00> look_at < 0.00, 0.00, 12.50> }
  
  light_source { < 0.00, 50.00,  -50.00> color White }
  
  plane {y, 0.00 texture {pigment {Gray45}} }
  background { color Gray45}
  
  cylinder { < 0.00, 0.00, 0.00> < 0.00, 8.50, 0.00> 3.50 texture {pigment{White}} }
  cylinder { < 0.00, 0.50, 0.00> < 0.00,  10.00, 0.00> 3.30 texture {pigment{White}} }
  
  cylinder { < 3.45, 7.00, 0.00> < 4.40, 7.50, 0.00> 0.50 texture {pigment{White}} }
  cylinder { < 4.40, 7.50, 0.00> < 5.45, 7.00, 0.00> 0.50 texture {pigment{White}} }
  
  cylinder { < 5.45, 2.55, 0.00> < 5.45, 6.95, 0.00> 0.50 texture {pigment{White}} }
  
  cylinder { < 4.40, 1.00, 0.00> < 5.45, 2.50, 0.00> 0.50 texture {pigment{White}} }
  cylinder { < 3.45, 1.50, 0.00> < 4.40, 1.00, 0.00> 0.50 texture {pigment{White}} }
  
A tak wygląda efekt po renderze:


Krok 3: Funkcja blob:

Gdy już mamy stworzony model z cylindrów możemy użyć funkcji blob. Zapewne nie wiecie, co to jest blob, do czego on służy i jakie ma parametry. Po kolei, blob jest to funkcja do "zaokrąglania" i "płynnego łączenia" pewnych brył, sphere i cylinder. Jest zapisywany następująco:
  
  blob { threshold [parametr 1]
    sphere { <  [...], [...], [...]>  [...],[parametr 2] }
    sphere { <  [...], [...], [...]>  [...],[parametr 2] }
    cylinder { <  [...], [...], [...]> <  [...], [...], [...]>  [...],[parametr 2] } }
  
To, co znajduje się w [...] są to standardowe parametry brył i ich promienie, natomiast [parametr 1] i [parametr 2] są to współczynniki należące do funkcji blob.
  • [parametr 1] jest to liczba z zakresu [0.001 do 1 i w górę, ale czym więcej 1 tym efekt jest bardziej dziwny] jest to parametr odpowiadający za "płynne połączenie" całej bryły, wygładzenie wszystkich ostrych krawędzi i nadanie bryle ogólnie delikatnego kształtu.
  • [parametr 2] jest to liczba z zakresu [liczb naturalnych], odpowiada za "wygładzenie" danej bryły, czym większy tym stopień nadania obłości jest większy, rozróżnia się parametr dodatni i ujemny. Dodatni świadczy o tym, iż figura jest widoczna [przypadek B], natomiast ujemny świadczy o tym, że ta figura staje się odjemną przypadek C]. To, co napisałem jest tylko pomocą w zrozumieniu całej funkcji, najlepiej poznaje się, blob'a poprzez eksperymenty z parametrami i różne sposoby ustawienia brył.


    Nasz kod kubka po przekształceniu na kod blob'a będzie wyglądał następująco:
      
      blob { threshold 0.01
      cylinder { < 0.00, 0.00, 0.00> < 0.00, 8.50, 0.00> 3.50, 3.00 texture {pigment{White}} }
      cylinder { < 0.00, 0.50, 0.00> < 0.00, 10.00, 0.00> 3.30,-5.00 texture {pigment{White}} }
      
      cylinder { < 3.45, 7.00, 0.00> < 4.40, 7.50, 0.00> 0.50, 2.00 texture {pigment{White}} }
      cylinder { < 4.40, 7.50, 0.00> < 5.45, 7.00, 0.00> 0.50, 2.00 texture {pigment{White}} }
      
      cylinder { < 5.45, 2.55, 0.00> < 5.45, 6.95, 0.00> 0.50, 2.00 texture {pigment{White}} }
      
      cylinder { < 4.40, 1.00, 0.00> < 5.45, 2.50, 0.00> 0.50, 2.00 texture {pigment{White}} }
      cylinder { < 3.45, 1.50, 0.00> < 4.40, 1.00, 0.00> 0.50, 2.00 texture {pigment{White}} } 
      }
      
    

    Na koniec cały projekt powinien wyglądać następująco:
      
      #include "colors.inc"
      
      camera { location < 0.00,  15.00, -20.00> look_at < 0.00, 0.00, 12.50> } 
      
      light_source { < 0.00, 50.00,  -50.00> color White }
      
      plane {y, 0.00 texture {pigment {Gray45}} }
      background { color Gray45 }
      
      blob { threshold 0.01
      cylinder { < 0.00, 0.00, 0.00> < 0.00, 8.50, 0.00> 3.50, 3.00 texture {pigment{White}} }
      cylinder { < 0.00, 0.50, 0.00> < 0.00, 10.00, 0.00> 3.30,-5.00 texture {pigment{White}} }
      
      cylinder { < 3.45, 7.00, 0.00> < 4.40, 7.50, 0.00> 0.50, 2.00 texture {pigment{White}} }
      cylinder { < 4.40, 7.50, 0.00> < 5.45, 7.00, 0.00> 0.50, 2.00 texture {pigment{White}} }
      
      cylinder { < 5.45, 2.55, 0.00> < 5.45, 6.95, 0.00> 0.50, 2.00 texture {pigment{White}} }
      
      cylinder { < 4.40, 1.00, 0.00> < 5.45, 2.50, 0.00> 0.50, 2.00 texture {pigment{White}} }
      cylinder { < 3.45, 1.50, 0.00> < 4.40, 1.00, 0.00> 0.50, 2.00 texture {pigment{White}} } 
      }
      
    

    A tak wygląda efekt po renderze:




    Mam nadzieję, że tutorial się przydał, tak jak pisałem najlepiej poeksperymentować i na pewno szybko się załapie, o co chodzi.

    Pytania uwagi i komentarze kierujcie na forum temat Tutoriale.

    Powodzenia w pracy.

  • © druidy.pl

    Korzystając z witryny bez zmiany ustawień przeglądarki wyrażasz zgodę na użycie plików cookies. W każdej chwili możesz swobodnie zmienić ustawienia przeglądarki decydujące o ich zapisywaniu.