PDA

View Full Version : Pixel shader vertex shader....


Arp
30-10-2005, 19:50
Scusate mi accingo a studiare per sommi capi il funzionamento delle schede video (Qualcosa ho già trovato con google) e vorrei conoscere la differenza tra vertex shader pixel shader e pipeline se è possibile con degli esempi. Visto che sento sempre parlare di questi termini oramai sempre più in uso. Qualcuno può aiutarmi?

Vifani
30-10-2005, 20:38
Una scheda video non fa altro che elaborare poligoni (composti da vertici) e determinare il colore finale del pixel sullo schermo.

Un vertex shader è una funzione che ha un vertice in input e, dopo varie elaborazioni, restituisce un vertice in output.

Un pixel shader è una funzione che dato un pixel in input, dopo varie elaborazioni, restituisce un pixel in output.

Gli shaders nelle schede video da tre anni a questa parte possono essere programmati dagli sviluppatori di videogames per dare vita ad effetti, sia a livello poligonale che a livello di pixel, innovativi e realistici.

Con il termine pipeline normalmente si intende un percorso di calcolo per l'elaborazione di un pixel. Quindi, essenzialmente, un processore grafico dotato di 16 pipeline è in grado di elaborare 16 pixel per ciclo di clock.

Ti ho fatto un piccolissimo sunto per darti un'idea, ma ci sarebbe da dire molto di più in proposito.

HaCKeR.InSiDe
30-10-2005, 21:15
fai conto ke le pipeline siano un nastro...piu grosso e questo nastro piu dati possono essere elaborati contemporaneamente

Arp
31-10-2005, 10:32
Grazie mille per le spiegazioni. Volevo solo chiedere che importanza hanno il fill rate ed il bandwidth nei giochi?

Vifani
31-10-2005, 14:16
Grazie mille per le spiegazioni. Volevo solo chiedere che importanza hanno il fill rate ed il bandwidth nei giochi?

Il fill rate è il numero di pixel che la scheda video può disegnare al secondo. Quindi, essenzialmente, se una scheda video ti fa 6000 Mpixel/s, vuol dire che ti disegna 6 miliardi di pixel al secondo.

La banda passante, invece, è la quantità di informazioni che possono arrivare al processore grafico: maggiore è la banda passante, migliore sarà la gestione della grafica da parte del processore, specie in condizioni critiche come quelle che si ottengono abilitando l'antialiasing o il filtro anisotropico.

mikke
01-11-2005, 22:33
:)
strautile questo 3d!!!

dai, continuiamo, mi interessa,

p.e.= come faccio a sapere se un gioco è stato programmato per sfruttare le direct 3d o le lib openGL?

e quali sono le diff tra le due? :rolleyes:


ciao, mikke :)

Vifani
02-11-2005, 15:15
:)
strautile questo 3d!!!

dai, continuiamo, mi interessa,

p.e.= come faccio a sapere se un gioco è stato programmato per sfruttare le direct 3d o le lib openGL?

e quali sono le diff tra le due? :rolleyes:


ciao, mikke :)

Beh dire quali sono le differenze tra Direct3D e OpenGL è un'operazione che richiederebbe molto tempo. Essenzialmente il Direct3D è sviluppato da Microsoft come parte delle DirectX, mentre OpenGL è un'API sviluppata da Silicon Graphics e portata avanti da un organo denominato OpenGL Architexture Review Board (ARB) di cui fanno parte molte aziende del settore (ovviamente ci sono anche ATI e NVIDIA).

Per sapere se un gioco è sviluppato in OpenGL o Direct3D normalmente è sufficiente leggere il Readme o i requisiti minimi.

mikke
14-11-2005, 17:02
:)
ottimo,
si impara, si impara piu' da sti forum che altro...

e bilinear e trilinear del filtro anisotropo mi so sempre chiesto
cosa vuol dire... :confused:

:)

ciao, mikke
(grazie in anticipo a chi mi risponde ovviamente)

cristyano
15-11-2005, 12:17
Ragà abbiamo detto che il pixel shading elabora i pixel per secondo, il vetrx shading i vertici per secondo, e che le schede video non fanno altro che generare poligoni!!
Ma questi poligoni sono i pixel??? quindi dei quadrettini???

cescof
15-11-2005, 16:27
Ciao, credo anch'io la dicussione interessante e mi inserisco a questo punto per chiedervi a cosa possiamo riferici quando in generale ( e in particolare gforce 689 le) parlaimo di ailitare le pipe e i vertex nascosti o non funzionanti.
Voi dite che le pipe sono "elaboratori" giusto? QUando una pipe è difettosa e crea artefatti stiamo parlando di un roblema hardware? è un problema di materiali, di stampo della scheda o che altro? Ancora come capire seun determinato problema è causto da vertex malfunzionanti o pipe? Nel senso è possibile capire la natura di un problema grafico solo analizzando il problema e non per esclusione ?
Per adesso mi fermo qui, mi sono talmente innervosito in tentativi per abilitare pipe nascoste, oveclock che danno atefatti ecc che mi piacerebbe sapere tecnicamente che tipo di problemi sono (senza presumere ovviamente di poterli risolvere)
;) ;)
Ciao

