ouf j'arrive à le faire bouger en faisant avancer, gauche ... Mais bon c pas encore optimum.
Version imprimable
ouf j'arrive à le faire bouger en faisant avancer, gauche ... Mais bon c pas encore optimum.
C'est déjà ça, ça avance doucement mais surement.
Le monde ne s'est pas fait en 1 jour comme on dit :wink: (enfin je crois :roll: )
Dis rad_hass, tu serais po à l'univ Claude Bernard toi :wink:
oui exacte je suis de l'UCBL.
Si quelqu'un peut me donner une méthode simple pour pouvoir integrer simplement des models 3d (en fait des planet) ou des choses dans le genre. Merci d'avance.
Comme pour les images, il te faut soit une bibliothèque de chargement soit lire la doc sur le format du model et coder le programme de chargement
en parlant de format, tu en a choisi un ?
oui j'ai choisi 3ds max, il m'a semblé qu'il soit le plus répondu. Je pensais aussi à une bibliothéque mais si c'est ca j'ai juste à inclure la classe dans le projet c ca ?
En tout cas encore merci pour ton aide shenron666
Je te déconseille fortement le format 3DS max (fichiers .max)
le format est propriétaire, fermé et dur de trouver du code dessus
par contre si tu parles du format 3ds là ok
il existe du code facile à trouver (recherches lib3ds) et à implémenter
c à dire à implementer y a pas un truc pour que je puisse l'appeler telle qu'il est ? Est ce que c'est obligatoire que je le transforme en .obj et que j'écri un parser ? Y a pas plus simple ?
Tu peux l'appeler tel qu'il est, pas besoin de transformer en obj, sinon autant utiliser directement une bibliothèque qui charge des obj
salut,
j'ai tjs pas compris l'histoire des fichiers 3ds mais bon c'est pas grave.
Par contre je veux m'attaquer à un nouveau problème c la simplification et l'allégement de mon univers, ca commence à ralentir et ramer (c que je commence à en avoir des choses lol), alos en fait j'ai déja comencé le mipmapping (pour ceux qui connaisse pas grand chose comme moi en fait c le systeme qui adapte le niveau de détail des textures suivant la distance de l'objet ) mais ca ne marche pas encore (mais au moins la je sais qu'es ce que j'ai à faire enfin je crois). Et je pensais faire d'autre truc (et je sais pas si le mipmapping ou autre s'en occupe) c'est le fait de ne pas charger les choses qu'on voi pas du tout (ou partiellement), c'est à dire les choses qui sont derrieres la caméra... ect.
Une autre question au passage, je sais pas si je l'ai di mais mon univers c'est dans l'espace et donc je charge des planete. Voila donc j'ai fais un choix, et maintenant je doute sur ca validité, c'est que je fais des sphere que j'ai texturé (avec des textures de planete vrai ou inventé...) et je me demande si les billboard finalement n'est pas une meilleur idée. Donc voila je voullais avoir + d'avis sur ça (je sais que les sphere c plus réaliste et les billboard c plus économe, mais je sais pas qu'elle est le meilleur compromis).
Voila merci pour vos conseils.
PS : Si vous avez d'autre technique et astuces je suis prenneur (ah oui j'ai appliqué aussi le brouillard et franchement c pas mal)
pour ce qui est des objets caché, il faut le gérer toi même, le mipmapping ne concerne que le niveau de détail des textures en fonction de la distance
il faudrait que tu cherches des infos sur le sujet "frustum culling"
pour ce qui est du niveau de détail de tes planètes, je te déconseille les billboard, ou alors il faudait, lorsqu'une planète devient trop éloignée, calculer un billboard qui remplacera l'objet 3D
sinon, chose simple, les planètes sont des sphères et en 3D, comme tu le sais, on n'affiche pas des sphères parfaites, il faut les subdiviser en triangles
une sphère peut-etre affichée avec un nombre de triangles plus ou moins élevé, un niveau de détail en quelque sorte
donc, en fonction de la distance, tu devrais générer tes sphères à la volée avec un niveau de détail moins élevé pour celles qui sont éloignées
tu peux aussi précalculer 3-4 (ou +) sphères de niveaux de détails différents et toujours en fonction de la distance, plus c'est éloigné, moins c'est détaillé :wink:
ok, je vais essayé de faire ça merci encore à toi.
shenron tu as qt installé sur ton pc ?
J'aimerai bien avoir ton avis sur ce que j'ai fai jusqu'ici.
Par contre pour ce qui est des amélioration je suis entrein de galéré lol, j'ai un peu bcp de mal. A part au piff j'ai du mal à éstimer les distance entre caméra et les objets, surtout la skybox parceque je ne spécifie jamais les coord moi meme surtout que je fais un scale. Bref lol je suis entrein de chercher mais dure dure...
J´ai un probleme et je ne sais pas comment le résoudre, aidé moi svp , j´essaye de faire le mipmapping et voila ce que j´ai :
http://img56.imageshack.us/my.php?image=capture7ii.png
et voila ce que je fait :
merci à vousCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 void Terrain::draw() { int i,j; GLubyte* data = heightmap.bits(); glPushMatrix(); glEnable(GL_NORMALIZE); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, idterrain); // Tentative de Mip-mapping //cela définit la façon dont la texture est appliquée. LINEAR est le meilleur, mais le + lent. // On utilise aussi la technique de MipMapping glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTE R,GL_LINEAR); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTE R,GL_LINEAR_MIPMAP_LINEAR); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, getWidth(heightmap), getHeight(heightmap), GL_RGB, GL_UNSIGNED_BYTE, data); //glColor3f( 0,0,0); glDisable( GL_LIGHTING ); glPointSize(2.0f); for(i=1;i<getWidth(heightmap)-2;i++) { glBegin( GL_TRIANGLE_STRIP); for(j=1;j<getHeight(heightmap)-2;j++) { normal(i, j); glTexCoord2f(1.0f*i/getWidth(heightmap),1.0f*j/get Height(heightmap)); glVertex3f( 1.0f*i, 1.0f*j, 0.1f*getIntensity( heightmap, i, j) ); normal(i+1, j); glTexCoord2f(1.0f*(i+1)/getWidth(heightmap),1.0f*j /getHeight(heightmap)); glVertex3f( 1.0f*(i+1), 1.0f*j, 0.1f*getIntensity( heightmap, i+1,j) ); } glEnd(); } glEnable( GL_LIGHTING ); glDisable(GL_TEXTURE_2D); glDisable(GL_NORMALIZE); glPopMatrix(); }
pfff c jamais ou tu attends l'erreur c'étai à cause du 3 dans
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, getWidth(heightmap), getHeight(heightmap), GL_RGB, GL_UNSIGNED_BYTE, data);
Est ce que quelqu'un peut me dire si ce que je fais est correct ou pas svp.
Merci.
Premièrement, faire le calcul de mipmapping dans ta fonction d'affichage est une erreur de conception. La fonction gluBuild2DMipmaps doit être appelée une seule fois lors du chargement de la texture.Citation:
Envoyé par rad_hass
Je dis bien texture! Toi tu demande de faire des mipmap de ton heightmap (enfin c'est le nom de la variable...)... Il faut faire cet appel à la texture qui sera utiliser par glBindTexture...
Cela fait longtemps que je ne l'ai pas fait, mais il me semble que c'est comme ça...
Jc
je n'ai aps qt sur mon pc, je le n'ai jamais utilisé jusqu'à maintenant
sinon pour ton mipmapping, il faudrait que tu génères les mipmap juste après le chargement de ta texture
gluBuild2DMipmaps remplace glTexImage2D
en fait, gluBuild2DMipmaps appelle plusieurs fois glTexImage2D en créant des copies de tailles différentes de ta texture d'origine
(un mipmap est un niveau de détail d'une texture)