Fase Input-Assembler (IA)

La fase Input Assembler (IA) fornisce dati primitivi e di adiacenza alla pipeline, ad esempio triangoli, linee e punti, inclusi ID semantica per rendere gli shader più efficienti riducendo l'elaborazione alle primitive che non sono già state elaborate.

Scopo e usi

Lo scopo della fase Input Assembler (IA) è leggere i dati primitivi (punti, linee e triangoli) dai buffer riempiti dall'utente e assemblare i dati in primitive che verranno usate dalle altre fasi della pipeline e di collegare valori generati dal sistema per rendere gli shader più efficienti. I valori generati dal sistema sono stringhe di testo denominate anche semantica. Le fasi programmabili dello shader vengono costruite da un core dello shader comune, che usa valori generati dal sistema (ad esempio un ID primitivo, un ID istanza o un ID vertice), in modo che la fase dello shader possa ridurre l'elaborazione solo a quelle primitive, istanze o vertici che non sono già stati elaborati.

La fase IA può assemblare vertici in diversi Tipi primitivi (ad esempio elenchi di linee, strisce di triangoli o primitive con adiacenza). I tipi primitivi, ad esempio un elenco di triangoli con adiacenza, e un elenco di linee con adiacenza, supportano la fase Geometry Shader (GS).

Le informazioni sull'adiacenza sono visibili a un'applicazione solo in uno shader geometry. Se un geometry shader è stato richiamato con un triangolo che include l'adiacenza, ad esempio, i dati di input contengono 3 vertici per ogni triangolo e 3 vertici per i dati di adiacenza per triangolo.

Quando viene richiesta la fase IA per l'output dei dati di adiacenza, i dati di input devono includere dati di adiacenza. Ciò può richiedere la fornitura di un vertice fittizio (formando un triangolo degenerato) o probabilmente contrassegnando uno degli attributi del vertice se il vertice esiste o meno. Questa operazione deve essere rilevata e gestita anche da uno shader geometry, anche se l'eliminazione di geometria degenerata si verificherà nella fase di rasterizzazione.

Input

La fase IA legge i dati dalla memoria: dati primitivi (punti, linee e/o triangoli), dai buffer riempiti dall'utente.

Output

La fase IA assembla i dati in primitive, collega i valori generati dal sistema e restituisce gli output che verranno usati dalla fase Vertex Shader (VS) e quindi da altre fasi della pipeline.

In questa sezione

Argomento Descrizione

Topologie primitive

Direct3D supporta diverse topologie primitive, che definiscono il modo in cui i vertici vengono interpretati e sottoposti a rendering dalla pipeline, ad esempio elenchi di punti, elenchi di righe e strisce di triangoli.

Uso di valori generati dal sistema

I valori generati dal sistema vengono generati dalla fase Input Assembler (IA) (in base alla semantica di input fornita dall'utente) per consentire determinate efficienze nelle operazioni shader. Collegando dati, ad esempio un ID istanza (visibile alla fase Vertex Shader (VS)), un ID vertice (visibile a Visual Studio) o un ID primitiva (visibile alla fase Geometry Shader (GS)/fase Pixel Shader (PS)), una fase dello shader successiva può cercare questi valori di sistema per ottimizzare l'elaborazione in tale fase.

 

Pipeline grafica