Vifani
15-11-2005, 19:24
:)
ottimo,
si impara, si impara piu' da sti forum che altro...

e bilinear e trilinear del filtro anisotropo mi so sempre chiesto
cosa vuol dire... :confused:

:)

ciao, mikke
(grazie in anticipo a chi mi risponde ovviamente)

Quando si esegue il filtro anisotropico si usano un determinato numero di campioni di una texture. Se questa texture è stata filtrata con filtro bilineare, si ottiene una determinata qualità, se è stata filtrata in trilineare, se ne ottiene una migliore. In particolare le transizioni da un livello di dettaglio al successivo sono sfumate con texture filtrate in trilineare, mentre sono nette in bilineare.

Vifani
15-11-2005, 19:38
Ragà abbiamo detto che il pixel shading elabora i pixel per secondo, il vetrx shading i vertici per secondo, e che le schede video non fanno altro che generare poligoni!!
Ma questi poligoni sono i pixel??? quindi dei quadrettini???

Tutto ciò che vedi in un gioco tridimensionale non sono altro che una serie di poligoni (triangoli in genere) uniti uno vicino l'altro che vanno a comporre gli oggetti. Ad esempio un cubo, normalmente, è fatto utilizzando due triangoli per faccia (che compongono un quadrato), per un totale di 12 triangoli. Immagina, adesso, quando stai girando per i corridoi di Doom 3 e vedi le pareti del corridoio: quasi sicuramente la parete, se piatta, è composta da due triangoli.

Nel momento in cui stai leggendo questo post il tuo monitor sta lavorando ad una determinata risoluzione e tale risoluzione non è altro che il numero di pixel in altezza ed in ampiezza che visualizzi. Ad esempio 1024x768 oppure 1280x1024. Naturalmente all'interno di un gioco l'oggetto composto dai poligoni deve essere visualizzato attraverso i pixel a loro volta visualizzati dal tuo monitor. Come fare per far ciò? Beh qui si andrebbe molto sul tecnico/matematico, ma essenzialmente accade che ogni punto del poligono viene mappato sul tuo schermo così che tu vedi i vari triangoli in una determinata posizione sullo schermo attraverso i pixel. Accade molto spesso che un triangolo occupi una zona vasta dello schermo, cioè più pixel.

La scheda video, dopo aver eseguito i calcoli relativi ai vertici (cioè ai poligoni), deve elaborare anche il colore finale del pixel sullo schermo ed è qui che entra in gioco il fill rate, cioè il numero di pixel disegnati al secondo.

Vifani
15-11-2005, 19:43
Ciao, credo anch'io la dicussione interessante e mi inserisco a questo punto per chiedervi a cosa possiamo riferici quando in generale ( e in particolare gforce 689 le) parlaimo di ailitare le pipe e i vertex nascosti o non funzionanti.
Voi dite che le pipe sono "elaboratori" giusto? QUando una pipe è difettosa e crea artefatti stiamo parlando di un roblema hardware? è un problema di materiali, di stampo della scheda o che altro? Ancora come capire seun determinato problema è causto da vertex malfunzionanti o pipe? Nel senso è possibile capire la natura di un problema grafico solo analizzando il problema e non per esclusione ?
Per adesso mi fermo qui, mi sono talmente innervosito in tentativi per abilitare pipe nascoste, oveclock che danno atefatti ecc che mi piacerebbe sapere tecnicamente che tipo di problemi sono (senza presumere ovviamente di poterli risolvere)
;) ;)
Ciao

Diciamo subito che se abiliti pipeline nascoste ed hai artefatti, non puoi farci niente. Le pipeline sono dei percorsi di calcolo e normalmente ogni pipeline si prende carico dei calcoli relativi ad un pixel sullo schermo. Per differenziare la propria offerta, poiché non sempre i chip escono dalla produzione completamente funzionanti, sia ATi che NVIDIA propongono chip come NV40 o R480 dotati di 16 pipeline, con sole 12 pipeline abilitate. Quando tu le vai ad abilitare può capitare sia di avere un prodotto perfettamente funzionante che artefatti. In quest'ultimo casole pipeline originariamente disabilitate sono corrotte. Si tratta quindi di un problema hardware relativo al processo produttivo del chip grafico.

