#1 

26-05-2010 12:19:50

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 86.209.109.77
Courriel

Salut,

J'ai (encore :s ) un problème avec Irrlicht. Je voudrais créer un terrain avec une image qui ne mesure que 80x80. Le problème est que cela bug, le terrain ne forme qu'une partie de l'image alors que si je met le terrain en 256x256, tout le terrain s'affiche. Comment régler ce problème en sachant que je ne veux pas changer la taille de l'image (pour raison technique)?

Voici le code du terrain:

 scene::ITerrainSceneNode* terrain = smgr->addTerrainSceneNode(
                "niveau1.bmp",
                0,                                     
                -1,                                     
                core::vector3df(0.f, 0.f, 0.f),        
                core::vector3df(0.f, 0.f, 0.f),        
                core::vector3df(80, 20, 80),     
                video::SColor ( 255, 255, 255, 255 ),   
                5,                                      
                scene::ETPS_17,                         
                4                                      
                );

        terrain->setMaterialFlag(video::EMF_LIGHTING, false);

        terrain->setMaterialTexture(0,
                        driver->getTexture("C:\\\\Users\\\\Nicolas\\\\irrlicht-1.6\\\\media\\\	errain-texture.jpg"));
        terrain->setMaterialTexture(1,
                        driver->getTexture("C:\\\\Users\\\\Nicolas\\\\irrlicht-1.6\\\\media\\\\detailmap3.jpg"));
        
        terrain->setMaterialType(video::EMT_DETAIL_MAP);

        terrain->scaleTexture(1.0f, 20.0f);

	scene::CDynamicMeshBuffer* buffer = new scene::CDynamicMeshBuffer(video::EVT_2TCOORDS, video::EIT_16BIT);
	terrain->getMeshBufferForLOD(*buffer, 0);
	video::S3DVertex2TCoords* data = (video::S3DVertex2TCoords*)buffer->getVertexBuffer().getData();
	buffer->drop();


Hors ligne


#2 

26-05-2010 16:11:17

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 93.9.159.156
Courriel

d'une marniere générale travailler ac des textures qui ne sont pas une puissance de 2 est une mauvaise idée.Peut etre que ton probleme vient tout simplement de ça.


Hors ligne


#3 

26-05-2010 17:24:57

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 86.209.109.77
Courriel

Mais mais textures sont des puissances de 2.


Hors ligne


#4 

26-05-2010 19:08:43

Zorian
Modérateurs
Date d'inscription:
Messages: 19
IP: 82.231.128.145
Courriel

C'est ton terrain qui doit avoir une taille égale à une puissance de 2.


Real Programmers Don't Document - If it was hard to write, it should be hard to understand.

Hors ligne


#5 

26-05-2010 20:51:50

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 79.92.227.159
Courriel

en gros ton heightmap, d'ailleur Irrlicht se base sur le taille de ton heightmap pour definir la grandeur du terrain, et si tu n'utilise pas un multiple de 2, ça devient un peu n'importe quoi, il n'arrive pas a bien calculer les hauteur non plus.

Hors ligne


#6 

27-06-2010 10:37:59

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 81.251.134.201
Courriel

Ok, merci.

Donc maintenant, j'utilise une image qui mesure 256*256, mais même avec cela, le terrain ne correspond pas exactement a l'image. Même avec un terrain aussi simple que celui-ci : http://img96.imageshack.us/i/niveau1.png/ , une fois le terrain générer une partie est manquante ( le trait qui sort du "rond" a gauche de l'image n'y est pas comme si le terrain avait été coupé juste avant. Je voudrais que tout l'image soit visible. Comment faire?


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
119 invités en ligne
membre en ligne: -
RSS Feed