Ho scaricato POV-ray e ho reso questo lucido sfera di metallo stile anni '90:
Il tuo compito è fare la stessa cosa, ma farlo implementando tu stesso il motore di rendering nel minor numero di byte possibile. Non è necessario replicare questa esatta immagine - qualsiasi immagine di una sfera riflettente sopra una scacchiera infinita lo farà, purché soddisfi i criteri di seguito.
Regole:
L'immagine deve rappresentare una sfera riflettente sospesa sopra una scacchiera infinita. Sia la scacchiera stessa che il suo riflesso nella sfera devono essere mostrati nell'immagine. Deve essere visivamente chiaro che questo è ciò che stiamo vedendo. Oltre a ciò, i dettagli della geometria, i colori, le proprietà del materiale ecc.
Ci deve essere un po 'di luce nella scena: parti della sfera dovrebbero essere più scure di altre parti e visivamente dovrebbe essere possibile dire approssimativamente da dove proviene la luce. Oltre a ciò, i dettagli del modello di illuminazione dipendono da te. (Se lo desideri, puoi inventare il tuo modello di illuminazione semplificato.) La sfera non deve proiettare un'ombra.
I due criteri di cui sopra - indipendentemente dal fatto che sembri davvero una sfera lucente sopra una scacchiera illuminata da una fonte di luce - saranno valutati dalla comunità usando il voto. Pertanto, una risposta deve avere un punteggio positivo per poter vincere.
L'output deve essere di almeno 300x300 pixel. Può essere visualizzato sullo schermo o scritto in un file, o va bene.
Il codice dovrebbe essere eseguito in meno di un'ora su un computer moderno e ragionevole. (Questo è generoso - POV-ray rende la scena sopra praticamente istantaneamente.)
Non è possibile utilizzare alcuna funzionalità di ray tracing integrata: è necessario implementare il renderer da soli.
Si tratta di code-golf , quindi vince la voce con punteggio positivo con il codice più breve (in byte). Tuttavia, sei anche invitato a giocare al meta-gioco per ottenere il maggior numero di voti disegnando una bella immagine (mantenendo ovviamente il codice breve).
Questa sfida potrebbe sembrare ridicolmente difficile, ma dal momento che la geometria è fissa, l'algoritmo per il rendering di una tale scena mediante ray tracing è piuttosto semplice. È davvero solo un caso di iterare su ogni pixel nell'immagine di output e valutare un'espressione matematica per vedere di che colore dovrebbe essere, quindi sono ottimista sul fatto che vedremo delle buone risposte.