PDA

View Full Version : Vertex & Pixel shaders


petroka
14-12-2006, 09:34
Salve a tutti,
volevo chiedere se qualcuno tra voi poteva consigliarmi qualcosa di tecnico (orientato agli aspetti elettronici e algoritmici) da leggere sui vertex-pixel shaders. In primo luogo sono molto curioso di capire come funziona esattamente tale tecnologia (in quanto appassionato) e in secondo luogo potrebbe ritornarmi utile per un progetto all'università.

Ringrazio per la cortese attenzione!

Defragg
14-12-2006, 14:01
Il Pixel Shader è una funzione grafica che permette di calcolare gli effetti su una base di pixel. A seconda della risoluzione, ci sono più di 2 milioni di pixel da elaborare, rischiarare, ombreggiare e colorare su ciascun frame, a 60 frame al secondo, il che provoca un carico notevole di gestione. L'elaborazione di pixel permette di evidenziare una ricchezza straordinaria di dettagli che consente di vedere oltre il livello del triangolo. Inoltre, grazie al Pixel Shader programmabile gli artisti e gli sviluppatori hanno la possibilità di creare degli effetti a base di pixel che rispecchiano la loro visione creativa. Invece di limitarsi a scegliere una serie di effetti preconfezionati, gli sviluppatori possono crearne di nuovi e personali. Di conseguenza, grazie al Pixel Shader programmabile gli sviluppatori possono usufruire di uno strumento senza precedenti, in grado di determinare la luminosità, le ombre e il colore di ogni singolo pixel e di creare una quantità considerevole di effetti incredibili. Inoltre, l'ampia possibilità di programmazione permette agli sviluppatori di creare vari metodi di gradazione degli oggetti.

Il Vertex Shader è un'elaborazione grafica usata per aggiungere degli effetti speciali agli oggetti in un ambiente 3D, per mezzo di operazioni matematiche sui dati del vertice degli oggetti. Ogni vertice può essere definito da molte variabili diverse. Ad esempio, si definisce un vertice sempre in base alla sua posizione in un ambiente 3D, utilizzando le coordinate x, y e z. Inoltre, si possono definire i vertici grazie ai colori, alle texture e alla luminosità. In realtà, i Vertex Shader non modificano il tipo di dati ma, semplicemente, ne cambiano i valori; in questo modo, un vertice appare con una texture o un colore diverso, oppure con una posizione diversa. E' possibile usare i Vertex Shader per dare vita e personalità ai caratteri e alle ambientazioni, ad esempio per raffigurare la nebbia che cala in una valle ed avvolge una collina; oppure per ottenere delle espressioni del volto realistiche, facendo così apparire delle fossette o delle rughe quando un personaggio sorride. Alcuni esempi di effetti shading sul vertice: elaborazione dei colori a matrice, per permettere ai programmatori di creare un'animazione realistica dei personaggi, riproducendo fino a 32 "ossa" per ogni articolazione, in modo da offrire dei movimenti convincenti; deformazione delle superfici, che consente agli sviluppatori di creare delle superfici realistiche (ad esempio le onde o la superficie increspata dell'acqua); morphing del vertice, usato per cambiare la forma degli elementi del triangolo, in modo da ottenere una movimentazione naturale dei personaggi.

Zodd_Il_nosferatu
14-12-2006, 18:19
Il Pixel Shader è una funzione grafica che permette di calcolare gli effetti su una base di pixel. A seconda della risoluzione, ci sono più di 2 milioni di pixel da elaborare, rischiarare, ombreggiare e colorare su ciascun frame, a 60 frame al secondo, il che provoca un carico notevole di gestione. L'elaborazione di pixel permette di evidenziare una ricchezza straordinaria di dettagli che consente di vedere oltre il livello del triangolo. Inoltre, grazie al Pixel Shader programmabile gli artisti e gli sviluppatori hanno la possibilità di creare degli effetti a base di pixel che rispecchiano la loro visione creativa. Invece di limitarsi a scegliere una serie di effetti preconfezionati, gli sviluppatori possono crearne di nuovi e personali. Di conseguenza, grazie al Pixel Shader programmabile gli sviluppatori possono usufruire di uno strumento senza precedenti, in grado di determinare la luminosità, le ombre e il colore di ogni singolo pixel e di creare una quantità considerevole di effetti incredibili. Inoltre, l'ampia possibilità di programmazione permette agli sviluppatori di creare vari metodi di gradazione degli oggetti.

Il Vertex Shader è un'elaborazione grafica usata per aggiungere degli effetti speciali agli oggetti in un ambiente 3D, per mezzo di operazioni matematiche sui dati del vertice degli oggetti. Ogni vertice può essere definito da molte variabili diverse. Ad esempio, si definisce un vertice sempre in base alla sua posizione in un ambiente 3D, utilizzando le coordinate x, y e z. Inoltre, si possono definire i vertici grazie ai colori, alle texture e alla luminosità. In realtà, i Vertex Shader non modificano il tipo di dati ma, semplicemente, ne cambiano i valori; in questo modo, un vertice appare con una texture o un colore diverso, oppure con una posizione diversa. E' possibile usare i Vertex Shader per dare vita e personalità ai caratteri e alle ambientazioni, ad esempio per raffigurare la nebbia che cala in una valle ed avvolge una collina; oppure per ottenere delle espressioni del volto realistiche, facendo così apparire delle fossette o delle rughe quando un personaggio sorride. Alcuni esempi di effetti shading sul vertice: elaborazione dei colori a matrice, per permettere ai programmatori di creare un'animazione realistica dei personaggi, riproducendo fino a 32 "ossa" per ogni articolazione, in modo da offrire dei movimenti convincenti; deformazione delle superfici, che consente agli sviluppatori di creare delle superfici realistiche (ad esempio le onde o la superficie increspata dell'acqua); morphing del vertice, usato per cambiare la forma degli elementi del triangolo, in modo da ottenere una movimentazione naturale dei personaggi.

