#0 

19-11-2011 14:22:46

Lagiol
Membre
Date d'inscription: 17-11-2011
Messages: 24

Bonjour,
j'ai modèlisé une table (basique) avec Blender que j'ai texturé et importé avec Irrlicht. Tout va bien, sauf que les textures ne sont pas chargées correctement. En fait au lieu d'avoire une vraie texture de bois j'ai seulement la couleur marron.

Comment faire pour avoir une vrai texture ? Merci.

Hors ligne


#1 

19-11-2011 16:05:34

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

Bonjour Lagiol, bienvenu.

Sinon, j'ai eu le même genre de problème. Je l'ai résolu en jouant avec les paramètres d'échelle des textures. Mes textures étaient trop dilatées,...

Code:

node->getMaterial(i).getTextureMatrix(j).setTextureScale( scale.x , scale.y );
node->getMaterial(i).getTextureMatrix(j).setTextureScaleCenter( scaleCenter.x , scaleCenter.y );
node->getMaterial(i).getTextureMatrix(j).setTextureTranslate( translate.x , translate.y );
node->getMaterial(i).getTextureMatrix(j).setTextureTranslateTransposed( translateTransposed.x , translateTransposed.y );

Et hop... wink

Hors ligne


#2 

20-11-2011 08:46:25

thoced
Membre
Date d'inscription: 02-08-2010
Messages: 65

Peux tu indiquer quel type de fichier importe tu dans irrlicht et inscrire le bout de code qui te permet de charger ton mesh, merci

Hors ligne


#3 

21-11-2011 12:30:35

Lagiol
Membre
Date d'inscription: 17-11-2011
Messages: 24

Gehogor, il manque une partie de code non ? par ce que là ça plante un peu il manque les "scale" et les autres "scaleCenter", "translate", etc, et i, j, y, x sont s32 ou int ?

thoced, c'est un .obj.

Hors ligne


#4 

21-11-2011 18:50:40

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

En effet, les variables non précisées sont des variables de mon programme, il faut que tu mets les tiennes ou des valeurs fixes si tu préfères. En ce qui concerne s32 ou int, je ne sais plus, il faut regarder la doc !

Aller, juste pour le délire...

Code:

int materialCount = node->getMaterialCount();       // On récupère le nombre de matière de l'objet 3D
   
for(int i=0;i<materialCount;i++)
{
    node->getMaterial(i).MaterialType = EMT_SOLID /*Tes paramètres*/;

    node->getMaterial(i).ZBuffer          = /*Tes paramètres*/;
    node->getMaterial(i).Wireframe        = /*Tes paramètres*/;
    node->getMaterial(i).PointCloud       = /*Tes paramètres*/;
    node->getMaterial(i).AmbientColor     = /*Tes paramètres*/;
    node->getMaterial(i).EmissiveColor    = /*Tes paramètres*/;
    node->getMaterial(i).SpecularColor    = /*Tes paramètres*/;
    node->getMaterial(i).DiffuseColor     = /*Tes paramètres*/;
    node->getMaterial(i).Thickness        = /*Tes paramètres*/;
    node->getMaterial(i).Shininess        = /*Tes paramètres*/;
    node->getMaterial(i).Lighting         = /*Tes paramètres*/;
    node->getMaterial(i).BackfaceCulling  = /*Tes paramètres*/;
    node->getMaterial(i).FogEnable        = /*Tes paramètres*/;
    node->getMaterial(i).GouraudShading   = /*Tes paramètres*/;
    node->getMaterial(i).NormalizeNormals = /*Tes paramètres*/;
    node->getMaterial(i).ZWriteEnable     = /*Tes paramètres*/;

    node->getMaterial(i).AntiAliasing = /*Tes paramètres*/;

    //********************************* Gestion des textures ***************************************
    for(int j=0;j<4;j++)        // Pour Irrlicht... c'est 4, mais on peut changer, il faut demander à Tmyke pour ça !
    {
        node->getMaterial(i).getTextureMatrix(j).setTextureScale( /*Tes paramètres*/ , /*Tes paramètres*/ );
        node->getMaterial(i).getTextureMatrix(j).setTextureScaleCenter( /*Tes paramètres*/ , /*Tes paramètres*/ );
        node->getMaterial(i).getTextureMatrix(j).setTextureTranslate( /*Tes paramètres*/ , /*Tes paramètres*/ );
        node->getMaterial(i).getTextureMatrix(j).setTextureTranslateTransposed( /*Tes paramètres*/ , /*Tes paramètres*/ );
    }
    // *********************************************************************************************
}

