#0 

29-06-2007 22:17:11

Sornoz
Petit nouveau
Date d'inscription: 29-06-2007
Messages: 9

Bonjour,

Je débute totalement en Irrlicht et j'ai actuellement un problème plutôt ennuyeux.
J'essaye d'appliquer une heightmap via un fichier bmp. Jusqu'à là, tout est OK.
Le heightmap est bien créé, cependant pas comme je le souhaiterai.

L'image bmp ressemble à cela (à peu près smile ):

xxxxxxxxx
x    x      x
x    x      x
x    x      x
x    xxxxx
x    x      x
x    x  x  x
x    x      x
xxxxxxxxx

Et quand je passe sous irrlicht, l'image semble inversé et tourner de 90° :

cela donne :

xxxxxxxxxxxx
x        x        x
x   x   x        x
x        x        x
xxxxxxxxxxxx
x                  x
x                  x
xxxxxxxxxxxx

Bon c'est pas super bien fait mais c'est pour montrer ce que cela me donne.

Est ce que ce serait à cause d'un des paramètres ? (sachant que j'ai pas trop touché aux différentes valeurs (tutorial Irrlicht))
J'ai essayer de faire des rotations pour revenir à ma forme d'origine mais après ca bug niveau texture et niveau caméra, c'est pas viable.

Y a t'il un moyen sous Irrlicht pour que j'obtienne la representation de mon image d'origine (simplement)?

Sinon, je peux toujours développer une petite application pour faire l'image mirroir de l'image et la tourné de 90° mais ca me prendra du temps et il y a probablement un truc que j'ai mal fait.

Je vous demande donc de l'aide.

Merci d'avance.

Hors ligne


#1 

29-06-2007 23:36:28

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

Salut !

A tu bien vu que le blanc est le haut, et le noir le bas ? (même si ce n'est pas forcément le pb)

Peut tu m'envoyer a willikus[at]gmailcom ton zip de projet ?

Sinon, des pros vont arrivé pour te dire l'alpha et l'omega wink



a+
w

Dernière modification par Willikus (12-11-2007 20:40:24)


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#2 

30-06-2007 12:37:09

f1ebk
Petit nouveau
Date d'inscription: 07-06-2007
Messages: 1

Bonjour a tous,
Je débute aussi avec Irrlicht,et je confirme le phénomène de miroir. Je n'ai pas pu vérifier la direction absolue de la caméra.

Dans mon cas, je suis parti de relevés d'altitudes qui m'ont servis a fabriquer la heightmap ainsi que la texture par traitement en fausses couleurs. Côté logiciel, j'ai prise comme base l'exemple 12 que j'ai modifié :

- modification des noms de fichiers.
- suppression du logo Irrlicht et des textes qui provoquent des erreurs d'exécution.

J'ai essayé de faire des images en 1200x1200, j'arrive a une erreur, quelle est la taille maximale des fichiers heightmap et texture ?

merci d'avance

Hors ligne


#3 

30-06-2007 13:05:46

Perceval
Abonné
Date d'inscription: 20-10-2006
Messages: 105

Je sais pas quelle est la taille maximale autorisée, mais par contre il me semble que la taille des textures doit etre une puissance de 2. Peut etre que le probleme vient de la.

Hors ligne


#4 

30-06-2007 13:12:46

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

il me semble que c'est 256*256... certain on fait des codes pour mettre du 512*512 et du 1024*1024...

J'en sais pas plus la dessus


a+
w


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#5 

30-06-2007 19:41:52

Sornoz
Petit nouveau
Date d'inscription: 29-06-2007
Messages: 9

Yop,

Je ne t'ai pas envoyé le code car c'est quasiment rien, tutorial 12 en allégé avec 2 chargement de heightmap au lieu d'une.

Code:

Terrain = smgr->addTerrainSceneNode( 
        "test0-0.jpg",
        0,                                        // parent node
        -1,                                        // node id
        core::vector3df(0.f, 0.f, 0.f),                // position
        core::vector3df(0.f, 0.f, 0.f),                // rotation
        core::vector3df(10.f,3.f, 10.f),                // scale
        video::SColor ( 255, 255, 255, 255 ),            // vertexColor,
        5,                                        // maxLOD
        scene::ETPS_17,                            // patchSize
        4                                        // smoothFactor
        );
    Terrain->setMaterialFlag(video::EMF_LIGHTING, false);
    Terrain->setMaterialTexture(0, driver->getTexture("Terrain-texture.jpg"));
    Terrain->setMaterialTexture(1, driver->getTexture("detailmap3.jpg"));    
    Terrain->setMaterialType(video::EMT_DETAIL_MAP);
    Terrain->scaleTexture(1.0f, 5.0f);


    Terrain2 = smgr->addTerrainSceneNode( 
        "test1-0.jpg",
        0,                                        // parent node
        -1,                                        // node id
        core::vector3df(0.f, 0.f, 2560.f),                // position
        core::vector3df(0.f, 0.f, 0.f),                // rotation
        core::vector3df(10.f, 3.f,10.f),                     // scale
        video::SColor ( 255, 255, 255, 255 ),            // vertexColor,
        5,                                        // maxLOD
        scene::ETPS_17,                            // patchSize
        4                                        // smoothFactor
        );
    Terrain2->setMaterialFlag(video::EMF_LIGHTING, false);
    Terrain2->setMaterialTexture(0, driver->getTexture("Terrain-texture.jpg"));
    Terrain2->setMaterialTexture(1, driver->getTexture("detailmap3.jpg"));    
    Terrain2->setMaterialType(video::EMT_DETAIL_MAP);
    Terrain2->scaleTexture(1.0f, 5.0f);

J'ai réussi à comprendre comment positionner mes heightmaps les une par rapport aux autres mais alors là je bloque completement.

Pour cette heightmap de test :

J'obtiens cela (Camera à peu près positionné en (0,0,0) :

Lien vers l'image

Et donc, on voit que les 2 bords de la heightmap sont relevés, pourquoi donc?
Y a t'il la possibilité d'empécher cela car j'aimerai relié des heigthmaps les unes aux autres et avec ce problème (qui est peut être normal mais j'aimerai comprendre), c'est clairement pas possible, ou si mais ca va faire des liaisons toutes pas belles.

Aussi, j'ai grossi par 10 ma heightmap, et je remarque que en positionnant la seconde heigthmap à 10 * 256, j'ai un écart entre les 2 heightmaps, pourquoi donc?

Merci déjà pour vos réponses smile.

Dernière modification par Sornoz (30-06-2007 19:44:14)

Hors ligne


#6 

30-06-2007 21:25:36

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

Rebord : J'ai déja rencontré ce probleme, moi c'était du a l'enregistrement (jpg) qui avait alteré un coté de l'image (couleurs adjacente).

Sinon, quel version d'Irrlicht utilise tu ?


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#7 

30-06-2007 22:53:55

Sornoz
Petit nouveau
Date d'inscription: 29-06-2007
Messages: 9

J'utilise la version 1.3.1.

J'ai essayé avec d'autres formats :
- bmp (monochrome,16bits,24bits) et png mais cela n'a pas changer (je refaisai l'image à chaque fois) ;

