J'écris un petit moteur isométrique 2d en C ++ et j'essaie d'implémenter le casting d'ombres en temps réel. J'ai suivi une approche simple décrite sur cette page et voici le résultat (la lumière est située à la même position que le cube jaune):
Le résultat est très agréable mais il manque des ombres sur les murs et sur le dessus des cubes. Voici un exemple de ce à quoi cela devrait ressembler (j'ai dessiné les ombres attendues en vert):
Tous les cubes dessinés sont simplement constitués de 3 quads 2D situés à une position XY et avec une profondeur Z (z = x + y). J'utilise OpenGL avec une matrice orthographique (glOrtho). Les ombres sont dessinées à l'aide du tampon de gabarit.
Je suis à la recherche de ressources ou de solutions qui pourraient m'aider à terminer cette implémentation du casting d'ombres.
Merci beaucoup!