View Full Version : Approfondimento sulle tecniche di compressione texture
Redazione di Hardware Upg
07-11-2002, 10:53
Link alla notizia: http://news.hwupgrade.it/7466.html
Lithium spiega nel dettaglio le tecniche utilizzare per la compressione delle texture in ambito 3D
Click sul link per visualizzare la notizia.
Eraser|85
07-11-2002, 11:29
Come sempre molto interessanti questi articoli di Lithium!
peccato che nei forum infestati di "bambocci" quando si parla di argomenti 3D come questo.....non si fa avanti nessuno.....epure nei post ATI/NVIDIA..ecc.....ci sono tutti potenziali DIRIGENTI di marketing.. e ingenieri... che sparano a zero.. dando giudizi a volte al limite del ridicolo......
...
overmind
07-11-2002, 14:01
... cmq io mi ci diverto ha leggere quei post gaus :D
Tasslehoff
07-11-2002, 14:03
Originariamente inviato da gaus
[B]marketing.. e ingenieri... che sparano a zero.. dando giudizi a volte al limite del ridicolo......ingenieri? ARGH!!!!! :eek: :confused: :eek: :confused: :eek:
:D :D :D
questo vuol dire che Nvidia e Microsoft sono parecchio pappa e ciccia...
avevo sentito parlare che con l'arrivo della directx 9.0 sarebbe stato introdotto la profondità a 40bit. ma è vero? può darsi che c' entri qualcosa con il metodo di compressione di nVidia a 1:8?..
le attuali directX 8.1 utilizzano 8 bit per colore quindi 32 bit, le fure directx 9.0 useranno 32 bit per colore quindi raggiungendo i 128, sullo schermo arriveranno un milirdo di colori cifra massima di colori raggiungibile dagli attuali monitor, per il momento solamente ATI 9700 e la MATROX parhelia sono in grado di supportare tale tecnologia
magomerlinopaolo
07-11-2002, 15:47
ah ecco, diciamo che i 40bit sono il limite dei monitor, mentre POTENZIALMENTE le directx 9 arriverannoa 128bit...ma anche i nostri monitor possono visualizzare 40bit?
eh si.. che pignoli.. ho sbagliato.. mentre scrivevo veloce....INGEGNERE!!!!!!!!!!! va bene così...???????????
Forse hanno studiato dove ha studiato "L'ingegner Cane" (quello di Mai dire domenica).
GIANNI SONO OTTIMISTA!!!
Dovrebbero essere 42 gli effettivi
...un miliardo di colori si possono vedere ad occhio nudo?
Se no a cosa servono?
cdimauro
07-11-2002, 22:28
Originariamente inviato da gaus
[B]peccato che nei forum infestati di "bambocci" quando si parla di argomenti 3D come questo.....non si fa avanti nessuno.....epure nei post ATI/NVIDIA..ecc.....ci sono tutti potenziali DIRIGENTI di marketing.. e ingenieri... che sparano a zero.. dando giudizi a volte al limite del ridicolo......
...
Beh, la news è di oggi, dovresti almeno dargli il tempo di buttar giù due righe... ;)
Cmq, sarà anche vero che il forum è infestato da lattanti, ma di cosa dovremmo parlare? L'argomento è molto tecnico, quindi non proprio facile da digerire...
Personalmente non ho trovato spunti per una discussione: in genere mi diverto a leggere questi articoli tecnici, ma aspetto che siano gli altri a chiedere lumi... :)
P.S. Non sono un ingegnere... ;)
cdimauro
07-11-2002, 22:45
Originariamente inviato da BEMPINO
[B]le attuali directX 8.1 utilizzano 8 bit per colore quindi 32 bit, le fure directx 9.0 useranno 32 bit per colore quindi raggiungendo i 128, sullo schermo arriveranno un milirdo di colori cifra massima di colori raggiungibile dagli attuali monitor, per il momento solamente ATI 9700 e la MATROX parhelia sono in grado di supportare tale tecnologia
Occhio ragazzi che i 32 bit non sono utilizzati per rappresentare i colori con i numeri interi, ma con quelli in virgola mobile (floating point a 32 bit), per cui i valori per ogni componente variano tra circa -10^39 a +10^39 e fino a 6-7 cifre di precisione.
L'introduzione dei fp per la rappresentazione dei colori era l'ultima barriera rimasta per avvicinarsi sempre più ad un'elaborazione che permettesse d'ottenere immagini più "morbide", con delle variazioni meno marcate rispetto ad un'immagine elaborata con i classici interi ad 8 o 16 bit.
Soprattutto si rendono utili perché ormai, anche a livello del colore del singolo pixel, vengono applicati diversi effetti, uno dopo l'altro, che potrebbero portare a "stacchi" e "sbavature" evidenti con l'utilizzo degli interi (a causa degli errori di arrotondamento e di saturazione che questo sistema comporta).
Comunque alla fine del processo di elaborazione, le componenti del colore ottenute vengono "ridotte" sempre a degli interi, 8 bit/componente nella maggior parte dei casi, 10 nelle schede che posseggono Ramdac di qualità.
Non è che l'occhio possa riuscire a distingue tutti quei colori, ma poiché è particolarmente sensibile alla variazione di luminosità, sarà possibile ottenere dei gradienti molto più "fini", che non presentano degli "stacchi" tra un colore e l'altro, come avviene invece con i colori ad 8 bit/componente...
P.S. La Parehelia non utilizza numeri in virgola mobile per le componenti dei colori, ma solamente in virgola fissa (tramite interi). Ciò si è reso necessario per ridurre sensibilmente il numero di transistor...
cdimauro
07-11-2002, 22:51
Originariamente inviato da magomerlinopaolo
[B]ah ecco, diciamo che i 40bit sono il limite dei monitor, mentre POTENZIALMENTE le directx 9 arriverannoa 128bit...ma anche i nostri monitor possono visualizzare 40bit?
Non credo: il segnale, anche se viene spedito in forma analogica dalla scheda video al monitor, in genere viene sempre ricampionato dalla circuiteria di quest'ultimo e "dato in pasto" al processore grafico che può applicare degli effetti o sovraimporre delle immagini (On Screen Display), per poi spedire il tutto alla logica che controlla il pennello elettronico e che si occuperò di riconvertire il tutto in analogico.
Se il processo di (ri)campionamento avviene ad 8 bit, l'informazione verrà comunque "troncata", anche se all'origine era a 10 o più bit. Se invece vengono utilizzati più bit, potrebbe benissimo essere preservata.
Insomma, dipende tutto da come lavora il monitor... :)
cmq ho sentito ke i monitor lcd non digeriscono + di 32 bit perke sono digitali e non analogici come tutti gli altri
è vero?
L'occhio umano non arriva a 32 bit colore (16 milioni di colori). Inoltre contemporaneamente sullo schermo ci sono alla risoluzione 1600x1200=1920000 punti e quindi contemporaneamente sullo schermo ci sono cmq meno di 2 milioni di colori.(a 1024x768 sono meno di 800mila)
x cdmauro:
Non sapevo che le schede grafiche elaborassero le tonalità in floating point per poi campionarle, grazie per l'informazione. So per certo invece che le immagini a 24 bit sono memorizzate in blocchi da 8 bit x colore R,G,B e non so come si potrebbe fare a ricavare 40 bit di colore da esse visto che (credo) la (quasi) totalità dei formati di immagine compressa e non è definita in questo modo.(nei 32 bit gli 8 aggiuntivi sono x l'effetto alpha di trasparenza)
cdimauro
08-11-2002, 21:22
Sole le ultime schede grafiche full DirectX 9 elaborano il colore in floating point e poi ne convertono le componenti in valori interi, a seconda del RamDAC di output...
Se ci sono delle schede che hanno una resa finale a 40 bit, vuol dire semplicemente che ogni componente ha 2 bit in più rispetto al classico formato a 32 bit. Infatti (R, G, B, A) 4 x 10 = 40 bit.
Ok, ma esistono programmi in grado di elaborare immagini a 40 bit? Inoltre se un'immagine è salvata a 24 (o a 32) cioé a 8 bit/colore una scheda video da 40 bit la può trattare né più né meno come la tratterebbe una scheda video da 24 (o 32). Infatti anche se potesse utilizzare 10 bit/colore in che modo potrebbero essere utilizzati i due bit aggiuntivi? L'unico modo (credo) è usare i due bit aggiuntivi come estensione in cui ognuna delle 256 tonalità per colore viene estesa a 1024 tonalità sfruttando quattro sfumature (cioé tre in più) x ogni colore base a 8 bit.
Ma per la limitazione dell'occhio umano di cui si discuteva, tutto ciò non potrebbe essere percibile "ad occhio nudo".
Errore di scrittura, mi corrego percibile=percepibile
Mi scuso..
cdimauro
11-11-2002, 20:24
Originariamente inviato da iansolo
[B]Ok, ma esistono programmi in grado di elaborare immagini a 40 bit?
Photoshop :) può elaborare le immagini a 16 bit per componente...
[B]Inoltre se un'immagine è salvata a 24 (o a 32) cioé a 8 bit/colore una scheda video da 40 bit la può trattare né più né meno come la tratterebbe una scheda video da 24 (o 32). Infatti anche se potesse utilizzare 10 bit/colore in che modo potrebbero essere utilizzati i due bit aggiuntivi? L'unico modo (credo) è usare i due bit aggiuntivi come estensione in cui ognuna delle 256 tonalità per colore viene estesa a 1024 tonalità sfruttando quattro sfumature (cioé tre in più) x ogni colore base a 8 bit.
Le immagini che in partenza sono a 24/32 bit sono visualizzate allo stesso modo da una scheda a 40bit: non ci sono benefici.
Si deve, quindi, lavorare con immagini nativa a 40 bit (o superiori) per poter apprezzare la differenza di dettaglio...
Ma per la limitazione dell'occhio umano di cui si discuteva, tutto ciò non potrebbe essere percibile "ad occhio nudo".
Beh, l'occhio "nudo" ha tanti limiti, ma anche tanti pregi... :) Infatti, se è vero che può distinguere una gamma di colori e sfumature limitata, che potrebbe far pensare che i 24 bit potrebbero essere sufficienti, dall'altra parte ci sono due fattori che evidenziano, invece, i limiti dei dispositivi elettronici più diffusi:
1) Lo spazio dei colori RGB utilizzato dai monitor e dagli LCD non copre tutta la gamma dei colori dell'iride: infatti vengono tagliate fuori delle tonalità di colore (sul magenta/violetto più che altro). Non c'entra nulla col discorso dei 32/40 bit: lo riporto per arricchire la discussione... :)
2) L'occhio distingue meglio la variazione di luminosità rispetto a quella del colore. Infatti, se visualizziamo un gradiente che copre tutte le tonalità di grigio (256, dal nero al bianco), possiamo notare che il passaggio da una tonalità a quella successiva a volte è perfettamente visibile. Infatti l'occhio riesce a percepire il "balzo" in avanti perché le tonalità utilizzate non sono sufficienti ad "ammorbiderne" il passaggio. Utilizzando 10 bit per componente, le tonalità aumentano e le variazioni di luminosità diventano più "fini", per cui è più difficile per l'occhio notare questi "balzi". E' per questo, infatti, che esistono dispositivi che arrivano ad utilizzare fino a 16 bit per componente (48/64 bit) anziché i canonici 8 (24/32 bit)... :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.