Rendu de plusieurs "plans d'eau" non aligné en OpenGL

Rendu de plusieurs "plans d'eau" non aligné en OpenGL - Divers - Programmation

Marsh Posté le 06-08-2012 à 23:10:53    

Bonjour,
 
Je développe depuis quelques mois maintenant un petit jeu vidéo appelé Build&Defend (http://buildanddefend.com/).
 
Dans ce jeu, le monde est composé de blocs -- comme dans le jeu minecraft.
Chaque bloc à un type associé: terre, sable, vide, eau, pierre, etc.
 
Pour l'instant, le rendu est relativement simple.
Vous pouvez vous faire une idée avec cette capture d'écran suivante:
 
http://buildanddefend.com/screen/alpha%207/03.png
 
Pour l'instant, les blocs d'eau sont rendu avec une simple texture animé.
Ce que j'aimerais faire maintenant, serait de pouvoir d'ajouter aux cubes d'eau des effet de réflexion/réfraction (+l'ondulation).
 
J'ai appris l'opengl il y a assez long temps, et la techniques que j'ai toujours utiliser pour rendre de l'eau (ou des miroirs dayeur) est de considéré un "plan "d'eau", et de rendre la scène deux fois par rapport à ce plan(une fois normalement, et une fois avec un symétrie planaire par rapport au plan d'eau).
 
Mon problème est le suivant.
 
Comme il y a plusieurs blocs d'eau, il y à aussi plusieurs "plans" de réflexion pour l'eau (jusqu'à 6 par cubes).
La technique du miroir ne marche donc plus.  
Est-ce-qu'il y aurait parmi vous des gens qui connaissent l'openGL moderne et qui aurait une idée pour résoudre ce problème (que j'espère avoir plus ou moins correctement expliqué).
 
Merci beaucoup par avance.

Reply

Marsh Posté le 06-08-2012 à 23:10:53   

Reply

Marsh Posté le 12-08-2012 à 00:14:23    

Salut,
 
Tu pourrais éventuellement ne rendre les réflexions que sur la surface de tes cubes d'eau. Auquel cas il te faudra rendre ta scène une fois pour chaque plan horizontal d'eau, ce qui peut être tout de même couteux...
 
L'avantage de cette méthode (rendu symétrique & stencil test), c'est que tu as des reflets dynamiques, par contre tu ne peux pas déformer les reflets avec l'ondulation de l'eau.
 
Du coup je te proposerai plutôt une solution simple et cheap, des reflets dans une cubemap statique. Forcément c'est statique, mais ca rend très bien avec l'ondulation de l'eau.


Message édité par ech2810 le 12-08-2012 à 00:19:04
Reply

Marsh Posté le 12-08-2012 à 14:19:36    

Regarde du côté du GLSL, tu devrais trouver chaussure à ton cube :D


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 13-08-2012 à 09:29:23    

Merci pour vos réponses

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed