Procedura: Inizializzare la fase tessellatore
In generale, la tassellatura espande il modello compatto, definito dall'utente, di una patch in geometria che contiene una quantità programmabile di dettaglio. La geometria è in genere un set di triangoli che rappresenta la geometria dettagliata della superficie. In questo argomento viene illustrato come inizializzare la fase del tassellatore.
La fase a mosaico è la seconda di tre fasi che interagiscono per tessellare o affiancare una superficie. La prima fase è la fase hull-shader; funziona una volta per patch e configura il comportamento della fase successiva (tessellatore a funzione fissa). Uno hull shader genera anche output definiti dall'utente, ad esempio punti di controllo di output e costanti patch che vengono inviati oltre il tassellatore direttamente alla terza fase, la fase domain-shader. Un domain shader viene richiamato una volta per ogni punto di fase a mosaico e valuta le posizioni della superficie.
La fase del tassellatore è una fase di funzione fissa, non esiste alcun shader da generare e nessuna condizione da impostare. Riceve tutto lo stato di configurazione dalla fase hull-shader; una volta inizializzata la fase hull-shader, la fase del tassellatore viene inizializzata automaticamente.
Per inizializzare la fase del tassellatore
Inizializzare la fase hull-shader usando ID3D11DeviceContext::HSSetShader.
void HSSetShader( ID3D11HullShader *pHullShader, ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
ppClassInstances è un puntatore a una matrice di interfacce shader, rappresentate dai puntatori ID3D11ClassInstance e dal numero di interfacce, rappresentate da NumClassInstances. Se non viene usato, questi parametri possono essere impostati rispettivamente su NULL e 0.
Dopo l'inizializzazione della fase hull-shader, è necessario inizializzare anche la fase domain-shader.
Argomenti correlati