notJustCode.it
 
\\ Home : Articoli
Gamma Correction
Di RobyDx (del 03/08/2007 @ 09:58:19, in DirectX9, linkato 1657 volte)

La gamma correction è la gestione della luminosità dei colori sullo schermo. Ognuno dei 16 milioni di colori che le schede di oggi supportano ha un diverso grado di luminosità espresso con un valore da 0 a 65535 permettendo migliore resa grafica. Molte schede danno la possibilità di modificare la gamma del monitor ma DirectX permette di farlo dinamicamente nei giochi fullscreen. Possibilità? Potete ad esempio scurire tutti i colori per creare chiusure degli schermi o aumentarli per far sembrare più luminosa una stanza. Potete addirittura aumentare solo una tonalità per far virare i colori verso quello che volete.

Dim rampa As GammaRamp
device.SetGammaRamp(0, False, rampa)

0 è il numero dello swap chain (lasciatelo a zero), mentre il booleano indica se vogliamo calibrare (migliore resa maggiore pesantezza, controllate la compatibilità).

l'oggetto rampa di tipo GammaRamp permette di ricevere o settare i valori di luminosità di ognuno dei 256 valori di ogni colore (rosso, verde e blu).

Dichiarate un array di short

Dim lumin(255) As Short

impostate i valori ed assegnatelo ad un colore

rampa.SetRed(lumin)

Ora il rosso ha i valori di luminosità scelti. Fatelo per tutti e passatelo al device tramite l'istruzione setGammaRamp. Nota bene che gli short non vanno da 0 a 65356. I valori saranno compresi tra -32.768 e 32.767. La gamma normale per ogni colore si calcola ponendo a 0 il primo valore dell'array, n il secondo, 2n il terzo, 3n il quarto e così via. Se si supera il valore di 32767 si continua contando da -32768 e proseguendo (-32768+n, -32768+2n e così via). Il valore n compreso tra 0 e 255 rappresenta la luminosità (a 0 è nero, a 255 il massimo). Potete ovviamente modificare solo gli array dei colori che vi servono.

Vi lascio un esempio che modifica la gamma dei 3 colori comtemporaneamente (da bianco a nero).

Esempio VB.Net

Articolo Articolo  Storico Storico Stampa Stampa
I commenti sono disabilitati.
"Un progettista sà di aver raggiunto la perfezione non quando non c'è più niente da aggiungere, ma quando non c'è più nulla da eliminare"

Antoine de Saint-Exupéry


Cerca per parola chiave
 

Titolo
Articoli (4)
C++ (4)
Direct3D10 (30)
Direct3D11 (20)
DirectX9 (82)
DotNet (10)
English (9)
FanGames (22)
ManagedDX11 (2)
Materiale Utile (4)
News (39)
Shader Library (12)
SharpDX (1)
Software (25)
Tecnologia (19)
Varie (9)

Gli interventi più cliccati

Ultimi commenti:
If you wish to retai...
23/05/2013 @ 13:07:45
Di chanel outlet
You deficit of self-...
23/05/2013 @ 13:07:13
Di cartier watches uk
Reinforce your own l...
23/05/2013 @ 13:06:37
Di replica watches
Whenever you"re shiv...
23/05/2013 @ 13:06:11
Di swiss replica watches
It's likely you have...
23/05/2013 @ 13:05:02
Di chanel handbags
Cheap automobile ins...
23/05/2013 @ 13:04:28
Di replica watches

Titolo
Con quale tecnologia state realizzando o avete intenzione di realizzare i vostri progetti?

 DirectX11
 DirectX10
 DirectX9
 XNA
 DirectX8 o Precedenti
 OpenGL
 Motori grafici già pronti
 Altro

Titolo
Umorismo (17)

Le fotografie più cliccate



Ci sono 42 persone collegate
Sono state visualizzate  pagine

28/01/2022 @ 03:02:47
script eseguito in 42 ms