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ę...




Porady

Animacja - przechowywanie zmiennych - 2006-10-26

[quote]Przy zapisywaniu wartości do pliku nie zapomnij wstawić na końcu przecinka[/quote]

W povray podczas animacji nie jest tak prosto przekazywać zmienne, a to dlatego, że animacja jest niczym innym jak sekwencyjnym wywołaniem tego samemo plku (zmienia się wtedy kilka zmiennych takich jak [b]clock frame_number[/b] etc. Jeżeli chcielibyśmy przekazać zestaw zmiennych z jednej klatki do drugiej można posłużyć się plikiem pomocniczym

Poniżej przykładowe macra, które zapisują i odczytują tablicę.

  #macro mc_wczytaj_tablice(_tab, _plik)
          #local _ile=dimension_size(_tab,1);
          #local _in=0;
          #fopen _f_plik _plik read 
          #while (defined(_f_plik))
                  #if(_in<_ile)
                          #read (_f_plik, _tab[_in])
                  #else
                          #read (_f_plik,_temp)
                  #end
                  #local _in=_in+1;
          #end
  #end
  
  #macro mc_zapisz_tablice(_tab, _plik)
          #local _ile=dimension_size(_tab,1);
          #local _in=0;
          #fopen _f_plik _plik write 
          #while (_in<_ile)
                  #write (_f_plik,_tab[_in],",\n") 
                  #local _in=_in+1;
          #end
  #end


A teraz macro kótre jest użyte w animacji :-)

  #macro mc_rd_ustawNogi(__tab, __ffps, __klatka)
          #local _cykl=3*__ffps; // 3sek trwa pelen cykl 
          #local _pozycja=<0,0,0>;
          
          #if (__klatka != 0 & __klatka != 1)
            #fopen _fRadek "rd_tymczas.txt" read
            #read (_fRadek,_pozycja,_kierunek)
            #fclose _fRadek
            mc_wczytaj_tablice(__tab, "rd_tab_tymczas.txt")
          #else
            #local _pozycja=<-45,40,5>;  // Na razie nie uzywane
            #local  _kierunek=1;          //  1 - lewa noga zwieksza kat, prawa mniejszaa 
                                           // -1 - lewa nowa zmniejsza kat, prawa zmniejsza
          #end
          
          
          #local _od_udo_p=<45,0,0>; // ile do przodu sie duo wychyla
          #local _od_udo_t=<-45,0,0>; // ile do tylu się wychyla udo
          
          #local _de_udo= (_od_udo_p.x-_od_udo_t.x)/(_cykl/2);
          #declare __tab[43]=<__tab[43].x+(_de_udo*_kierunek),0,0>;
          
          #fopen _fRadek "rd_tymczas.txt" write
          #write (_fRadek,_pozycja,",",_kierunek, "\n")
          #fclose _fRadek
          mc_zapisz_tablice(__tab, "rd_tab_tymczas.txt")
  #end
  
  mc_rd_ustawNogi(Tablica, 24, frame_number)
  


Do czego to użyć..
Załóżmy, że tworzymy animację odbijające się kulki, odbija się ona od ścian i losowo rozmieszczonych boxów. kulka ma swoją prędkość i jakis kierunek.
Kierunku nie jesteśmy w stanie uzależnić ani od frame_number, ani od clock, ponieważ kulka jak w czasie ruchu natrafi na box to zmienia kierunek.. tak wiec wiemy ze możemy ją poruszyć ale kierunek jest zmienny. i aby animacja miała sens musimy pamietać jej kierunek i pozycje...


Bardzo dobry przykład znajduje się w gotowych scenach (katalog scenes) plik nazywa się bounce.pov.

Jeżeli potrzebne jest dokładniejsze wyjaśnienie wyżej wymienionych macr proszę napisać to objasnie...

Macra te będę używał w chodzącym Radku Deklu.. ale to daleka jeszcze droga...
<< powrót
Najnowsza grafika
maxmoon
2012-04-24


Najnowsza tapeta
Nunas
2011-09-15


Najnowszy Act :-)

Adam.Druzd.pl
 
© 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.