Karty graficzne

Teselacja oraz displacement mapping

opublikowano przez w dniu 2010-03-26

Problematykę nowego API DirectX11 zdążyliśmy już pobieżnie omówić przy okazji premiery Radeonów HD 5800.

Póki co nie będziemy więc do tego wracać. Obydwie rodziny kart, zarówno ATI Radeon HD5000 jak i GeForce GTX 400, są zdolne do wykonywania kodu SM5.0, a więc powinny obsłużyć te same funkcje i efekty jakich programiści mogą użyć w grach pisanych pod DX11. Jedyną różnicą na jaką natrafimy może być co najwyżej wydajność obydwu konkurencyjnych silników, a największym wyzwaniem przed jakim obecnie stoją będzie oczywiście teselacja.

W starszych tytułach stosowanie teselacji, jeżeli nawet było możliwe, okazywało się niezbyt dobrym pomysłem. Związane to było z jednej strony z ograniczeniami samego API DirectX, a z drugiej słabymi możliwościami przetwarzania geometrycznego przez obecne wtedy na rynku układy graficzne.



Karty zgodne z DX11 mają już specjalizowane i jednocześnie wystarczająco wydajne jednostki geometryczne (w układzie zunifikowanym) oraz własne teselatory wspomagające proces podziału siatki na coraz to mniejsze wielokąty. Oczywiście sam proces teselacji nie będzie miał znaczącego wpływu na detaliczność generowanego obrazu jeżeli nie nałożymy na taką siatkę tzw. mapy przemieszczeń (displacement mapping). Teselacja ma za zadanie zaokrąglić wszelkie kanciaste powierzchnie (najczęściej brył przestrzennych), a nałożona nań mapa przemieszczeń - w postaci specjalnej tekstury - ma ukazać jak największą ilość szczegółów.


 
Model złożony z połączonych wierzchołków (z lewej), poddany  procesowi teselacji (w środku) oraz po nałożeniu mapy przemieszczeń (po prawej)

W GF100, dzięki opisanym wcześniej usprawnieniom w architekturze, zużycie zasobów GPU podczas tego procesu jest według producenta znacząco mniejsze aniżeli na konkurencyjnym Radeonie HD 5800. Dotyczy to przede wszystkim zużycia podsystemu pamięci, którego przepustowość jest istotna z punktu widzenia renderowania samej sceny oraz wykonywania jednoczesnych obliczeń na niezależnych wątkach. Co istotne, z perspektywy użytkownika oraz samych programistów, patrząc na rezultaty jakie przynoszą teselacja oraz displacement mapping, są obecnie i tak najmniej obciążającą formą modelowania brył i obiektów, i zdecydowanie warta wykorzystywania w nadchodzących grach.



Podawane według NVIDII wyniki testów wydajności procesu teselacji są bardzo niekorzystne dla konkurencyjnego Radeona. Uwidacznia się to szczególnie przy wyższych trybach i przy większym podziale wielokątów. Na podstawie własnych testów w demie Unigine Heven sprawdzimy oczywiście ile zapewnienia producenta będą mieć wspólnego z rzeczywistością.