rejestry ps_3_0
Cieniowanie pikseli zależy od rejestrów w celu uzyskania danych wierzchołka, danych wyjściowych pikseli, przechowywania tymczasowych wyników podczas obliczeń oraz identyfikowania etapów próbkowania tekstury. Istnieje kilka typów rejestrów, z których każda ma unikatową funkcjonalność. Ta sekcja zawiera informacje referencyjne dotyczące rejestrów wejściowych i wyjściowych implementowanych przez cieniowanie pikseli w wersji 3_0.
Nowe rejestry
Rejestr danych wejściowych
Rejestry wejściowe (v#) są teraz w pełni zmiennoprzecinkowe, a rejestr współrzędnych teksturys (t#) został w nim skonsolidowany. dcl_semantics (sm3 - ps asm) w górnej części cieniowania służy do opisania zawartości zawartej w określonym Input_Register. Semantyka typów pikseli jest wprowadzana (analogicznie do strony wierzchołka) dla tego modelu. Nie jest wykonywane zaciskanie, gdy rejestry wejściowe są definiowane jako kolory (na przykład współrzędne tekstury). Ocena rejestrów zdefiniowanych jako kolor różni się od współrzędnych tekstury podczas wieloamperowania.
Rejestr twarzy
Rejestr twarzy (vFace) jest nowy dla tego modelu. Jest to rejestr skalarny zmiennoprzecinkowa, który ostatecznie będzie zawierać obszar pierwotny. Jednak w ps_3_0 tylko znak tego rejestru jest prawidłowy. W związku z tym, jeśli wartość jest mniejsza niż zero (bit znaku jest ustawiony ujemnie) pierwotny jest twarzą wsteczną (obszar jest ujemny, przeciwkrętowy). W związku z tym w ps_3_0 warto porównać ten rejestr tylko z wartością 0 (> 0 lub < 0). Wewnątrz cieniowania pikseli aplikacja może podjąć decyzję, która technika oświetlenia ma być używana. Dwukierunkowe oświetlenie można osiągnąć w ten sposób. Ten rejestr wymaga deklaracji, więc niezdecydowane użycie będzie oflagowane jako błąd. W przypadku wierszy i punktów pierwotnych ten rejestr jest niezdefiniowany. Rejestr twarzy może być używany tylko jako warunek z następującymi instrukcjami: setp_comp - ps, if_comp - pslub break_comp - ps.
Rejestr licznika pętli
Rejestr licznika pętli (aL) jest nowy dla tego modelu. Automatycznie zwiększa się w każdym wykonaniu pętli — ps/endloop — ps bloku. W razie potrzeby można go użyć w bloku do względnego adresowania. Nie można użyć rejestru licznika pętli poza pętlą.
Rejestrowanie pozycji
Rejestr pozycji (vPos) jest nowy dla tego modelu. Zawiera on bieżące piksele (x, y) w odpowiednich kanałach. Kanały (z, w) są niezdefiniowane. Ten rejestr wymaga deklaracji, więc niezdecydowane użycie będzie oflagowane jako błąd. Po zadeklarowaniu ten rejestr musi mieć dokładnie jedną z następujących masek: .x, .y, .xy.
Typy rejestrów wejściowych
Rejestrować | Nazwa | Hrabia | R/W | # Odczytywanie portów | # Odczyty/inst | Wymiar | RelAddr | Ustawienia domyślne | Wymaga listy DCL |
---|---|---|---|---|---|---|---|---|---|
v# | rejestrowanie danych wejściowych | 10 | R | 1 | Nieograniczony | 4 | Al | Żaden | Tak |
r# | rejestracji tymczasowej | 32 | R/W | 3 | Nieograniczony | 4 | Nie | Żaden | Nie |
c# | stały rejestr zmiennoprzecinkowy | 224 | R | 1 | Nieograniczony | 4 | Nie | 0000 | Nie |
ja# | stałej liczby całkowitej rejestru | 16 | R | 1 | 1 | 4 | Nie | 0000 | Nie |
b# | stałej rejestracji logicznej | 16 | R | 1 | 1 | 1 | Nie | FAŁSZYWY | Nie |
p0 | Predykate Register | 1 | R | 1 | 1 | 1 | Nie | Żaden | Nie |
s# | Sampler (Direct3D 9 asm-ps) | 16 | R | 1 | 1 | 4 | Nie | Zobacz notatkę 1 | Tak |
VFace | Face_Register | 1 | R | 1 | Nieograniczony | 1 | Nie | Żaden | Tak |
vPos | Position_Register | 1 | R | 1 | Nieograniczony | 4 | Nie | Żaden | Tak |
Al | Loop_Counter_Register | 1 | R | 1 | Nieograniczony | 1 | N/a | Żaden | Nie |
Notatki:
- Istnieją wartości domyślne dla odnośników przykładowych, ale wartości zależą od formatu tekstury.
Liczba operacji odczytu to liczba różnych rejestrów (dla każdego typu rejestru), które można odczytać w jednej instrukcji.
Typy rejestrów wyjściowych
Rejestrować | Nazwa | Hrabia | R/W | Wymiar | RelAddr | Ustawienia domyślne | Wymaga listy DCL |
---|---|---|---|---|---|---|---|
Oc# | rejestr kolorów danych wyjściowych | Zobacz tekstury wieloelementowe (Direct3D 9) | W | 4 | Nie | Żaden | Nie |
oDepth | rejestr głębokości danych wyjściowych | 1 | W | 1 | Nie | Żaden | Nie |
Tematy pokrewne