Czy w przypadku nowoczesnych wypełnień i odroczonego renderowania eliminacja okluzji jest nadal istotna?

10

Na przykład, mimo że jest to najnowszy procesor graficzny, GTX 980 ma oszałamiające 72,1 gigapikseli / sekundę wypełniania, co przy renderowaniu od tyłu do przodu i / lub sprawdzaniu bufora Z wydaje się niemal absurdalnie duże, a może nawet w rozdzielczości 4k. Jeśli chodzi o liczbę wielokątów, współczesne układy GPU mogą wykonywać dziesiątki do setek milionów teksturowanych trójkątów bez żadnych problemów, jeśli odpowiednio je zestawisz i / lub utworzysz.

Przy renderowaniu do przodu liczba fragmentów, na których będą działały moduły cieniujące, może szybko stać się przytłaczająca, ale przy renderowaniu odroczonym koszt jest zwykle mniej więcej stały, w zależności od rozdzielczości, i już dawno minęliśmy punkt, w którym najbardziej cieniowanie lub efekty przetwarzania końcowego można wykonywać w czasie rzeczywistym w rozdzielczości 1080p.

Tak czy inaczej, obecnie ograniczającymi czynnikami są najczęściej liczby połączeń i koszty zacienienia, które są utrzymywane na względnie niskim poziomie dzięki właściwemu odroczonemu renderowaniu i grupowaniu geometrii, więc mając to na uwadze, eliminuje więcej niż tylko backfaces i out-of- frustrum wielokąty jakiejkolwiek istotnej korzyści? Czy koszty (czas CPU / GPU, czas programisty) nie przeważałyby nad korzyściami przez większość czasu?

Llamageddon
źródło
1080p to nowa grafika pikseli.
Jessy,

Odpowiedzi:

9

Tak, eliminacja okluzji jest nadal tego warta.

Przynajmniej wywołanie remisu, które zostało pominięte z powodu wygaszania, jest wywołaniem remisu, które nie musi uruchamiać modułu cieniującego wierzchołków. Liczba trójkątów rośnie tak szybko, jak procesory graficzne zaczynają obsługiwać więcej trójkątów, bo dlaczego nie? Przy ujednoliconej architekturze moduły cieniujące wierzchołki używają dokładnie tego samego sprzętu, co moduły cieniujące piksele, więc każdy wierzchołek pomijany z powodu wygaszania jest dłuższy czas obliczeniowy dla rzeczy, które można zobaczyć. Nie wspominając o wszystkich innych rzeczach, które pomijasz (przetwarzanie wywołania procesora przez procesor i rzucanie tris wystarczająco daleko przez potok, aby rasterizer zdał sobie sprawę, że nie musi ich zaciemniać).

Podczas SIGGRAPH 2015 na SIGGRAPH 2015 odbyła się świetna prezentacja na temat rurociągów renderujących opartych na GPU. Na pierwszy rzut oka chodzi o niektóre z wymienionych przez ciebie rzeczy: grupowanie i tworzenie instancji, zmniejszanie liczby połączeń losujących. Ale jedną z głównych korzyści, jakie czerpią z rurociągu opartego na GPU, jest niewiarygodnie drobnoziarniste eliminowanie okluzji: lepsze usuwanie, niż normalnie można by zobaczyć na poziomie wezwania. Wszystko to służy asymptotycznemu podejściu do celu: przetwarzaniu tylko tego, co widzisz, co oznacza, że ​​to, co widzisz, wygląda lepiej.

(Również: rozważ konsolę, urządzenie mobilne, VR i komputer stacjonarny bez najnowszych i najlepszych procesorów graficznych, które można kupić za te pieniądze. Nawet jeśli wszystkie Twoje Tris znikną w otwartej paszczy Twojego najlepszego -line GPU, możesz nie być głównym celem).

John Calsbeek
źródło
Co powiesz na to, kiedy shadery wierzchołków są używane do deformowania siatek? (co, jak zakładam, jest możliwe ... Jestem początkującym programistą graficznym)
Llamageddon
Czy masz również jakieś dokumenty na temat eliminacji okluzji wspieranych przez GPU? Czy jest to wbudowana funkcja nowoczesnych procesorów graficznych, czy ...?
Llamageddon
@Lamageddon W nowoczesnych architekturach GPU moduł cieniujący wierzchołek jest zawsze uruchamiany i doskonale nadaje się do deformowania siatek - to tylko nietrwałe przekształcanie wierzchołków. Droższy moduł cieniujący wierzchołek, który wykonuje więcej pracy, to oczywiście więcej pracy, która zostanie pominięta przez ubijanie. Nie mam żadnych artykułów na temat eliminowania okluzji GPU, środowisko akademickie wydaje się nie być tym zafascynowane. To nie jest wbudowana funkcja procesorów graficznych, tylko kreatywne wykorzystanie obliczeń.
John Calsbeek
Och, chodziło mi o wyrywanie oczek, które będą zdeformowane? Czy eliminujesz je po uruchomieniu shaderów wierzchołków? To brzmi skomplikowane.
Llamageddon
@Lamageddon Zasadniczo po prostu eliminujesz je z konserwatywnym tomem. Lub kilka mniejszych objętości, które deformujesz za pomocą siatki (na przykład podczas skórowania możesz dołączyć objętości ubytku do stawów).
John Calsbeek
2

Zależy od stylu gry, ile potrzeba uboju. Na przykład strzelanki FPS bardzo na tym korzystają, mając jednocześnie wiele frustracji, podczas gdy RTS z widokiem z góry nie robi, ponieważ skutecznie patrzysz na samolot z rzeczami w tym samolocie. Jednak nawet w RTS, wykonywanie „renderowania tylko głębokości” w celu wyeliminowania overdraw jest nadal przydatne.

Alan Wolfe
źródło