Pytania otagowane jako performance

3
Kiedy moduł cieniujący jest bardziej wydajny niż moduł cieniujący do filtrowania obrazów?
Operacje filtrowania obrazu, takie jak rozmycie, SSAO, kwitnienie itd., Są zwykle wykonywane przy użyciu programów cieniujących piksele i operacji „gromadzenia”, przy czym każde wywołanie modułu cieniującego pikseli powoduje pobranie szeregu tekstur w celu uzyskania dostępu do wartości sąsiednich pikseli i oblicza wartość pojedynczego piksela wynik. Podejście to ma teoretyczną nieskuteczność, …

2
Jaki jest koszt zmiany stanu?
Programiści powinni mieć dość dobry pomysł na koszt niektórych operacji: na przykład koszt instrukcji procesora, koszt braku pamięci podręcznej L1, L2 lub L3, koszt LHS. Jeśli chodzi o grafikę, zdaję sobie sprawę, że nie mam pojęcia, czym one są. Mam na uwadze, że jeśli zamawiamy je według kosztów, zmiany stanu …



3
Dlaczego mamy frameworki graficzne, takie jak OpenGL i DirectX, skoro gry mogą rysować piksele bezpośrednio?
Gry i inne aplikacje intensywnie korzystające z grafiki korzystają ze struktur takich jak OpenGL i DirectX. Wymagają także funkcji takich jak moduł cieniujący piksele i DX12. Ale dlaczego potrzebowalibyśmy tych wszystkich struktur i funkcji GPU, skoro mogliśmy po prostu rysować wszystko piksel po pikselu? Po pierwsze, gra musiałaby się kompilować …


1
Czy stały stan jest bardziej kosztowny niż zmiana shaderów?
Ogólnie rzecz biorąc, rozgałęzianie w shaderach nie jest dobrym pomysłem. Ale teraz mam moduł cieniujący z warunkiem, który jest stały w odniesieniu do całego zaproszenia do losowania. Wykonywana gałąź jest zawsze taka sama dla jednego wywołania losowania. Czy tego rodzaju rozgałęzienie jest jeszcze bardziej kosztowne niż posiadanie wielu shaderów bez …

1
Kiedy wyłączyć poprawną interpolację perspektywy (noperspective)
W GLSL domyślna interpolacja atrybutów wierzchołków jest ustawieniem domyślnym - można ją wyłączyć dla określonych atrybutów wierzchołków za pomocą kwalifikatora noperspective . Oprócz shaderów przetwarzających post nigdy nie widziałem wyłączonej perspektywy poprawnej interpolacji - czy są jakieś inne przypadki użycia? Czy to w ogóle robi różnicę pod względem wydajności?

1
Wydajność pętli w module cieniującym
Zastanawiam się, jaki jest najlepszy sposób zintegrowania funkcji pętli dynamicznej w module cieniującym? Po pierwsze, wydaje się, że tablice dynamiczne nie są możliwe. Czy zatem lepiej jest utworzyć tablicę o maksymalnym rozmiarze i wypełnić tylko jej część lub zdefiniować tablice o zdefiniowanych rozmiarach? Więc jaki jest najlepszy sposób na iterację …

1
Dlaczego dostęp do tekstur jest znacznie wolniejszy podczas obliczania współrzędnych tekstury w module cieniującym fragmenty?
Używając tekstur w GLSL, najlepiej obliczyć ostateczne współrzędne tekstury w module cieniującym wierzchołki i przekazać je do modułu cieniującego fragmenty za pomocą varyings. Przykład z prostym przerzuceniem we współrzędnej y: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, 1.0-texture.y); // …


2
Czy w przypadku nowoczesnych wypełnień i odroczonego renderowania eliminacja okluzji jest nadal istotna?
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 …


2
Najbardziej wydajny sposób organizowania danych wierzchołków na nowoczesnych GPU
Że mam model składa się z wierzchołków, z których każda position, normal, tangentoraz texcoordatrybutów, gdzie trójkąty są określone przez trójek indeksu. Jeśli skupimy się tylko na atrybutach wierzchołka, mam świadomość dwóch ogólnych strategii: struktury tablic i szeregu struktur. Słyszałem również, że tablica struktur jest preferowana, ponieważ zwiększa lokalizację pamięci (a …

1
Jaki jest kompromis między renderowaniem w przód a odroczonym?
Renderowanie w przód jest procesem obliczania wartości promieniowania dla fragmentu powierzchni bezpośrednio z geometrii wejściowej i informacji o oświetleniu. Odroczone renderowanie dzieli ten proces na dwa etapy: najpierw tworzy bufor przestrzeni ekranowej zawierający właściwości materiału (bufor geometrii lub bufor G) zbudowany przez rasteryzację geometrii wejściowej, a drugi tworzy wartość promienia …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.