Affichage d'un relief en 3d

5/5 (4 avis)

Vue 8 187 fois - Téléchargée 1 422 fois

Description

Voila un petit exemple de code VB affichant une surface (plus précisement une surface paramétrée z=f(xy,y)) en utilisant la technique du Z-Buffer et entièrement avec les commandes de bases de VB.
L'affichage se fait sur un intervalle horizontal et vertical, et il est possible de se déplacer en utilisant les fléches. Ctrl + les fléches permettent de tourner autour de l'écran et Shift + les fléches permettent de faire un zoom (in et out).

Le relief affichée est celui d'une fonction z=f(x,y). Le source étant fourni, il suffit de modifier la fonction f(X, Y) pour modifier totalement le relief.

Conclusion :


Je compte faire une prochaine version de ce programme en utilisant cette fois une 3D plus puissante : 3d texturée avec éclairage phong shading. Une version directx est également prévue.

Le code est assez commenté pour comprendre ce qu'il fait. Si vous avez des questions, je pourrais y répondre, si je se suis pas trop busy.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
224
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
29 mars 2009

Tu as raison. A vrai, ton apli m'intéresserait car je voudrais faire une application pédago. utilisant une surface, un plan et traçant à côté la ligne de niveau associée.

Pour un code utilisant la souris, je peux éventuellement de filer une référence.
Messages postés
5
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
22 décembre 2006

F5 pour rafraîchir.
Ok, je vais mettre à jour le code pour déplacer avec la souris.

Pour colorer la surface, je suis obligé de changer de technique d'affichage. Au lieu de parcourir la surface et de tracer les lignes des rectangles qui constituent l'image, il me faut, par exemple, pour chaque rectangle, calculer son barycentre (moyenne des positions), en extraire un vecteur normal et en faire un produit vectoriel avec le vecteur de vision pour en obtenir un coefficient d'intensité de la teinte a appliquer au rectangle. C'est la base du gourou shading il me semble.
ce sera pour le version 2 ...
Messages postés
224
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
29 mars 2009

Bon prog et surtout intéressant pour voir comme utilizer le Z-Buffer.

Améliorations possibles.
1) Effectivement, il manque un bouton pour rafraîchir l'image.
2) Il serait intéressant de pouvoir pivoter l'image avec la souris.
3) La surface pourrait être colorée.

ram-bc te dit bravo....
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Le rendu est sympa, mais c'est dommage que pour rafraichir l'image, il faille changer la dimension de la Form. Un p'tit bouton "Rafraîchir" aurait été top !

Et pour une source qui traite de graphiques, autant mettre une capture d'écran, çà pourrait donner envie aux ens d'aller voir.

Le code est bien commenté, c'est agréable à lire.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.