Internet de les coses amb ESP32 i ESP8266

Exemples Referència Plaques   Recursos CITCEA
Projectes Programació Perifèrics   Inici
  Enrere

El problema del fals solapament

La gestió dels píxels a la pantalla es fa per blocs de vuit en vertical. Això implica que quan s'escriu en un dels píxels, s'actua sobre els altres set del mateix bloc. És possible que també passi en horitzontal en algun cas, però en vertical suceeix amb la majoria de les funcions.

Per poder entendre millor el problema, ho expliquemm amb un exemple. Imaginem que tenim dos sprites i en posem un a la posició (24, 24) i l'altre a la (24, 32). Els dos sprites s'haurien de veure correctament. Ara posem el primer a la (24, 28) i el segon a la (24, 36), en aquest ordre. Fixem-nos que els dos sprites fan 8 píxels d'alçada i, per tant, no es solapen; però de l'sprite superior (el primer que hem posat) només se'n veurà la part superior. Per què passa això?

El primer sprite està posicionat ocupant, per a cada columna de píxels, dos blocs verticals; un que va de la posició 24 a la 31 i un altre que va de la 32 a la 39. Per a una columna concreta, els bits a 1 encendràn el píxel i els bits a 0 l'apagaran, per a les posicions de la 28 a la 35. Però els altres píxels afectats (de la 24 a la 27 i de la 36 a la 39) seran apagats.

A la imatge de l'esquerra tenim el que esperaríem veure a la pantalla. A la imatge de la dreta tenim el primer sprite posicionat i es marquen en rosa els píxels que seran apagats durant aquest procés.

sprites     sprites

Un cop situat el primer sprite, que de moment es veurà correctament, es situa al segon. Aquest es situa de la 36 a la 43 però modifica de la 32 a la 47. Això ens apagarà els píxels de la 32 a la 35 seran apagats. Així, un cop situat el segon sprite, que es veurà correctament, s'haurà apagat la part inferior del primer.

A la imatge de l'esquerra tenim el segon sprite situat i es marquen en rosa els píxels que seran apagats durant aquest procés. A la imatge de la dreta podem veure quin serà el resultat real a la pantalla.

sprites     sprites

Quan els elements es mouen ràpid per la pantalla és probable que es vegi alguna cosa estranya però no s'arribi a copsar el que realment passa, però si els dos sprites van junts o es desplacen lentament l'efecte serà molt visible. No hem trobat una solució al problema i, per tant, només ens queda mirar de mitigar-ho amb una mica d'enginy.

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.