Dernière modification par Gehogor (21-11-2011 19:09:41)


Et hop... wink

Hors ligne


#5 

22-11-2011 13:41:54

Lagiol
Membre
Date d'inscription: 17-11-2011
Messages: 24

Marche toujours pas, j'ai beau mettre des valeurs énormes comme minuscules, marche pas !

Hors ligne


#6 

23-11-2011 01:28:00

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

Ok, si j'ai bien compris, ça compile, ça ne plante pas mais par contre tu as toujours du marron comme rendu de texture. Je suis désolé, je n'avais que ça en réserve !  Bon courage.

Il y a bien un mec trop balaise qui va t'aider...

Dernière modification par Gehogor (23-11-2011 01:28:26)


Et hop... wink

Hors ligne


#7 

23-11-2011 20:57:23

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 904
Corrections: 2
Site web

j'ai suivit un peut le topic tapis dans l'ombre .. :]

ce que tu ne presice pas c'est esque tu utilise les texture vectoriel de blender ?
si c'est le cas navré pour toi ça ne passe pas à l'exporte, on a juste une colorisation des vertices
il te faut faire une uvmap, crée ta texture en externe et importer la texture dans blender pour l'appliquer
à partir de la normalement tu charge ton model et il charge automatiquement la texture ( ça depend du format, au pire tu load la texture en manuel )

sinon uvmap incorect, shader ?, probleme d'exportation (essaye un autres formats), etc ... je peut voir ça si tu m'upload ton .blend wink

Hors ligne


#8 

24-11-2011 15:57:35

Lagiol
Membre
Date d'inscription: 17-11-2011
Messages: 24

Magun, ça prend plus de temps l'UV Mapping, non ?

J'envoie mon modèle comme demandé, et les textures qui vont avec.
http://hotfile.com/dl/135880659/1a592a5/table.zip.html

Dernière modification par Lagiol (24-11-2011 15:58:10)

Hors ligne


#9 

25-11-2011 01:09:59

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 904
Corrections: 2
Site web

d'aprés ce que j'ai vue ça viens de l'uv map ... par contre sa passe pas a l'export en wavefront (.obj), sinon sa semble fonctionner en .x

Hors ligne


#10 

28-11-2011 12:09:02

Lagiol
Membre
Date d'inscription: 17-11-2011
Messages: 24

On ne peux pas exporter en .x, si ?

Hors ligne


#11 

28-11-2011 13:11:23

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Coucou, Tu va tout en bas à gauche et tu selectionne UV/imageEditor
Tu clique sur image->New Image, ensuite tu coche la case uv test grid
Après tu va dans la colone de droite, tu clique sur l'onglet Render, en bas tu as l'otion bake, tu selectioone le mode"textured" et tu clique sur bake.
Voilà en principe tu vera la texture du bois dans la partie uv/imageeditor
j'ai testé ta table et une partie de la texture est tourné de 90°, à toi de rectifier le problème wink
pour cela tu va dans la colonne de gauche tu clique sur unwrap et sa va redefinir la decoupe de ton objet, ensuite tu reclic sur bake

Hors ligne


#12 

29-11-2011 12:30:39

Lagiol
Membre
Date d'inscription: 17-11-2011
Messages: 24

Lorsque je clique sur "bake", j'ai un message d'erreur "no objects or images found to bake to"

Hors ligne


#13 

29-11-2011 14:05:10

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Bah ça veut dire ce que ça veut dire wink
soit l'objet n'est pas selectionné soit tu n'a pas créer de nouvelle image, je pense que c'est plutôt la premiere solution, selectionne ton objet en mode "object" puis passe en "edit" mode.
ps:courage il faut du temps pour s'habituer à blender wink

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
Analysé par
879 membres
1424 sujets
11113 messages
Dernier membre inscrit: brendan87
16 invités en ligne
Aucun membre connecté
RSS Feed