Sinon, j'ai vu sur le forum de irrlicht que le problème était bien repertorié pour l'inversion des images et depuis longtemps en plus (bizarre que cela n'est pas été officiellement corrigé? )

Cependant il y a quelqu'un qui dit avoir corrigé le problème :
Voir le topic

Je n'ai pas essayé mais je vais le faire je pense demain. En tout cas, j'ai regardé le site du gars, il a fait beaucoup de correctifs (pas forcement utilisable puisqu'il ne reconnaisse pas la version 1.3.1).

Tout cela me fait penser que je veux peut être passer à un autre moteur car tous ces petits soucis m'inquiètent plutôt beaucoup pour la suite.

Hors ligne


#8 

30-06-2007 23:42:40

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

Et bien le seul bon concurent a Irrlicht est OGRE et ce moteur (3D + physique) est dédiée a des démos, il tire beaucoup de ressources mais a un tres bon rendu.

Si tu compte faire un jeu... tu va avoir du mal a trouvé un moteur qui égal irrlicht (en gratuit complet)

Enfin, des petits probleme comme ça sont fait pour etres corrigé : comment pourrait 'ils faire une version 1.4 sinon ? ^^


a+
w


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#9 

01-07-2007 00:44:12

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

Il me semble que les heightmaps doivent faire un pixel de plus que leur vrai taille.

Par exemple une heightmap de 256*256 doit en réalité être une image de 257*257.

Je ne sais pas si c'est toujours vrai avec la 1.3 mais bon... j'avais lu ça sur le forum d'Irrlicht il y a quelques temps.

De toute façon, le moteur de rendu de terrain d'Irrlicht est à revoir je pense.
En ce moment ils s'occupent du système d'animation, mais il serait temps que cette partie là soit aussi refaite.


Concernant Ogre, ce n'est pas un moteur dédié "aux démos".
C'est un moteur 3D, donc utilisable pour toute application.
Ogre est bien plus mature qu'Irrlicht, il a plus d'ancienneté et est plus achevé. Cependant il est moins abordable qu'Irrlicht.

Hors ligne


#10 

01-07-2007 12:17:29

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

Aranoth :

De toute façon, le moteur de rendu de terrain d'Irrlicht est à revoir je pense.


+1
Mais pas "je pense" smile Il est vraiment merdique. Copland avait refait un moteur de terrain bien foutu mais je sais pas si il va le distribuer.

Aranoth :

Ogre est bien plus mature qu'Irrlicht, il a plus d'ancienneté et est plus achevé. Cependant il est moins abordable qu'Irrlicht.


+1 aussi
C'est pas du tout la même visée


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#11 

01-07-2007 15:00:53

Sornoz
Petit nouveau
Date d'inscription: 29-06-2007
Messages: 9

Merci pour vos réponses.

J'étais fatigué quand j'ai pensé à changé de moteur et encore plus en regardant les tutoriaux de Ogre3D smile (surtout à cause de l'anglais)
Je vais persévérer sur Irrlicht.
Comme je dois à tout prix corriger mon problème de heightmap, je vais essayer de faire une customscene pour générer les heightmaps ( avec mon niveau, je sens que je vais galérer + + ;( )
J'ouvrirai probablement un nouveau topic pour demander de l'aide.

Hors ligne


#12 

01-07-2007 15:36:45

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

Les heightmap en elle même ne sont pas difficiles à implémenter, c'est très simple même.

Le problème c'est le LOD, le "level of détail" qui simplifie la géométrie en fonction de la distance...
Mais il existe plusieurs TerrainSceneNode costum et open source sur le forum d'Irrlicht.
Tu devrais y jeter un coup d'oeil wink

Hors ligne


#13 

01-07-2007 16:33:56

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

Le LOD ça sert de moins en moins, ca coûte des fois presque autant de le calculer que de balancer directement le rendu au gpu sans réfléchir.
En revanche les techniques de culling sont plus faciles à mettre en place et c'est plus rentable.


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#14 

24-07-2007 11:17:36

Ikam
Membre
Date d'inscription: 16-05-2007
Messages: 56
Site web

je crois que le probleme d'inversion de l'image est du au fait qu'une image est representé de telle maniere :

0,0 ------ 255,0
|                |
|                |
|                |
|                |
0,255-----255,255


et que le terrain lui est construit comme ca :

0,255---- 255,255
|                |
|                |
|                |
|                |
0,0--------255,0

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
117 invités en ligne
Aucun membre connecté
RSS Feed