O "śledzeniu promieni"

Lista polskojęzycznych publikacji zajmujących się grafiką komputerową jest dość uboga. Do niedawna jedyną poważną pozycją była wydana ładnych kilka lat temu w serii "Inżynieria Oprogramowania" książka dr M. Jankowskiego "Elementy grafiki komputerowej". W ub.r. wydawnictwo Intersoftland wydało podręcznik "Grafika komputerowa", w którym skupiono się na podstawach tej dziedziny. Wydaje się, że okres posuchy ma się ku końcowi. Ostatnio ukazały się dwie bardzo interesujące pozycje. Jedną z nich jest tłumaczenie książki Nicholasa Wilta "Object-Oriented Ray-Tracing in C++", czyli opis obiektowo zorientowanej metody śledzenia promieni zaimplementowanej w języku C++.

Lista polskojęzycznych publikacji zajmujących się grafiką komputerową jest dość uboga. Do niedawna jedyną poważną pozycją była wydana ładnych kilka lat temu w serii "Inżynieria Oprogramowania" książka dr M. Jankowskiego "Elementy ". W ub.r. wydawnictwo Intersoftland wydało podręcznik "Grafika komputerowa", w którym skupiono się na podstawach tej dziedziny. Wydaje się, że okres posuchy ma się ku końcowi. Ostatnio ukazały się dwie bardzo interesujące pozycje. Jedną z nich jest tłumaczenie książki Nicholasa Wilta "Object-Oriented Ray-Tracing in C++", czyli opis obiektowo zorientowanej metody śledzenia promieni zaimplementowanej w języku C++.

To jedna z nielicznych na świecie, a pierwsza w Polsce, publikacja, w której konsekwentnie i od początku aż do końca połączono teoretyczne i praktyczne zagadnienia grafiki komputerowej. Książka jest niemal w całości poświęcona napisanej przez autora bibliotece klas C++, realizującej algorytm śledzenia promieni. Każdemu teoretycznemu aspektowi towarzyszy omówienie praktycznej implementacji z pokazaniem odpowiedniego fragmentu kompletnego kodu źródłowego w C++. Właśnie ten dualizm jest największą zaletą omawianej książki. Z jednej strony obiektowe i jego zalety w praktycznym ujęciu, a z drugiej implementacja teoretycznych algorytmów grafiki komputerowej. Opisana biblioteka klas jest jedną z pierwszych prób zaimplementowania algorytmów renderingu, a metody śledzenia promieni w szczególności, za pomocą obiektowo zorientowanego języka programowania.

Autor przedstawił wiele ulepszeń algorytmu śledzenia promieni, mających za zadanie poprawić jego efektywność. Wiele miejsca poświęcono omówieniu różnorodnych zagadnień dotyczących grafiki komputerowej, takich jak np. tworzenie tekstur, budowanie złożonych brył i obiektów matematycznych czy metody radzenia sobie z aliasingiem. Każdemu z tych fragmentów książki towarzyszy opis klas i procedur realizujących omawiane funkcje. Publikację uzupełnia zwięzłe wprowadzenie do języka C++, szczegółowy opis biblioteki OORT, słowniczek oraz wiele innych dodatków.

Żałować można jedynie, że do książki nie dołączono dyskietki z kompletnym kodem źródłowym, zaprezentowanym w całości na jej stronicach. Można ją co prawda dokupić w wydawnictwie, ale nie wydaje się, by taka metoda stosunkowo niewielkiego obniżenia ceny całej książki, usprawiedliwiać miała utrudnienie życia jej Czytelnikom. Jest ona dedykowana przede wszystkim wszelakiej maści entuzjastom, którzy chcieliby sami tworzyć programy służące do wizualizacji obrazów grafiki trójwymiarowej. Trzeba pamiętać, że cała biblioteka jest zorientowana obiektowo, więc z definicji można ją łatwo rozbudowywać i modyfikować. Autor w wielu miejscach zachęca Czytelników do eksperymentów i samodzielnej pracy.

W książce zaprezentowano kilka gotowych obrazów za pomocą których zostały zademonstrowane możliwości programu. Niestety znajdują się one na kolorowej wkładce, którą dość niefortunnie umieszczono na samym końcu, skutkiem czego dość trudno ją odnaleźć (dla zainteresowanych między stronami 408 a 409 - opis w dodatku F).

Podstawowymi odbiorcami tej książki są studenci wydziałów informatycznych oraz Ci wszyscy, którzy są zainteresowani tworzeniem wirtualnego trójwymiarowego świata, a ich ambicje sięgają wyżej od korzystania z gotowych, komercyjnych programów.

Na zakończenie warto przytoczyć spis treści:

Wprowadzenie do grafiki trójwymiarowej, Wprowadzenie do ray-tracingu, Równanie oświetlenia, Rozmaite obiekty, Dopalacze, Teksturowanie, Rozproszony ray-tracing, Złożone obiekty.

Nicholas Wilt, Ray tracing obiektowo zorientowany z przykładami w języku C++. Wydawnictwo Translator (za zgodą John Wiley & Sons) 1994, str. 415 + kolorowa wkładka, cena hurtowa - 150 tys. zł.


TOP 200