cristyano
16-11-2005, 19:00
Quindi ricapitolando:
FILL RATE= numero di pixel che la scheda riesce a generare in un secondo
BANDWITCH= Banda dati passante da northbridge a scheda grafica, maggiore è meglio la scheda riesce a comunicare con gli altri componenti del pc e quindi ad avere prestazioni maggiori
PIPELINE= Numero di pixel generati per ciclo di clock della GPU(1 ciclo di clock=1 hz)
VETREX SHADER= La scheda elabora i vertici dei poligoni di cui è composta l'img. (generalmente triangoli)
PIXEL SHADER=La scheda elabora i pixel dell'img

La scheda per creare img genera in continuazione triangoli composti da uno o più pixel(ma anche nelle img 2D tipo la visualizzazione di una pagina testo????)
Che sono le Texture???

Vifani
16-11-2005, 20:05
Quindi ricapitolando:
FILL RATE= numero di pixel che la scheda riesce a generare in un secondo
BANDWITCH= Banda dati passante da northbridge a scheda grafica, maggiore è meglio la scheda riesce a comunicare con gli altri componenti del pc e quindi ad avere prestazioni maggiori
PIPELINE= Numero di pixel generati per ciclo di clock della GPU(1 ciclo di clock=1 hz)
VETREX SHADER= La scheda elabora i vertici dei poligoni di cui è composta l'img. (generalmente triangoli)
PIXEL SHADER=La scheda elabora i pixel dell'img

La scheda per creare img genera in continuazione triangoli composti da uno o più pixel(ma anche nelle img 2D tipo la visualizzazione di una pagina testo????)
Che sono le Texture???

La bandwith è la quantità di dati che possono viaggiare tra GPU e la memoria video. Il northbridge, nome con il quale normalmente si intende una componente della scheda madre, non c'entra niente.

Un triangolo a seconda di quanto è grande può ricoprire più pixel, anzi di solito è sempre così.

Nella visualizzazione 2D la gestione da parte della scheda grafica è estremamente ridotta e non si fanno uso solitamente di funzionalità del motore 3D del chip grafico. Si usa un'altra parte dedicata che è molto più piccola.

Una texture è un'immagine applicata sopra i poligoni per dare dettaglio alle superfici. Ad esempio quando guardi la parete di un muro normalmente guardi un quadrato con sopra applicata una texture la quale a sua volta raffigura le mattonelle del muro.

cristyano
17-11-2005, 16:31
Io avevo capito che la badwitch fosse la banda dati paasante fra scheda madre e scheda video, ecco perchè ti aevo detto northbrigde!
Capito grazie

jp77
17-11-2005, 20:51
Complimenti a Vifani :ave:

mikke
18-11-2005, 15:50
Una texture è un'immagine applicata sopra i poligoni per dare dettaglio alle superfici. Ad esempio quando guardi la parete di un muro normalmente guardi un quadrato con sopra applicata una texture la quale a sua volta raffigura le mattonelle del muro.

:)
ecco come fanno a riprodurre cosi' bene le auto da corsa!!!
ora ho capito cosa sono ste texture..

finalmente!!! :) :)

grazie Vifani ;)

ciao, mikke

conan_75
19-11-2005, 02:09
:)
ecco come fanno a riprodurre cosi' bene le auto da corsa!!!
ora ho capito cosa sono ste texture..

finalmente!!! :) :)

grazie Vifani ;)

ciao, mikke
Tu pensala così: i poligoni sono i muscoli, che si deformano creando diversi aspetti, mentre le textures sono una pelle elastica che si deforma in base al movimento dei muscoli sotto (o poligoni).
Guardati la mano come si muove e capisci.

mikke
21-11-2005, 21:54
Tu pensala così: i poligoni sono i muscoli, che si deformano creando diversi aspetti, mentre le textures sono una pelle elastica che si deforma in base al movimento dei muscoli sotto (o poligoni).
Guardati la mano come si muove e capisci.
:)
la metafora rende perfettamente l'idea!!

bene conan!!
:)

vediamo se ho capito:

i poligoni sono la geometria pura...

le textures sono l'elemento artistico che dà la profondità e la tridimensionalità al movimento di un oggetto

ciao, mikke

[JaMM]
21-11-2005, 22:26
ottime spiegazioni, Raffaele; mi chiedevo, perchè non realizzate un "prontuario", con spiegazioni di base sui termini più usati o sulle funzioni più comuni delle schede video, ed inserirne un link fisso nelle recensioni in maniera tale che ogni qualvolta qualcuno di noi ha un dubbio possa consultare con facilità le spiegazioni e comprendere meglio? aiuterebbe non poco chi si è avvicinato da poco al mondo dell'hardware a comprendere meglio le tue recensioni. Ciauzz ;).