Pages vues depuis 25/07/2007 : 28 366 603
Index du forum »» Création-Développement »» Petite démo Nova
Hello
[Pour ceux qui savent pas quoi faire avec leur enhancer pack....]?EUREUR
Je me suis remis au déboguage d'une démo Nova que j'avais commencé il y a qques mois : Nova Onda cad la nouvelle vague en portugais
http://thellier.free.fr/NovaOnda.lha
C'est un portage de ceci
https://github.com/gametutorials/tutorials/blob/master/OpenGL/Height%20Map%20Part6/RealisticWater.pdf
A la base c'est un programme OpenGL+Shader pour PC mais j'arrivais pas à le porter sur Amiga avec GL-ES.
Donc j'ai carrément enlevé tout usage de GL c'est donc devenu un programme "Pur Nova"
Il faut Nova 1.37 ou mieux car ça a besoin du "rendu dans une texture"
C'est fait en trois parties
1)"Sky Cube" dans lequel on se trouve avec 6 faces de paysages
Ici rien que de la 3D basique sans effets spéciaux
2)"Terrain" fait avec une grille de triangles qui suit la hauteur d'une image en niveau de gris
A ce terrain j'ai ajouté un éclairage Gouraud (en plus de celui déjà en dur dans la texture fournie donc c'est pas top...)
La texture principale est mélangé avec une texture "detail" plus détaillée
A ce terrain sous le niveau de l'eau s'ajoute une texture "caustics" animée représentant grossièrement les taches de lumières mouvantes au fond de l'eau
(taper 'd' pour voir ce que je veut dire...)
Ici rien que du multi-texturing comme MiniGL/Warp3D rien de neuf
3)"Eau" qui est une simple face unique rectangulaire et plate dont chaque pixel est calculé au shader
La scene a été rendue dans une texture "refraction" une première fois (donc marche que dans les Nova récents)
Puis avec une "Normal map" et une "dU dV map" l'effet est calculé selon l'angle /lumière dans le pixel shader
- Une part de refraction (reflet du paysage déformé) où la texture "refraction" est affiché à l'envers et déformée
- Une part de difraction (fond du lac déformé) où la texture "refraction" est affiché déformée
- Le reflet spéculaire ajouté
C'est uniquement cet effet "Eau" qui fait vraiment usage de fonctionnalités de rendu par pixel (fragment shader) propre à Nova
Contrairement à la version GL je n'emploie plus le Fog ni de depth-map ni deux textures pour la réfraction/diffraction mais une seule
Le Fog et/ou la depth-map servait à rendre l'eau plus sombre avec la profondeur mais cela rendait les "caustics" invisibles dans la démo PC
La caméra marche pas top, je sais...
On doit pouvoir remplacer les textures par d'autres de même nom
Voilà
Alain
PS: Sources sur demande
C'est vrai y a pas grand chose mais j'ai vraiment eu du mal à le faire marcher :-P
Voilà une image mais le JPG a un peu flouisé l'effet et on perd le coté hypnotique de l'eau qui bouge...
http://thellier.free.fr/NovaOnda.jpg
ou en plus net et gros
http://thellier.free.fr/NovaOnda.png
Je suis pas hyper satisfait du résultat même si c'est le soulagement que ça marche enfin que je partage ici
1) les textures sont moches : il faudrait que je les remplace par de plus beaux paysages
2) la caméra fait un peu n'importe quoi
3) l'effet est pas si bien programmé que ça à la base même dans la version PC :
En fait il utilise beaucoup trop de textures : il y la "Normal map" la "dU dV map" et 32 images de "Caustics" pour les animer
Alors que on comprends bien intuitivement que tout l'éclairage de l'eau devrait dépendre de la seule "Normal map" et même en fait de la seule "Height map" de l'eau
Alain