#0 

26-05-2010 14:19:50

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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:

Code:

 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\\terrain-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


#1 

26-05-2010 18:11:17

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

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


#2 

26-05-2010 19:24:57

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

Mais mais textures sont des puissances de 2.

Hors ligne


#3 

26-05-2010 21:08:43

Zorian
Correcteur
Date d'inscription: 12-05-2009
Messages: 19
Corrections: 181

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


#4 

26-05-2010 22:51:50

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

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.


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#5 

27-06-2010 12:37:59

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
126 invités en ligne
Aucun membre connecté
RSS Feed