Udostępnij za pośrednictwem


vs_3_0

Programowalny cieniator wierzchołków składa się z zestawu instrukcji działających na danych wierzchołków. Rejestruje dane transferu w i z ALU. Dodatkową kontrolkę można zastosować, aby zmodyfikować instrukcję, wyniki lub dane, które są zapisywane.

Wersja cieniowania wierzchołka vs_3_0 rozszerza zestaw funkcji obsługiwany przez vs_2_x. Każda z funkcji w vs_2_X, która wymaga ustawienia limitu, jest dostępna w vs_3_0 bez wymagania limitu.

Nowe funkcje

Nowe funkcje wersji cieniowania wierzchołków vs_3_0 są wymienione w poniższych sekcjach.

Rejestry indeksowania

We wcześniejszych modelach cieniowania indeksowany może być tylko stały bank rejestrów. W tym modelu można indeksować następujące banki rejestrów przy użyciu rejestru licznika pętli (aL):

  • Rejestr danych wejściowych (v#)
  • Rejestr wyjściowy (o#)

Tekstury wierzchołków

Ten model cieniowania obsługuje wyszukiwanie tekstur w cieniatorze wierzchołka przy użyciu narzędzia texldl. Aparat wierzchołka ma cztery etapy próbkowania tekstur (różniące się od próbkatora mapy przemieszczeń i próbek tekstur w aucie pikseli), których można użyć do próbkowania tekstur ustawionych na tych etapach. Zobacz Tekstury wierzchołków w vs_3_0 (DirectX HLSL).

Częstotliwość strumienia wierzchołka

Ta funkcja umożliwia zainicjowanie podzbioru rejestrów wejściowych w tempie innym niż raz na wierzchołek. Zobacz Rysunek nieindeksowany geometria.

Dane wyjściowe cieniowania

Podobnie jak vs_2_0, dane wyjściowe cieniowania mogą się różnić w zależności od statycznego sterowania przepływem. Należy zachować ostrożność podczas dynamicznego rozgałęziania, ponieważ może to spowodować różnice w danych wyjściowych cieniowania na wierzchołku. Spowoduje to nieprzewidywalne wyniki na innym sprzęcie.

Dynamiczne sterowanie przepływem

Obsługiwane są wszystkie instrukcje dotyczące dynamicznego sterowania przepływem. Dozwolona maksymalna wartość głębokości zagnieżdżania wynosi 24. (Aby uzyskać szczegółowe informacje, zobacz Limity zagnieżdżania sterowania przepływem).

Rejestry tymczasowe

Obsługiwanych jest łącznie 32 rejestrów tymczasowych (r#).

Sterowanie przepływem statycznym

Maksymalna głębokość zagnieżdżania pętli — vs/rep — a wynosi 4. Maksymalna głębokość zagnieżdżania wywołania - vs/callnz bool - vs/callnz pred - vs wynosi 4. W przypadku jeśli wartość logiczna — a, dozwolona maksymalna wartość głębokości zagnieżdżenia wynosi 24. (Aby uzyskać szczegółowe informacje, zobacz Limity zagnieżdżania sterowania przepływem).

Predykacja

Obsługiwane jest predykacja instrukcji. Użyj setp_comp — vs, aby ustawić rejestr predykatu.

Liczba instrukcji

Każdy cień wierzchołka jest dozwolony w dowolnym miejscu od 512 do liczby miejsc w maxVertexShader30InstructionSlots w D3DCAPS9. Liczba przebiegów instrukcji może być znacznie większa ze względu na obsługę pętli/repozytorium; Jednak jest to ograniczone przez MaxVShaderInstructionsExecuted w D3DCAPS9 które powinny być co najmniej 0xFFFF.

Limity urządzeń

Jeśli wierzchołek Shader 3_0 jest obsługiwany, następujące limity są obsługiwane w sprzęcie (co najmniej):

Czapka Zdolność
Czapki cieniowania
  • DynamicFlowControlDepth ma wartość 24
  • Wartość NumTemps to 32
  • StaticFlowControlDepth ma wartość 4
  • Predykacja jest obsługiwana.
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom 8K
VertexShaderVersion 3_0
MaxVertexShaderConst 256
MaxVertexShader30InstructionSlots 512
Obsługa mgły D3DPRASTERCAPS_FOGVERTEX
VertexTextureFilterCaps
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET Elementy wierzchołka w deklaracji wierzchołka mogą współdzielić to samo przesunięcie strumienia.
Formaty wierzchołków
  • D3DDECLTYPE_UBYTE4
  • D3DDECLTYPE_UBYTE4N
  • D3DDECLTYPE_SHORT2N
  • D3DDECLTYPE_SHORT4N
  • D3DDECLTYPE_FLOAT16_2
  • D3DDECLTYPE_FLOAT16_4

 

cieniowania wierzchołków