che altro aggiungere? :stordita:

Kharonte85
14-12-2006, 18:51
che altro aggiungere? :stordita:
La fonte:

http://www.nvidia.it/object/IO_20010601_6441.html

http://www.nvidia.it/object/IO_20010601_6576.html

Defragg
14-12-2006, 19:09
La fonte:

http://www.nvidia.it/object/IO_20010601_6441.html

http://www.nvidia.it/object/IO_20010601_6576.html
no l'ho preso da QUI (http://www.hwupgrade.it/forum/showthread.php?t=1328141) :Prrr:

Kharonte85
14-12-2006, 19:15
no l'ho preso da QUI (http://www.hwupgrade.it/forum/showthread.php?t=1328141) :Prrr:
Allora io ho postato la fonte della fonte... :D

petroka
14-12-2006, 19:16
Grazie ragazzi...comincia a farsi più chiara la faccenda!
Cmq. sarei molto interessato a vedere in dettaglio una architettura che implementa gli shaders da un punto di vista hardware e da un punto di vista algoritmico. Proprio in questo periodo, infatti, sto frequentando un corso all'università che si basa su queste cose (progetto di filtri integrati) e siccome devo portare una tesina per l'esame volevo vedere se riuscivo a farci rientrare la cosa degli shaders ma per far ciò ho bisogno di informazioni molto dettagliate!
Grazie ancora confido in voi! :D

Defragg
14-12-2006, 19:17
Allora io ho postato la fonte della fonte... :D
già

però faceva ganzo scrivere tutto quel popo' di roba...mi hai rovinato la figura da figo :cool: :D

Kharonte85
14-12-2006, 19:38
Grazie ragazzi...comincia a farsi più chiara la faccenda!
Cmq. sarei molto interessato a vedere in dettaglio una architettura che implementa gli shaders da un punto di vista hardware e da un punto di vista algoritmico. Proprio in questo periodo, infatti, sto frequentando un corso all'università che si basa su queste cose (progetto di filtri integrati) e siccome devo portare una tesina per l'esame volevo vedere se riuscivo a farci rientrare la cosa degli shaders ma per far ciò ho bisogno di informazioni molto dettagliate!
Grazie ancora confido in voi! :D
http://www.tomshw.it/graphic.php?guide=20060731&page=schede_video_per_principianti_parte_2-02

http://en.wikipedia.org/wiki/Shader

http://www.toymaker.info/Games/html/shaders.html

http://www.tomshardware.com/2002/01/16/vertex_shaders_and_pixel_shaders/index.html

http://sisinflab.poliba.it/coppi/graphics/shaders4.pdf

http://www.gamedev.net/columns/hardcore/dxshader1/

Ricordati che Google è il tuo migliore amico... :D

Cmq la tendenza delle nuove Vga è quella di non separare piu' i vertex dai pixel ma di usare degli shader unificati...puoi capire qualcosa di quello che sono anche leggendoti le recensioni delle nuove 8800gtx:

http://www.tomshw.it/graphic.php?guide=20061108&page=geforce_8800_nvidia_g80-04

http://www.hwupgrade.it/articoli/skvideo/1597/nvidia-geforce-8800-gtx-un-passo-nel-futuro_3.html

Spero di esserti stato utile... :)

Kharonte85
14-12-2006, 19:42
già

però faceva ganzo scrivere tutto quel popo' di roba...mi hai rovinato la figura da figo :cool: :D
:asd:

petroka
15-12-2006, 22:27
http://www.tomshw.it/graphic.php?guide=20060731&page=schede_video_per_principianti_parte_2-02

http://en.wikipedia.org/wiki/Shader

http://www.toymaker.info/Games/html/shaders.html

http://www.tomshardware.com/2002/01/16/vertex_shaders_and_pixel_shaders/index.html

http://sisinflab.poliba.it/coppi/graphics/shaders4.pdf

http://www.gamedev.net/columns/hardcore/dxshader1/

Ricordati che Google è il tuo migliore amico... :D

Cmq la tendenza delle nuove Vga è quella di non separare piu' i vertex dai pixel ma di usare degli shader unificati...puoi capire qualcosa di quello che sono anche leggendoti le recensioni delle nuove 8800gtx:

http://www.tomshw.it/graphic.php?guide=20061108&page=geforce_8800_nvidia_g80-04

http://www.hwupgrade.it/articoli/skvideo/1597/nvidia-geforce-8800-gtx-un-passo-nel-futuro_3.html

Spero di esserti stato utile... :)


Grazie...non vedo l'ora di leggere tutta la roba che mi hai indicizzato!!! :D

Defragg
16-12-2006, 13:55
Grazie...non vedo l'ora di leggere tutta la roba che mi hai indicizzato!!! :D
eh...il kharonte è il kharonte :D :asd: