barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007
-
14 mars 2005 à 18:42
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 2007
-
19 mars 2005 à 18:43
Salut a tous,
J'ai créé une "heightmap" ou dedans je peux me deplacer.
Je lis dans un fichier ou mes vecteur sont tous rangés.
Par exemple :
fichier1.txt :
-15000 345 12734
.
.
.
15000 34 -12734
fichier2.txt
-500 23 500
.
.
.
500 56 -500
L'ennui est que lorsque la map s'affiche, je ne vois pas la difference
entre le fichier 1 et le fichier 2 !! je ne sais pas trop comment faire
....
OpenGL ne fait pas attention a mes coordonnée, il prend juste plus
grande je pense et fait une moyene..... d'ou le fait d'afficher des map
de meme "taille" sur l'écran !!
Comment peu on regler se probleme ???
peu etre tracer un ligne trés grande par rapport a ma carte pour bluffer opengl ?
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 18 mars 2005 à 18:09
Sorry, mais chez moi sa ne marche pas :((
tout cliniote super vite.... et je ne voi pas d'image mais que des carres....
en fait c a cause de ma carte 3D je pense.... j'ai une carte graph intel integree...
sur mon labtop....
snifsnif :((
parcontre j'ai finis de faire ma physique !!! et sa marche :)))))))))
trop dla balle, je peu sauter et tout :)
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 15 mars 2005 à 09:54
Supposons que j'ai deux fichier text1 et text2 ou dedans j'ai des vecteurs rangé.
Dans text1 les vecteurs vont de -10000 a +10000
Dans text1 les vecteurs vont de -100 a +100
il a bien sur le meme nombre de vecteur dans les deux textes ! c'est juste l'echelle qui change.
Quand je dessine cela sur mon écran l'échelle est differente car quand
j'affiche ma position sur l'ércan je le verifie, MAIS la carte elle a
la meme taille !! c'est a dire que les triangles on la meme taille SUR
l'ECRAN.
Pour moi, quand openGL affiche la carte1 par exemple je devrais voir la
fin de la carte car l'echelle est petite, et pour la carte2 ne pas voir
la fin de la carte et avoir des triangles trés grand, la carte a les
MEME PROPORTION....
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 15 mars 2005 à 10:29
Ben oui poste ton code parce que là je vois pas pourquoi tu as la meme echelle sur tes deux maps ( a moins que tu ne te places selon un certain point de vue et qui fait que...).
PS : ca te sers a quoi d'avoir la meme map a differentes echelles ??
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 15 mars 2005 à 12:23
HEY !!! il est pas mal ce code, commentaire, comprehensible, etc... !!!!!
Bon le probleme c'est que j'utilise visual studio 6 et qu'il ne trouve pas
ImageList_Create
et
ImageList_AddMasked
par contre il connait bien l'entete des fonctions et le type HIMAGELIST, HBITMAP etc..
Bref elles sont declarees dans quelle lib ces 2 fonctions ?, j'aimerai bien compiler.
Au pire balance ta liste des libs ici je ferai une comparaison...
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 15 mars 2005 à 13:37
Effectivement c'est bizarre, mais il y a des trucs que je pige pas comme la distance far négative dans le gluPerspective
et les fichiers *.inf
[ByteMap]
#SIZE
W: 257 H: 257 //bon disons que c'est la taille de "Terrain.bmp" ?
[VectorMap]
#SIZE
W: 25600.000000 H: 5040.000000 D: 25600.000000 // boite englobante de la scene ?
#CENTER
X: 0.000000 Y: 0.000000 Z: 0.000000 // centre de la scene ?
J'ai survolé le code et il me semble ne pas avoir vu que tu faisai de "rescale" sur les sommets du terrain en fonction de la size de la map (donc disons que ca vient pas de là).
Et est ce que les fichiers "Terrain.raw" contiennent les sommets du terrain ou est ce les vecteurs qui permettent de retrouver leurs valeurs via le centre de la scene ?
(evidemment si le centre == origine c'est pareil) .
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 15 mars 2005 à 14:20
Ok je connaissais pas l'histoire du far negatif, merci.Quand je parle de "rescale", c'est pas une fonction, je voulai dire que tu ne remettai pas les points a une certaine echelle en fonction de la taille de la map (scale echelle -> avec un peu de barbarisme "rescale" remise a l'echelle).
Change le fovy de gluPerspective de 45.0f a 60.0f par exemple il y a une difference minime apres entre "Petite" et "Grande" mais bon je crois qu'en fait y a pas de probleme et que c'est du au placement du point de vue et la projection.
Enfin, je vais continuer de tester tout ca.
Juste une derniere precision, les classes frustrum et frustum elles servent a quoi ?
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 15 mars 2005 à 14:37
lol c une errreur
Fustrum == erreur, j'ai oublier de l'enlever :D c'est une erreur d'orthographe
Frustum == c'est une classe qui est a utiliser avec l'octree, elle
permet de savoir si un object est dans ton champ de vision ou pas. Tu
l'utilise pour dessiner ton octree, tu demande :
- ce noeud est dans le frustum ? oui -> on recurse vers le bas
- le noeud ni est pas, on stop la recursion
- on a attein la fin de l'arbre, on affiche le noeud
voila
Sa me desepere se bug !! je suis sur c'est tout simple en plus...
j'ai tout essayé ! mais a chaque foi opengl me dessine ma carte de la meme taille !!
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 15 mars 2005 à 18:09
Bon ben je pense que c'est ce que je disais, "l'effet d'echelle uniforme" est du a un placement particulier avec une projection particuliere fais les changements suivant et constates par toi meme :
Tu devrais t'appercevoir d'une plus "grande profondeur de champ" sur la "Grande"
Dis moi ce que tu en penses.
Et disons que c'est un peu normal que les triangles apparaissent "de meme taille" a l'ecran car avec la "Petite" tu dessines un "petit" triangle mais "près" et avec la "Grande" tu dessines un "grand" triangle mais "loin". (tu vois ce que je veux dire ?).
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 15 mars 2005 à 18:24
Par contre, et si je peux me permettre, tu devrais optimiser quelques traitement vis à vis d'OpenGL :
- Pour faire le rendu des Octrees fait du glDrawArray plutot que de recalculer les normales et te linker sur les vertices pour faire du glBegin()-glEnd() à chaque tracés.
- Et evites les appels glGetXXX ca bouffe grave en temps de calcul (remonter du pipe des donnees) par exemple le glGetFloatv( GL_PROJECTION_MATRIX, projM ); de la classe Frustum fais le dans le resizeGL car cette matrice ne change que là.
(quoi que avec les nouvelles CG en PCI express ca a peut etre change... suis encore avec ma GF4 TI 4200 en AGP 8X alors je peux pas tester)
Il y a peut etre d'autre trucs mineurs a ameliorer mais rien qu'avec ces deux changements tu devrais déjà gagner pas mal.
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 15 mars 2005 à 18:34
A donc sa viendrai du fait que je place ma camera trop haut au départ........
oui j'ai essayé et cela donne un peu plus d'effet...
donc sa serai aussi bête que cela
faut que je fasse plus de test :)
en tout les cas sa m'avance déja bien :)
tu t'en est pas trop vu avec mon code ?
par hazard, je pense que tu a étudié l'info qq part, et donc que tu a
apris des methode... car j'aimerai savoir si en general comme je
structure mon code c'est bien ou pas ??
tu vois par exemple si mon utilisation des classes est bien faite ? ou si c'est le bordel... etc
car j'ai tout apris comme sa... et donc je n'est pas THE METHODE, donc j'aimerai ton avis :)
merci déja pour tous se que tu a fait :D
barraq
(je continu a poster ici sur se sujet :D c pas fini :) )
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 15 mars 2005 à 18:41
j'ai jamais utilisé les : glDrawArray
en fait c'est la premiere application que je fait en openGL, bon j'ai
mis du temps je dis pas :) meme bcp de temps, mais c'est ma premiere
application, donc je suis loin de tout maitriser...
En fait je devrai plutot faire comme sa :
appeler une seul foi drawoctree et dedans faire :
pour chaque noeud, creer une nouvelle glList(...) qui comprendrai toutes les vertices de ce noeud.
faire ma recursion pour tous mes nodes.
et aprés quand je veut réélement le dessiner (a chaque loop), j'utilise
une récursion a traver mes noeud mais cette fois j'appele la liste
relative a se noeud. ( drawliste pour chaque neoud)