Come implementare RGBA nel microcontrollore a 8 bit?

1

Ho collegato con successo il mio microcontrollore alla mia TV tramite l'adattatore VGA che ho realizzato per convertire i segnali digitali in analogici con l'aiuto di resistori.

Attualmente sto usando 8 pin che sto usando come 2 Red 2 Green 2 Blue 1 Hsyn e 1 Vsyn. Stavo pensando se c'è un modo per aggiungere 'A' Alpha in esso, è usato per la trasparenza. La mia altra domanda è che Alpha sia pilotato dal software o sia nell'hardware?

Apparentemente, non ho trovato alcuna risorsa rilevante sul lato hardware di RGBA. Ho notato che Gameduino l'ha usato nel loro microcontrollore a 16 bit. È possibile utilizzare il multiplexing / charlieplexing in questo problema?

    
posta AceofSpades 18.04.2013 - 05:50
fonte

1 risposta

2

Sì, dovrai supportare il tuo canale Alpha nel software. Se hai 3 byte per RGB, avrai bisogno di un byte Alpha extra per rappresentare la trasparenza del pixel nelle tue immagini sorgente.

La fusione entra in gioco quando si compongono tutti gli strati uno sopra l'altro.

Per fondere hai bisogno di un buffer di dimensioni dello schermo nella memoria su cui copi ciascun oggetto.

Non hai menzionato quale lingua usi, ma se è C puoi convertire il tuo alfa in una percentuale che puoi usare per fondere con

float alpha = pixel.alpha / 255;
buffer[offset_dst].R += pixel[offset_src].R * alpha;
buffer[offset_dst].G += pixel[offset_src].G * alpha;
buffer[offset_dst].B += pixel[offset_src].B * alpha;

Ovviamente quel codice è solo a scopo illustrativo, in questo modo si satureranno rapidamente i pixel dei buffer con pochi livelli. Nota che non hai bisogno di un canale alfa nel buffer.

In ogni caso, una volta estratti tutti i tuoi elementi nel buffer, invia il buffer alla tua TV.

    
risposta data 18.04.2013 - 10:08
fonte

Leggi altre domande sui tag