Procedura: creare uno shader con phong di base
In questo documento viene illustrato come utilizzare la finestra di Progettazione shader e il linguaggio DGSL per creare uno shader di illuminazione che implementa il modello di illuminazione di Phong classico.
In questo documento vengono illustrate queste attività:
Nodi a un grafico di shader
Disconnettere i nodi
Connessione di nodi
Modello di illuminazione di Phong
Il modello di illuminazione di Phong estende il modello di illuminazione di Lambert per includere l'evidenziazione speculare, che simula le proprietà riflettenti di una superficie.Il componente speculare fornisce illuminazione aggiuntiva le stesse sorgenti di luce direzionali utilizzato nel modello di illuminazione di Lambert, ma il supporto del colore finale viene elaborato in modo diverso.L'evidenziazione speculare su ogni area nella scena in modo diverso, in base alla relazione tra la direzione di visualizzazione, la direzione delle sorgenti di luce e l'orientamento di.È un prodotto del colore speculare, la potenza speculare e l'orientamento della superficie e il colore, di intensità e la direzione delle sorgenti di luce.Superfici che riflette una sorgente di luce direttamente al visualizzatore riceve il supporto speculare massimo e le superfici che riflette una sorgente di luce dal visualizzatore non ricevono supporto.Nel modello di illuminazione di Phong, uno o più componenti speculari combinati per determinare il colore e l'intensità di evidenziazione speculare per ciascun punto dell'oggetto e quindi vengono aggiunti al risultato del modello di illuminazione di Lambert per produrre il colore finale del pixel.
Per ulteriori informazioni sul modello di illuminazione Lambert, vedere Procedura: creare uno shader con Lambert di base.
Prima di iniziare, assicurarsi che la finestra Proprietà e Casella degli strumenti visualizzazione.
Per creare uno shader di Phong
Creare uno shader di Lambert come descritto in, Procedura: creare uno shader con Lambert di base.
Disconnettere il nodo Lambert dal nodo Colore finale.Scegliere il terminale RGB il nodo Lambert quindi scegliere Interrompi collegamenti.In questo modo lo spazio per il nodo che viene aggiunto nel passaggio successivo.
Aggiungere un nodo Aggiungi al grafico.In Casella degli strumenti, in Matematica, Aggiungi selezionato e lo sposta nell'area di progettazione.
Aggiungere un nodo Speculare al grafico.Nella Casella degli strumenti in Utilità selezionare Speculare e spostarla nell'area di progettazione.
Aggiungere il contributo speculare.Spostare il terminale Output il nodo Speculare al terminale X il nodo Aggiungi e spostare il terminale Output il nodo Lambert al terminale Y il nodo Aggiungi.Queste connessioni combinano i contributi diffusi e speculari totali di colore per il pixel.
Connettere il valore della costante di colore elaborata al colore finale.Spostare il terminale Output il nodo Aggiungi al terminale RGB il nodo Colore finale.
Nella figura seguente viene mostrato il grafico di shader completato e un'anteprima dello shader applicato a un modello di teiera.
[!NOTA]
Per illustrare meglio l'effetto dello shader in questa illustrazione, un colore arancione è stato specificato utilizzando il parametro MaterialDiffuse lo shader e un inizio metallico- apparente è stato specificato utilizzando i parametri MaterialSpecularPower e MaterialSpecular.Per informazioni sui parametri materiali, vedere la sezione di visualizzazione in anteprima di pixel Finestra di progettazione shader.
Alcune forme potrebbero fornire anteprime ottimizzate per alcuni pixel.Per ulteriori informazioni su come visualizzare in anteprima gli shader nella finestra di progettazione di shader, vedere la sezione di visualizzazione in anteprima di pixel Finestra di progettazione shader
Nella figura seguente viene illustrato lo shader descritto in questo documento applicato a un modello tridimensionale.La proprietà MaterialSpecular è impostata su (1,00, 0,50, 0,20, 0,00) e la proprietà MaterialSpecularPower è impostata su 16.
[!NOTA]
La proprietà MaterialSpecular determina la fine apparente del materiale della superficie.Una superficie molto lucente come il cristallo o la plastica tende ad avere un colore speculare che è una sfumatura luminosa di bianco.Una superficie metallica tende ad avere un colore speculare vicino al colore diffuso.Una superficie con finiture in raso tende ad avere un colore speculare che è una sfumatura scura di grigio.
La proprietà MaterialSpecularPower determina l'intensità delle evidenziazioni speculari.Le potenze speculari elevate simulano le evidenziazioni in rilievo e più localizzate.Molto bassa potenze speculari simulano le evidenziazioni intense e ampe che possono oversaturate e nascondere il colore dell'intera.
Per ulteriori informazioni su come applicare uno shader a un modello tridimensionale, vedere Procedura: applicare uno shader a un modello tridimensionale.
Vedere anche
Attività
Procedura: applicare uno shader a un modello tridimensionale
Procedura: esportare uno shader
Procedura: creare uno shader con Lambert di base
Concetti
Finestra di progettazione shader