trou dans un rectangle [OpenGL] - C++ - Programmation
Marsh Posté le 09-04-2003 à 13:42:37
tomwy a écrit : Bonjour, je voudrais faire un truc tout con : une fenetre dans un mur. J'ai le mur et la jolie texture qui va avec ( pas trop dur jusqu'ici ;-) ) mais j'aimerais qu'il y ai une ouverture rectangulaire au milieu. Est ce possible de d'abord dessiner le mur avec la texture et ensuite de definir le "trou" ? |
Ben j'ai pas trop de souvenir en OpenGl, mais d'un point de vue strictement méthodologique, la méthode consitant à faire un mur puis à ajouter le trou ne me parais la meilleurs qui soit ( je me trompe peut être ). Je veux dire, quand dans la vrai vie tu construit un mur avec une fenêtre, tu fais pas un mur que tu casse ensuite pour y ajouter la fenetre ( généralement )...
La meilleurs solution me semble tout de même de construire ton mur par "brique", mais il y a peut être une solution plus élégante en OpenGl ?
Marsh Posté le 09-04-2003 à 13:47:57
J'ai pensé a ca mais apres il faut appliquer la texture sur chaque partie du mur et elle n'est pas uniformement repartie.
Il doit bien y avoir une solution.
Marsh Posté le 09-04-2003 à 13:50:18
dessiner ta fenetre dans le stencil buffer, puis dessiner le mur en prenant garde a n'ecrire dans le color buffer que la ou le stencil buffer est non-ecrit
perso je referais mon mur avec un trou dedans plutot que de me casser la tete la dessus
Marsh Posté le 09-04-2003 à 13:54:44
chrisbk a écrit : dessiner ta fenetre dans le stencil buffer, puis dessiner le mur en prenant garde a n'ecrire dans le color buffer que la ou le stencil buffer est non-ecrit |
Oula c quoi ces buffers ? Je debute en opengl, je vais faire des recherches pour en savoir plus.
Marsh Posté le 09-04-2003 à 13:57:22
tomwy a écrit : |
Color buffer : ce qui est affiche a l'ecran
Z-Buffer : tri de profondeur
Stencil-buffer : Bonne question. Sert un peu pour tout, par exemple pour ce genre d'exclusion
Marsh Posté le 09-04-2003 à 14:06:07
En fait si je comprend bien il faudrait que je mette des 0 dans le color buffer pour les points que je ne veut pas afficher ( les points de ma fenetre en l'occurence ).
Comment trouver un point dans le buffer a partir de ses coordonnées ?
Marsh Posté le 09-04-2003 à 14:09:41
tomwy a écrit : En fait si je comprend bien il faudrait que je mette des 0 dans le color buffer pour les points que je ne veut pas afficher ( les points de ma fenetre en l'occurence ). |
Laisser tomber ces méthodes totalement fantaisistes ( ) : Définis un objet 3d rectangulaire avec un trou, c'est 10000x plus simple.
Marsh Posté le 09-04-2003 à 14:11:41
nan
-tu clear le stencil
-tu active l'ecriture dans stencil (incrementation), tu desactive l'ecriture dans le colorbuffer
-tu dessine la fenetre. REsultat : rien dans le colorbuffer, par contre t'as la silhouette remplie de la fenetre dans le stencil
-desactive ecriture dans stencil, active ecriture dans color, active test sur stencil de facon a ce qu'un point soit ecrit dans le colorbuffer que si sa valeur associee dans le stencil est nulle
-dessin du mur : a l'endroit de ta fenetre tu auras un trou
Citation : |
Si jamais tu vise le realtime, oublie toute suite l'idee d'ecrire "a la main" dans les differents buffer. OGL permet ce genre de sport, mais ce n'est clairement pas une bonne chose. Utilise les fonctions de dessins d'ogl (glBegin pour la plus simple)
Marsh Posté le 09-04-2003 à 14:12:31
Tetragrammaton IHVH a écrit : |
je sais bien, c aussi ce que lui ai dit, mais bon je propose uen solution exacte en tenant compte des donnees initiales
Marsh Posté le 09-04-2003 à 14:12:35
Tetragrammaton IHVH a écrit : |
Oui justement c ce que j'aimerais faire : definir un objet rectangulaire avec un trou, et par la meme occasion que la texture soit bien repartie dessus. Mais comment je fais ???
Marsh Posté le 09-04-2003 à 14:15:40
tomwy a écrit : |
De la même manière que tu créés tous tes autres objets 3D : avec un éditeur de meshes.
Marsh Posté le 09-04-2003 à 14:19:09
Tetragrammaton IHVH a écrit : |
mmm bon ca va etre surement plus simple. Un editeur de meshes c quoi ? genre 3Dstudio ?
En fait je pensais qu'il y avait un moyen tout con de faire un trou mais bon ...
Sinon juste une petite question : tout ce qui est dessiné dans le stencil n'apparait pas a l'ecran c ca ?
Marsh Posté le 09-04-2003 à 14:20:15
tomwy a écrit : |
ouaip 3ds
seul le color buffer apparait a l'ecran (je crois que je t'ai embrouille, moi )
Marsh Posté le 09-04-2003 à 14:25:55
chrisbk a écrit : |
Non j'ai vu des exemple sur le stencil buffer, ca a l'air interessant.
Sinon ya pas des petits editeurs plus leger que 3dStudio car le temps que j'effectue l'achat de ce logiciel par internet ca va être un peu long.
Marsh Posté le 09-04-2003 à 14:27:09
tomwy a écrit : |
Milkshape3D est pas mal pour débuter.
Marsh Posté le 09-04-2003 à 14:30:01
Tetragrammaton IHVH a écrit : |
Ok merci. Mais comment je charge l'objet apres dans mon prog ? Je suis limité au langage C et a glut.
Marsh Posté le 09-04-2003 à 14:32:45
tomwy a écrit : |
Il y a une 30aine de formats d'export dans Milkshape3D.
Il me semble que tu peux exporter en code C direct pour faire tes tests mais il faudra bien que tu utilises un format pour tes objets lorsque tu dépasseras le stade des tests.
Marsh Posté le 09-04-2003 à 14:39:00
Tetragrammaton IHVH a écrit : |
Ok merci pour votre aide.
Marsh Posté le 09-04-2003 à 13:35:50
Bonjour, je voudrais faire un truc tout con : une fenetre dans un mur. J'ai le mur et la jolie texture qui va avec ( pas trop dur jusqu'ici ;-) ) mais j'aimerais qu'il y ai une ouverture rectangulaire au milieu. Est ce possible de d'abord dessiner le mur avec la texture et ensuite de definir le "trou" ?
Merci de votre aide.