Effetti pseudo 3D con matematica e Python

Gli esperimenti matematici ai quali mi sto dedicando negli ultimi giorni con Python (introdotti qui e qua) mi hanno portato a produrre immagini un po’ meno astratte, più ricche di forme e contorni definiti.

La naturale evoluzione di questi test mi ha indotto a testare la visualizzazione di contesti pseudo tridimensionali. L’aggettivo “pseudo” è d’obbligo perché uno dei piaceri di produrre queste immagini è rappresentato dalla consapevolezza che quanto viene visualizzato non è stato prodotto sulla base di conoscenze e concetti 3D di alcun genere.

Per generare la figura che segue non è stato necessario sviluppare un algoritmo che possedesse il concetto di “tridimensionalità” o di “oggetto” ma, e qui sta l’aspetto teorico più affascinante, tutto ciò che si crede di osservare è semplicemente un’illusione ed il frutto di una semplice formula matematica.

Posto che l’obiettivo non era quello di ricreare una scena realistica ma solo quello di riprodurre forme riconoscibili, un minimo di cura è stata comunque posta nel tentativo di aumentare un po’ di più la realisticità, attraverso semplici effetti di luce.

Per esempio, la luminosità dei pixel che compongono lo sfondo, che può essere considerato un pavimento se si immagina di osservare la scena dall’alto, è stata calibrata in funzione della loro distanza dal centro dell’immagine.

Attraverso la semplice regola appena descritta è stato ricreato un effetto di ombra diffusa senza doversi occupare del meccanismo che sta alla base della natura delle ombre, ovvero la riduzione della luminosità a seguito della sua parziale occlusione da parte di oggetti.

Allo stesso modo, per riprodurre un oggetto che potrebbe somigliare ad una sfera, è stato sufficiente ipotizzare la presenza di un soffitto a scacchi e creare un cerchio che ne riprendesse e amplificasse il motivo secondo regole di distorsione simili alle riflessioni tipiche delle sfere. Anche nel caso del cerchio, è stato impiegata una semplice modifica della luminosità dei pixel per conferire un po’ più di profondità alla scena.

Non penso che mi spingerò oltre nei tentativi di ricreare con formule matematiche effetti pseudo-3D realistici, perché oltre ad un certo limite avrebbe senso passare al vero 3D e alle librerie pensate appositamente per questo scopo.

Ma a quel punto diverrei un semplice grafico/scultore e il divertimento di creare da zero illusioni matematiche non esisterebbe più.

Potrei essere invece interessato a perlustrare, dopo molti anni, alcune vecchie tecniche di illuminazione e texturing basate su “attrattori”. Spero di averne il tempo in futuro. 🙂

Red sphere

L'immagine risultato delle tecniche di distorsione e illuminazione accennate nell'articolo. Il codice sviluppato non si basa su concetti 3D ma solo bidimensionali, usati ad arte per ingannare gli occhi.

Leave a Reply

Your email address will not be published. Required fields are marked *