Comment implémenter l'effet de surface d'océan avec OpenGL ES 1.1? [fermé]

StackOverflow https://stackoverflow.com/questions/177935

  •  05-07-2019
  •  | 
  •  

Question

Je travaille sur un jeu iPhone qui se déroule à la surface de l'océan. Quelqu'un peut-il recommander des exemples de code ou des tutoriels pour implémenter des vagues ou des ondulations dans OpenGL?

Au moment où j'écris ces lignes, iPhone ne prend en charge que OpenGL ES 1.1. Par conséquent, les shaders et autres effets spéciaux ne sont pas pris en charge.

Je n'ai besoin de rien d'extraordinaire. Je n'ai pas besoin de réflexions, par exemple. Je ne veux pas surcharger l'appareil. J'ai juste besoin de quelque chose qui ressemble un peu à un océan. (Mais ce serait bien s'il avait l'air aussi beau que Koi Pond.)

Était-ce utile?

La solution

L’iPhone est un peu comme un GPU de 1999 en termes de fonctionnalités (par exemple, NVIDIA Riva TNT 2). Ainsi, vos options les plus réalistes ne font que mélanger plusieurs textures défilantes.

E.g. avoir une texture avec un "motif de vague". Configurez-le en deux étapes de texture et faites-le défiler dans des directions / vitesses différentes (via une matrice de texture). Configurez les combineurs de texture pour ajouter les textures ensemble pour obtenir le résultat final (ou effectuez une autre opération; de nombreuses possibilités ici).

Autres conseils

Ajoutez les termes du formulaire:

a * sin(b * x + c * y + d * t)

Chacun de ces termes produit un ensemble d'ondes droites ennuyeux de la manière suivante: a est l'amplitude (hauteur) apportée par ces ondes, b et c contrôle la direction relative et la fréquence (espacement) des vagues, et d décale les vagues dans cette direction au fur et à mesure que t (le temps simulé) change.

Expérimentez quelques termes de cette forme en maintenant t constant pour obtenir une surface ondulante. Vous pouvez alors "syntoniser" les coefficients pour obtenir le degré de rugosité que vous aimez. Une fois que vous avez trouvé quelques ensembles de coefficients qui vous conviennent, laissez t varier pour le mettre en mouvement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top