Emacs Artificial General Intelligence Algorithmic Game Theory: Prediction Markets (po polsku) Systemy Inteligentnych Agentów
|
ProgFun.Raytracer HistoryHide minor edits - Show changes to output Changed lines 86-88 from:
to:
Teraz trwaja prace nad strumieniem promieni i implementacja modelu Phonga (modelowanie odbicia swiatla), czyli to co potrzebne, aby moc cokolwiek zobaczyc ;-) Sczegoly techniczne - reprezentacja kd-drzewa: Changed lines 89-99 from:
type bounding_box = { near : float; bottom : float; top : float; } type kd_tree = KD_Empty | KD_Leaf of shape list * bounding_box | KD_Branch of kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * bounding_box to:
type bounding_box = { near : float; far : float; left : float; right : float; bottom : float; top : float; } type kd_tree = KD_Empty | KD_Leaf of shape list * bounding_box | KD_Branch of kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * bounding_box (* t1 t2 t3 t4 b1 b2 b3 b4 *) Changed lines 81-100 from:
oraz wektora wyznaczajacego kierunek ruchu) oraz kd-drzewo i zwraca liste zdarzen. to:
oraz wektora wyznaczajacego kierunek ruchu) oraz kd-drzewo i zwraca liste zdarzen.\\ W ogolnym przypadku rozstrzyganie przeciec bryl czy zawierania nie jest takie trywialne,\\ wiec ogranicze sie do kuli, trojkata, kola, prostokata, tym bardziej ze planuje zrobic\\ elementy CSG (constructive solid geometry) czyli tworzenie ksztaltow na bazie prymitwow geometrycznych\\ przy pomocy operacji boolowskich. Reprezentacja kd-drzewa: type bounding_box = { near : float; far : float; left : float; right : float; bottom : float; top : float; } type kd_tree = KD_Empty | KD_Leaf of shape list * bounding_box | KD_Branch of kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * kd_tree * bounding_box (* t1 t2 t3 t4 b1 b2 b3 b4 *) ;; Changed lines 68-81 from:
wygodniejsze. to:
wygodniejsze. 26 grudnia 2006 Powstal interpreter jezyka opisu sceny, ktory zwraca liste obiektow sceny oraz wspolrzedne\\ bryly szesciennej zawierajacej wszystkie obiekty. Jest tez funkcja tworzaca kd-drzewo\\ czyli osemkowy podzial przestrzeni, zawartej w powyzszej bryle szesciennej. Bazowa bryla\\ dzielona jest na 8 bryl, ktore rekurencyjnie takze dzielone sa na 8 bryl. Glebokosc rekursji\\ ustalana jest na podstawie ilosci obiektow i ich rozproszenia. Zmiejszy to znacznie koszt obliczen,\\ gdyz dla danego promienia sprawdza sie wtedy przez ktore bryly przelatuje, a nastepnie szuka sie zdarzen\\ (odbicia, zalamania itd.) tylko z obiektami znajdujacymi sie w brylach do ktorych promien wlatuje.\\ Plaszczyzny podzialu bryl sa usrednianymi plaszczyznami sasiadujacymi (byc moze da sie to zrobic lepiej :) ). \\ Jest tez funkcja, ktora jako argument pobiera promien (reprezentowany w postaci punktu bedacego jego zrodlem,\\ oraz wektora wyznaczajacego kierunek ruchu) oraz kd-drzewo i zwraca liste zdarzen. Changed lines 5-8 from:
Czym jest ray tracing mozna sie z grubsza dowiedziec tutaj: [[http://pl.wikipedia.org/wiki/Ray_Tracing]] O programie, na którym bede sie wzorowal mozna poczytac tutaj: [[http://pl.wikipedia.org/wiki/POV-Ray]] A oto, co mozna stworzyc przy pomocy metody sledzenia promieni: [[http://hof.povray.org/]] to:
Czym jest ray tracing mozna sie z grubsza dowiedziec tutaj: [[http://pl.wikipedia.org/wiki/Ray_Tracing]]\\ O programie, na którym bede sie wzorowal mozna poczytac tutaj: [[http://pl.wikipedia.org/wiki/POV-Ray]]\\ A oto, co mozna stworzyc przy pomocy metody sledzenia promieni: [[http://hof.povray.org/]]\\ Changed lines 15-16 from:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy to:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy\\ Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze\\ Changed lines 13-16 from:
Zdefiniowalem typy dla elementów sceny, czyli: promien, zródlo swiatla, material powierzchni, ksztalty (narazie tylko proste bryly typu sfera, walec, stozek, etc. gdyz latwo jest wyznaczyc wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze to:
Zdefiniowalem typy dla elementów sceny, czyli: promien, zródlo swiatla, material powierzchni,\\ ksztalty (narazie tylko proste bryly typu sfera, walec, stozek, etc. gdyz latwo jest wyznaczyc\\ wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy \\Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze\\ sfera. Obecnie pracuje nad jezykiem opisu sceny i jego parserem. Changed lines 56-59 from:
Tych kilka prostych konstrukcji skladniowych wystarczy, aby zdefiniowac polozenie kamery wraz z kierunkiem obserwacji, zrodel swiatla wraz z kolorem oraz kilku prostych obiektow geometrycznych, w ktorych material jest zdefiniowany jako kolor + polysk. to:
Tych kilka prostych konstrukcji skladniowych wystarczy, aby zdefiniowac polozenie kamery wraz\\ z kierunkiem obserwacji, zrodel swiatla wraz z kolorem oraz kilku prostych obiektow geometrycznych,\\ w ktorych material jest zdefiniowany jako kolor + polysk.\\ Pozostaje napisac lekser + parser. Ostatnim razem gdy pisalem lekser, napisalem go (w C#) jako\\ obiekt, który podczas wywolania metody NextToken() tworzyl na zadanie parsera token przetwarzajac\\ kolejny fragment pliku, po czym zatrzymywal sie, az do nastepnego wywolania NextToken(). Tym razem\\ Changed lines 1-3 from:
Zainteresowanie ray tracingiem pojawilo sie wiele lat temu, kiedy poznalem program do ray tracingu o nazwie POV-Ray. Dlugo jednak nie mialem odpowiedniej wiedzy, aby taki program napisac. to:
Zainteresowanie ray tracingiem pojawilo sie wiele lat temu, kiedy poznalem program do ray tracingu\\ o nazwie POV-Ray. Dlugo jednak nie mialem odpowiedniej wiedzy, aby taki program napisac.\\ Na szczescie sytuacja sie zmienila i pomyslalem, ze ciekawie bedzie napisac ray-tracer w funkcyjnym jezyku. Changed lines 60-61 from:
type token_stream = EOS | TStream of token * to:
type token_stream = EOS | TStream of token * (unit -> token_stream) ;; Changed line 57 from:
Pozostaje napisac lekser + parser. Ostatnim razem gdy pisalem lekser, napisalem go (w C#) jako obiekt, który podczas wywolania metody NextToken() tworzyl na zadanie parsera token przetwarzajac kolejny fragment pliku, po czym zatrzymywal sie, az do nastepnego wywolania NextToken(). Tym to:
Pozostaje napisac lekser + parser. Ostatnim razem gdy pisalem lekser, napisalem go (w C#) jako obiekt, który podczas wywolania metody NextToken() tworzyl na zadanie parsera token przetwarzajac kolejny fragment pliku, po czym zatrzymywal sie, az do nastepnego wywolania NextToken(). Tym razem Changed line 62 from:
A to:
A wiec jako pare (aktualny_token, ogon_strumienia). Pomyslalem ze specyfikacja bedzie przez to czytelniejsza, a samo korzystanie z leksera w parserze Changed lines 60-62 from:
type token_stream = EOS | TStream of token * token_stream Pomyslalem to:
type token_stream = EOS | TStream of token * token_stream ;; A więc jako parę (aktualny_token, ogon_strumienia). Pomyslalem ze specyfikacja bedzie przez to czytelniejsza, a samo korzystanie z leksera w parserze Changed lines 60-61 from:
type token_stream = EOS | TStream of token * token_stream to:
type token_stream = EOS | TStream of token * token_stream Changed lines 18-19 from:
Ulozylem wstepna wersje jezyka opisu sceny, to:
Ulozylem wstepna wersje jezyka opisu sceny, ktorego skladnia jest nastepujaca: Changed line 54 from:
Tych kilka prostych konstrukcji skladniowych wystarczy, aby zdefiniowac polozenie kamery wraz to:
Tych kilka prostych konstrukcji skladniowych wystarczy, aby zdefiniowac polozenie kamery wraz Changed lines 56-63 from:
w ktorych material jest zdefiniowany jako kolor + polysk. to:
w ktorych material jest zdefiniowany jako kolor + polysk. Pozostaje napisac lekser + parser. Ostatnim razem gdy pisalem lekser, napisalem go (w C#) jako obiekt, który podczas wywolania metody NextToken() tworzyl na zadanie parsera token przetwarzajac kolejny fragment pliku, po czym zatrzymywal sie, az do nastepnego wywolania NextToken(). Tym razej jednak postanowilem reprezentowac lekser jako strumien w postaci: type token_stream = EOS | TStream of token * token_stream ;; Pomyslalem ze specyfikacja bedzie przez to czytelniejsza, a samo korzystanie z leksera w parserze wygodniejsze. Changed lines 21-22 from:
camera <loc[x, y, z], l_at[x to:
camera <loc[x, y, z], l_at[x, y, z]> Changed lines 30-31 from:
// tours <ctr[x, y, z], rd1[ // con <ctr[x, y, z], rd[v], nd[v to:
// tours <ctr[x, y, z], rd1[v], rd2[v]> // con <ctr[x, y, z], rd[v], nd[v]> Changed line 4 from:
[ to:
[= Changed lines 8-9 from:
to:
=] Changed line 4 from:
[ to:
[@ Changed lines 8-9 from:
to:
@] Added line 4:
[= Deleted line 5:
Deleted line 6:
Changed lines 8-9 from:
to:
=] Added line 38:
Changed lines 29-30 from:
[@ to:
[@ // 'shape_def' is either of: Changed lines 33-35 from:
// con <ctr[x, y, z], rd[v], nd[v']> [ to:
// con <ctr[x, y, z], rd[v], nd[v']> @] [@#@] Changed line 38 from:
to:
[@ Changed lines 53-54 from:
to:
@] Changed line 29 from:
[ to:
[@ // 'shape_def' is either of: Changed lines 32-33 from:
// con <ctr[x, y, z], rd[v], nd[v']> to:
// con <ctr[x, y, z], rd[v], nd[v']> @] Changed lines 29-33 from:
[= // 'shape_def' is either of: [= // [= // [= to:
[= // 'shape_def' is either of: // sphere <ctr[x, y, z], rd[v]> // tours <ctr[x, y, z], rd1[v1], rd2[v2]> // con <ctr[x, y, z], rd[v], nd[v']> =] Changed lines 29-37 from:
// 'shape_def' is either of: // // // [@ to:
[= // 'shape_def' is either of: =] [= // sphere <ctr[x, y, z], rd[v]> =] [= // tours <ctr[x, y, z], rd1[v1], rd2[v2]> =] [= // con <ctr[x, y, z], rd[v], nd[v']> =] [= # =] Changed line 37 from:
# to:
[= # =] Changed line 56 from:
z kierunkiem obserwacji, to:
z kierunkiem obserwacji, zrodel swiatla wraz z kolorem oraz kilku prostych obiektow geometrycznych, Changed lines 50-51 from:
# - znacznik to:
# - znacznik konca kodu Changed lines 16-54 from:
to:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie pracuje nad jezykiem opisu sceny i jego parserem. 23 listopada 2006 Ulozylem wstepna wersje jezyka opisu sceny, ktrego skladnia jest nastepujaca: -------------------------------------------------- camera <loc[x, y, z], l_at[x', y', z']> light <loc[x, y, z], clr[r, g, b]> object <'shape_def', mtr[r, g, b, s]> // 'shape_def' is either of: // sphere <ctr[x, y, z], rd[v]> // tours <ctr[x, y, z], rd1[v1], rd2[v2]> // con <ctr[x, y, z], rd[v], nd[v']> # -------------------------------------------------- legenda: loc - location l_at - look_at ctr - center rd - radius nd - node mtr - material clr - color r - red g - green b - blue s - shininess // - komentarz # - znacznik końca kodu Tych kilka prostych konstrukcji skladniowych wystarczy, aby zdefiniowac polozenie kamery wraz z kierunkiem obserwacji, zrodlel swiatla wraz z kolorem oraz kilku prostych obiektow geometrycznych, w ktorych material jest zdefiniowany jako kolor + polysk. Changed lines 2-3 from:
o nazwie POV-Ray. Dlugo jednak nie mialem odpowiedniej wiedzy, aby taki program napisac. Na szczescie sytuacja sie zmienila i pomyslalem, ze ciekawie bedzie napisac ray-tracer w to:
o nazwie POV-Ray. Dlugo jednak nie mialem odpowiedniej wiedzy, aby taki program napisac. Na szczescie sytuacja sie zmienila i pomyslalem, ze ciekawie bedzie napisac ray-tracer w funkcyjnym jezyku. Changed lines 16-17 from:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie pracuje nad jezykiem opisu sceny i jego parserem. to:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie pracuje nad jezykiem opisu sceny i jego parserem. Changed line 16 from:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie to:
wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i powierzchnie B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie Changed line 14 from:
Zdefiniowalem typy dla elementów sceny, czyli: promien to:
Zdefiniowalem typy dla elementów sceny, czyli: promien, zródlo swiatla, material powierzchni, Changed lines 1-2 from:
Zainteresowanie ray tracingiem pojawilo sie wiele lat temu, kiedy poznalem program do ray tracingu to:
Zainteresowanie ray tracingiem pojawilo sie wiele lat temu, kiedy poznalem program do ray tracingu o nazwie POV-Ray. Dlugo jednak nie mialem odpowiedniej wiedzy, aby taki program napisac. Na szczescie sytuacja sie zmienila i pomyslalem, ze ciekawie bedzie napisac ray-tracer w funkcjonalnym jezyku. Changed lines 3-8 from:
Czym jest ray tracing O programie, na którym A oto, co to:
Czym jest ray tracing mozna sie z grubsza dowiedziec tutaj: [[http://pl.wikipedia.org/wiki/Ray_Tracing]] O programie, na którym bede sie wzorowal mozna poczytac tutaj: [[http://pl.wikipedia.org/wiki/POV-Ray]] A oto, co mozna stworzyc przy pomocy metody sledzenia promieni: [[http://hof.povray.org/]] Changed lines 1-2 from:
Zainteresowanie ray tracingiem to:
Zainteresowanie ray tracingiem pojawilo sie wiele lat temu, kiedy poznalem program do ray tracingu o nazwie POV-Ray. Dlugo jednak nie mialem odpowiedniej wiedzy, aby taki program napisac. Na szczescie sytuacja sie zmienila i pomyslalem, ze ciekawie bedzie napisac ray-tracer w funkcjonalnym jezyku. Changed lines 9-13 from:
to:
Postep projektu: 21 listopada 2006 Zdefiniowalem typy dla elementów sceny, czyli: promien;, zródlo swiatla, material powierzchni, ksztalty (narazie tylko proste bryly typu sfera, walec, stozek, etc. gdyz latwo jest wyznaczyc wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie pracuje nad jezykiem opisu sceny i jego parserem. Changed line 13 from:
to:
Zdefiniowalem typy dla elementów sceny, czyli: promien;, zródlo swiatla, material powierzchni, ksztalty (narazie tylko proste bryly typu sfera, walec, stozek, etc. gdyz latwo jest wyznaczyc wektor normalny do powierzchni w punkcie oraz przeciecie z promieniem, ale w planach mam tez platy Beziera i B-sklejane). Jest tez funkcja rozstrzygajaca przeciecie promienia ze sfera. Obecnie pracuje nad jezykiem opisu sceny i jego parserem. Added lines 9-13:
Postęp projektu: ****** 21 listopada 2006 ********** Zdefiniowałem typy dla elementów sceny, czyli: promień, źródło światła, materiał powierzchni, kształty (narazie tylko proste bryły typu sfera, walec, stożek, etc. gdyż łatwo jest wyznaczyć wektor normalny do powierzchni w punkcie oraz przecięcie z promieniem, ale w planach mam też płaty Beziera i B-sklejane). Jest też funkcja rozstrzygająca przecięcie promienia ze sferą. Obecnie pracuję nad językiem opisu sceny i jego parserem. Added line 4:
Changed lines 6-8 from:
A oto, co można stworzyć przy pomocy metody śledzenia promieni: [[http://hof.povray.org/]] to:
A oto, co można stworzyć przy pomocy metody śledzenia promieni: [[http://hof.povray.org/]] Changed lines 1-5 from:
to:
Zainteresowanie ray tracingiem pojawiło się wiele lat temu, kiedy poznałem program do ray tracingu o nazwie POV-Ray. Długo jednak nie miałem odpowiedniej wiedzy, aby taki program napisać. Na szczęście sytuacja się zmieniła i pomyślałem, że ciekawie będzie napisać ray-tracer w funkcjonalnym języku. Czym jest ray tracing można się z grubsza dowiedzieć tutaj: [[http://pl.wikipedia.org/wiki/Ray_Tracing]] O programie, na którym będę się wzorował można poczytać tutaj: [[http://pl.wikipedia.org/wiki/POV-Ray]] A oto, co można stworzyć przy pomocy metody śledzenia promieni: [[http://hof.povray.org/]] |