Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OpenGL] comment faire un océan ?

    29 novembre 2008 à 21:44:04

    Bonsoir, j'aimerai savoir comment on peut faire pour représenter de l'eau avec opengl ?
    Ensuite dans les jeux on voit souvent l'océan qui s'étend à l'infini, quelle est la technique utilisée pour faire ça ?
    Si vous avez des réponses ou des tutos à me proposer je suis preneur ! Merci d'avance. :)
    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2008 à 10:58:30

      Bonjour,
      En fait ,il y'a plusieurs moyens pour simuler les fluides (tel que l'eau).

      La premiére méthode est le CFD (Computational Fluid Dynamics) ,en résolvant les équations physiques (de conservation de masse....),on pourra simuler toutes sortes de fluides (gaz,eau,flamme..)mais l'inconvénient c'est qu'elle est extremement compliqué et difficile.

      La deuxiéme méthode ,qui est la plus utilisé dans les jeux vidéos,est d'utiliser les différentes effets que propose opengl par exemple générer un terrain aléatoirement ensuite lui appliquer un matériaux transparent avec une couleur bleue...Le résultat sera plus ou moins satisfaisant.
      Les liens suivants peuvent t'aider dans ta recherche:
      Un programme de Simulation des océans
      Tutoriel qui présente une méthode pour simuler des océans réalistes (en anglais)
      • Partager sur Facebook
      • Partager sur Twitter
        30 novembre 2008 à 12:42:13

        Reflection + refraction sur un plan, rien de plus. Ensuite tu fais défiler tes normal maps via les coordonnées de texture pour donner l'impression que l'eau bouge, et hop c'est dans la poche.
        Si tu veux un modèle plus complexe, voir GPU Gems :
        http://http.developer.nvidia.com/GPUGe [...] ems_ch01.html
        http://http.developer.nvidia.com/GPUGe [...] ems_ch02.html
        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2008 à 18:02:27

          Merci c'est exactement ce que j'attendait, si j'ai bien compris ,en gros c'est une surface plane et transparente sur laquelle on fait bouger une texture ? Par contre c'est pour les vagues réelles que je vais avoir du mal avec les formules mais bon, déjà si j'arrive à faire avec les textures qui bougent ça sera super, sinon pour la réflexion/réfraction ce n'est pas dans ma prioriété mais je garde quand même le lien ;)
          A+
          • Partager sur Facebook
          • Partager sur Twitter
            1 décembre 2008 à 4:36:46

            Citation : cdd59554

            sinon pour la réflexion/réfraction ce n'est pas dans ma prioriété mais je garde quand même le lien ;)


            Si tu ne fais pas ça tu n'auras qu'un plan texturé, autrement dit rien qui ne ressemble vraiment à de l'eau...
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              1 décembre 2008 à 7:07:11

              Perlin noise très bon algorythm pour faire de l'eau réaliste.
              • Partager sur Facebook
              • Partager sur Twitter
                1 décembre 2008 à 12:26:14

                Le perlin noise c'est chouette pour faire du bruit.
                Faire de l'eau et générer une image de bruit via un perlin noise ça n'a pas beaucoup de rapport...
                • Partager sur Facebook
                • Partager sur Twitter
                  1 décembre 2008 à 18:14:59

                  Ce qu'a dit yno est le plus simple et rend tres bien !
                  Apres si tu veux faire de réel vague, il va falloir afficher un quadrillage (plus ou moins détaillé selon la distance par rapport a la camera) avec un displacement mapping.

                  Un bon lien : http://blogs.nofrag.com/Xfennec/2006/a [...] r-pour-l-eau/
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 décembre 2008 à 20:43:02

                    Merci c'est très interressant tout ça, juste une question : pour le bruit ça ne serait pas mieux de le précalculer et d'utiliser la meme image animée en boucle ( ou une suite d'images qui s'enchainent ) qui servira de base pour les effets, plutot que de calculer le bruit en temps réel a chaque fois ? Je dit ça parce que ça doit être beaucoup mieux au niveau des performances, non ?
                    Pour les effets de vagues je vais utiliser le système de quadriage proposé par XT95
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 décembre 2008 à 20:49:00

                      Citation : cdd59554


                      Pour les effets de vagues je vais utiliser le système de quadriage proposé par XT95



                      Dans ce cas la il existe un belle exemple ici.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 décembre 2008 à 21:22:15

                        Merci beaucoup, dès que j'aurait un rendu correct je mettrais quelques screens mais c'est pas pour tout de suite :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 décembre 2008 à 23:50:20

                          Citation : yamashi

                          http://www.youtube.com/watch?v=Bfjp-jUHmaE
                          perlin noise...


                          Et ? Les techniques permettant le rendu de l'eau sont celles de reflection/réfraction, le perlin noise n'entre pas en jeu pour le rendu, aucun rapport donc.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 décembre 2008 à 12:26:02

                            Je crois que c'est pour l'effet de déformation sous la surface de l'eau pour simuler des vagues quand on regarde de dessus , ou alors quand on est sous l'eau pour voir les objets à la surface déformé comme on le voit assez bien dans la vidéo avec les palmiers
                            Enfin je crois que c'est ce qu'il a voulu nous dire ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 décembre 2008 à 13:35:10

                              Non... ? Cet effet de déformation c'est la réfraction et/ou la réflection, en se basant sur une texture. Cette texture aura éventuellement pu être générée via un perlin noise, mais en aucun cas cet algorithme n'entre en jeu dans le cadre du rendu.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              [OpenGL] comment faire un océan ?

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown