J'ai un sol hexagonal infini, généré en tessellant une grille de points dans une paire de shaders de tessellation:
Notez qu'il s'agit d'un filaire plat - les "ombres" sont un truc d'éclairage:
Maintenant, je voudrais que ce soit un verre épais et réfringent, mais je ne sais pas comment procéder.
La première chose qui m'est venue à l’esprit est de
- définir un uniforme contenant "l'épaisseur" demandée des blocs
- Lors du calcul de l'éclairage, utilisez la loi de Snell pour calculer la longueur du chemin optique qu'un rayon prendrait à travers le bloc hexadécimal, s'il était réellement aussi épais que le dit l '"épaisseur" uniforme, et additionnez l'alpha sur cette longueur. Cela donnerait la transparence, mais ne gère pas des choses comme la réflexion interne / TIR, etc.
Je n'ai pas encore essayé cela, donc je ne suis pas sûr du résultat visuel.
En fin de compte, pour ce niveau particulier, j'essaie d'obtenir ce look de sol hexagonal en verre utilisé dans Tron: Legacy pendant la bataille de disques. ( Voir cette image pour un exemple .)
Suggestions?