Bez ograniczeń prędkości

Grafika na poziomie, wciąż uchodzącego za wzór doskonałości, "Parku jurajskiego" w niedalekiej przyszłości zagości w naszych pecetach - tego próbują dowieść demonstracje dostarczane razem z najnowszymi kartami graficznymi. Już dziś postęp w dziedzinie kart graficznych przyprawia o zawrót głowy.

Grafika na poziomie, wciąż uchodzącego za wzór doskonałości, "Parku jurajskiego" w niedalekiej przyszłości zagości w naszych pecetach - tego próbują dowieść demonstracje dostarczane razem z najnowszymi kartami graficznymi. Już dziś postęp w dziedzinie kart graficznych przyprawia o zawrót głowy.

Nowoczesne karty graficzne osiągnęły taki stopień zaawansowania, że w prostej grafice dwuwymiarowej nawet nie ma sensu mierzyć różnic wydajności między poszczególnymi modelami. Każdy, nawet bardzo tani model spełnia bowiem zazwyczaj wszystkie wymagania związane z pracą w Windows z aplikacjami biurowymi.

Prawdziwym wyzwaniem pozostaje tworzenie grafiki trójwymiarowej. Na tym polu popis inwencji twórczej dają inżynierowie opracowujący nowe układy graficzne. A trzeba przyznać, że mają niebagatelne zadanie.

Obraz 3D czy 2D?

Gdy zaczniemy się zastanawiać nad sposobami powstawania obrazu 3D, pojawi się naturalne pytanie o sens określenia "grafika 3D". Przecież dwuwymiarowa natura wyświetlaczy, których używamy, fizycznie nie pozwala na przedstawianie obrazu w trzech wymiarach.

Oczywiste jest zatem, że określenie "obraz 3D" to skrót myślowy oznaczający próbę symulowania w dwóch wymiarach obrazu przestrzennego. Aby ta próba była w miarę udana, konieczne jest przeprowadzenie paru operacji w ściśle określonej kolejności.

Plan jest podstawą

Aby tworzenie trójwymiarowej sceny w ogóle mogło się rozpocząć, niezbędny jest opis znajdujących się w niej obiektów. Opis ten można porównać do planów architektonicznych. Tworzy się go, podając trzy współrzędne (X,Y,Z) wierzchołków obiektów znajdujących się w danej scenie.

Opisany w ten sposób obraz byłby jednak całkowicie statyczny, a przecież chodzi o jak najbardziej rzeczywistą, animowaną grafikę 3D. Zmieniać się może zarówno położenie obiektów w scenie, jak i punkt widzenia obserwatora.

Transformacja = animacja

Gdy współrzędne wierzchołków obiektów są już znane, rozpoczyna się pierwsza ważna faza tworzenia animowanej grafiki trójwymiarowej - transformacja. Jest to zbiorcza nazwa, obejmująca trzy operacje, których celem jest ustawienie geometrii sceny. Efektem transformacji będzie również zbiór współrzędnych opisujących wierzchołki obiektów, ale po uwzględnieniu ich ruchu i miejsca obserwatora.

Pierwsza z tych operacji to <font color="red">skalowanie. Jak sugeruje nazwa, rozmiary obiektów są zmienianie w taki sposób, aby odpowiadały ich umiejscowieniu w scenie. Po skalowaniu następują <font color="red">translacje, czyli przesunięcia obiektów do odpowiednich pozycji. Ostatnim elementem transformacji są <font color="red">rotacje, czyli obracanie obiektów zgodnie z wymogami sceny 3D w danej chwili.

Na tym etapie odbywa się też kadrowanie sceny, czyli usuwanie z niej tych elementów, które są poza polem widzenia obserwatora. Dzięki temu zmniejsza się liczba obiektów, które będą przetwarzane w kolejnych fazach, co przyśpiesza cały proces renderingu. Należy podkreślić, że na tym etapie brane jest pod uwagę tylko pole widzenia obserwatora, a nie wzajemne położenie obiektów. Nawet jeśli któryś z nich jest całkowicie zasłonięty przez inne, ale nie wykracza poza kadr, wówczas zostanie uwzględniony w dalszych obliczeniach.

Gdy geometria sceny jest już gotowa, przychodzi czas na jej oświetlenie. Polega to na przypisaniu każdemu wierzchołkowi odpowiedniego wektora oznaczającego natężenie światła w danym miejscu. Wartości światła wewnątrz trójkątów są interpolowane na podstawie oświetlenia zdefiniowanego dla poszczególnych wierzchołków. Pozwala to na płynne przejścia świetlne między poszczególnymi trójkątami. Te metoda oświetlania i cieniowania nazywa się <font color="red">cieniowaniem Gourauda.

Sprawa jest najprostsza w przypadku jednego źródła światła monochromatycznego. Oświetlone w ten sposób obiekty jeszcze przed nałożeniem na nie tekstur składałby się z płaszczyzn w różnych odcieniach szarości. Oczywiście im więcej źródeł światła, tym obliczenie oświetlenia w danym punkcie staje się trudniejsze.

Najnowsze akceleratory (GeForce 2 GTS i Radeon) pozwalają wykorzystać jeszcze jeden typ oświetlenia, umożliwiający definiowanie wektorów oświetlenia dla poszczególnych pikseli składających się na obiekt 3D (ang. per pixel lighting), a nie tylko dla wierzchołków. Dzięki takiemu podejściu możliwe jest znacznie lepsze uwzględnienie pozycji obserwatora względem widzianych przez niego obiektów.

W przypadku starszych akceleratorów grafiki 3D, takich jak karty oparte na układach TNT 2, a także w przypadku nowszych kart niektórych producentów (na przykład wszystkie karty 3dfx) za transformacje i oświetlenie obiektów odpowiedzialny jest procesor komputera. Łatwo sobie wyobrazić, że w przypadku dużej liczby poruszających się obiektów zadanie to niezwykle obciąża jednostkę centralną, niewiele czasu pozostawiając na innego rodzaju operacje.

Dlatego w nowszych kartach, opartych na układach z serii GeForce bądź Radeon, zadanie to zostało przejęte przez akcelerator grafiki 3D. Wyposażono je w mechanizmy oznaczane skrótem T&L (Transform & Lighting), odpowiedzialne za obliczenia związane z transformacjami obiektów i ich oświetleniem. Praktycznie wszystkie nowoczesne układy graficzne, które pojawią się na rynku w najbliższych miesiącach, będą już wyposażone w silniki T&L.


Zobacz również