Co to są pixel i vertex shadery?


(Szeryf118) #1

Jak w temacie. Chciałbym się spytać, co to są te pixel i vertex shadery.


(Qbek50) #2

Pixel Shader

Pixel Shader pozwala na takie rzeczy, jak oświetlanie, cienie, mapowanie wypukłości, morphing tekstur i przenikanie alpha pomiędzy wieloma teksturami. Praktycznie jesteście w stanie robić każde łączenie tekstur, jakie tylko sobie wyobrazicie. Inną korzyścią użycia Pixel Shadera jest to, że wszystkie te operacji są robione w bardzo niewielu przebiegach. Inne układy graficzne będą po kolei nakładały tekstury i stosowały wiele przebiegów tworząc całościowy efekt. Innymi słowy, implementacja ATi daje wam wszystkie wizualne korzyści z bardzo małą stratą wydajności. Jedną ważną rzeczą wartą wspomnienia tutaj, jest to, iż do pełnego wykorzystania tej funkcji niezbędny jest DX8.

Vertex Shader

To procesor, który wykonuje operacje na "werteksach", punktach, które są wierzchołkami trójkątów, zaś Pixel Shader wszystkie operacje związane z renderingiem pixeli na ekranie. Innymi słowy, Vertex odpowiedzialny jest za geometrię, (animacja szkieletowa, morphing lub animacja międzyklatkowa, deformacje dynamiczne lub statyczne), a Pixel za efekty nakładane na płaszczyznę tej geometrii (teksturowanie, nakładanie cieni lub oświetlenia, mapowanie wypukłości, odbić itp).Obie te jednostki wykorzystują krótkie programiki, nadające vertexowi lub pixelowi charakterystyki. Jednak ilość instrukcji w takim programie ograniczona jest możliwością wykonawczą tych jednostek, dlatego rozwój tych jednostek sprowadza się do tego, aby wykonywały programy składające się z coraz większej liczby instrukcji. Doszło też kilka nowych, jak: maksymalna liczba pętli, statyczna i dynamiczna kontrola przepływu. Również Pixel Shader to obecnie bardzo imponująca jednostka, której podstawową cechą jest 128-bitowa zmienno-przecinkowa precyzja koloru. Pozwala to na 16 i 32-bitowe, zmienno-przecinkowe dla każdego czerwonego, zielonego i niebieskiego składnika.

Hyper Z

Hyper Z jest czymś, co ATi stworzyła, aby zmniejszyć problem zwiększenia wymaganej przepustowości pamięci, gdy rośnie rozdzielczość i głębia koloru. Hyper Z jest specjalną pamięcią podręczną Z-bufora, która pomaga zmniejszyć wymaganą przepustowość i użycie pamięci podczas manipulacji danymi Z-bufora. ATi twierdzi, że użycie tego zwiększa wydajność o około 20%. Jednak, dopiero gdy w końcu otrzymamy kartę, system testowy będzie mógł tego dowieść w rzeczywistych testach.

Antialiasing

Obraz wyświetlany na monitorze składa się z tysięcy pikseli. Im mniej ich jest, tym częściej pojawiają się tzw. efekty schodkowe, czyli postrzępienie krawędzi obiektów. Można temu zaradzić, posługując się algorytmem antialiasingu, którego zadaniem jest wygładzenie poszarpanych krawędzi. Wygładzać można brzegi każdego obiektu osobno, ale w przypadku skomplikowanej sceny lepiej od razu zaimplementować algorytm antialiasingu całego okna graficznego.

Smartshader

Programowalna jednostka SmartShader w pełni zgodna z DirectX 8.1, pozwala pisać programistom małe programy, które wykonują niestandardowe efekty na układzie graficznym. Tworzenie efektów na układzie graficznym będzie z reguły szybsze niż wykonywanie ich przez CPU.

SmartShader pozwala na takie rzeczy, jak :

· Deformacje proceduralne

· Kompresja geometrii

· Morphing

· Rendering futer i sierści

· Animacja szkieletowa

· Interpolacja międzyklatkowa

· Pełna obsługa nakładania wypukłości: środowiskowe (Blinna), wytłaczane, trój-iloczynowe (dot3)

· Oświetlanie anizotropowe

· Mapy światła i połysku

· Odbicia, cienie, snopy światła, morphing tekstur

sciaga.pl


(Szeryf118) #3

Dziękuję Ci, Detektywie !!

P.S: Nagroda jest pod avatarem :slight_smile: .