Technologie i wydarzenia
Artykuł
Marcin Bieńkowski, Środa, 20 czerwca 2007, 09:30

W efektach 3D – trochę skromnie

W bibliotekach DirectX 10 znalazło się też kilka nowych efektów graficznych. Ich lista nie jest jednak imponująca w porównaniu ze zmianami, jakie były dokonywane w przeszłości. Ponieważ nie jest ich dużo, omówmy je po kolei.

Pierwszy z nowych efektów 3D to Alpha to Coverage. Technika ta służy do wygładzania krawędzi drobnych obiektów znajdujących się wewnątrz półprzezroczystych tekstur. Tekstury takie wykorzystuje się do rysowania siatek ogrodzeń, drutów, przewodów wiszących na słupach czy drobnych roślin – zwłaszcza źdźbeł trawy. Zaletą techniki Alpha to Coverage jest to, że pozwala ona szybko wygładzić krawędzie wspomnianych obiektów bez angażowania dużej mocy obliczeniowej. Antyaliasing wykonywany jest tutaj na małych obiektach wewnątrz tekstury przed nałożeniem ich na scenę 3D. Dzięki temu wygładzone już tekstury zawierające obiekty mogą być wielokrotnie nakładane na scenę. Co więcej, umieszczane są one w pamięci karty i stamtąd w razie potrzeby mogą być wyciągnięte i użyte do mapowania kolejnych scen.

W DX10 zaimplementowany też został ulepszony mechanizm rysowania obiektów w przypadkowych miejscach. Ta technika o nazwie instancing pojawiła już w bibliotekach DirectX 9. Niemniej, głównym usprawnieniem jest teraz to, że rysowane w przypadkowych miejscach obiekty nie muszą już zawierać tych samych tekstur. Podobny w działaniu jest mechanizm proceduralnej symulacji wzrostu (Procedural Growth Simulation). Dzięki tej technice można renderować rośliny należące do wodnych ekosystemów oraz, co ważne, symulować ich wzrost i zachodzące w nich zmiany za pomocą dosłownie kilku instrukcji obsługiwanych przez DirectX 10.


Instancing w DirectX10; źródło: Microsoft


Technika Procedural Growth Simulation; źródło: Microsoft

Nowym efektem wprowadzonym do DirectX 10 jest punktowe mapowanie przemieszczeń (Per-pixel Displacement Mapping). Jest to odmiana znanego już z DirectX 8 mapowania kierunkowego (Parallax Mapping). Na początku obliczana jest mapa wysokości, która obrazuje wszystkie nierówności i chropowatość powierzchni obiektu. Mapę tą łączy się następnie z nakładaną na przedmiot teksturą. Punktowe mapowanie przemieszczeń różni się od tradycyjnego mapowania kierunkowego tym, że odwzorowuje nierówności wyłącznie w tych miejscach, które są widoczne dla obserwatora. Dzięki temu jest ona znacznie szybsza, przy zachowaniu porównywalnego efektu końcowego.


Per-pixel Displacement Mapping w DirectX 10; źródło: Microsoft

Przy okazji efektów 3D warto wspomnieć o przełamaniu w DX10 istotnego ograniczenia, z jakim musieli się borykać programiści korzystający z dotychczasowych bibliotek graficznych. Tym ograniczeniem był limit 500 obiektów jednocześnie wyświetlanych na scenie 3D. Każdy przedmiot, pojazd, postać, roślina, kamień czy zwierzę traktowany jest jako jeden obiekt. W typowych grach nie ma to znaczenia, ale jeśli tylko chcemy odtworzyć gęsty las czy rój pszczół, zaczynają się problemy – liczba obiektów bardzo szybko przekroczy 500. Aby obejść to ograniczenie, programiści stosowali kopiowanie obiektów – kopia i jego obiekt traktowane są jako jeden obiekt, ale tak wygenerowany obraz traci na swoim realizmie. W DX10 nie ma już takich ograniczeń. Oznacza to, że programiści będą w stanie napisać znacznie bardzie realistyczne gry z ogromną liczbą obiektów wyświetlanych na ekranie, jednak aby skorzystać z tej możliwości, musi na to pozwolić wydajność karty 3D.

Ocena artykułu:
Ocen: 2
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Facebook
Ostatnio komentowane