Historique des modifications - Message

Message #10855

Sujet: Avoir la main verte


Type Date Auteur Contenu
Dernière modification 17-10-2012 08:03:29 Memorial76
En effet, ton exe fonctionne toujours nickel chez moi. Ca provient de mon implémentation du Node à tous les coups...
A la relecture du message d'erreur, il me dit qu'il ne peut pas lier l'échantillonneur au niveau spécifié par l'utilisateur et que celui-ci doit être lié au même niveau que le TEXCOORD. Est-ce qu'il ne manquerait pas un paramètre dans le material de mon node? Pourtant j'ai le même problème avec ton Octogone en .3ds.

EDIT: Je publie le code où je crée mon hexagone au cas où.

Material.Wireframe = false;
	Material.Lighting = false;
	
	const float d = GRANDEUR_CARACTERISTIQUE;
	//Centre
	float fx = CASE.nX * 1.5f * d;
		  
	float fz;
	if( CASE.nX%2 == 0 )
		fz = CASE.nY * sin(PI/3) * 2 *d;
	else
		fz = sin(PI/3) * d *( 1 + 2 * CASE.nY);

	//Vertex
	const float dUV = 0.5f; //Pour le calcul des coordonnées UV des vertex (entre 0.0 et 1.0)
	Vertices[CENTRE] = video::S3DVertex(fx, (irr::f32)CASE.fCote + 0.01f, fz, 0, 1,0, video::SColor(255,255,255,255) ,dUV,dUV*sin(PI/3)); //CENTRE
	Vertices[NE] = video::S3DVertex(fx + d/2, 0.01f, fz + sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),1.5f*dUV,0); //NE
	Vertices[E] = video::S3DVertex(fx + d, 0.01f, fz, 0,1,0,video::SColor(255,255,255,255),2.0f*dUV,dUV*sin(PI/3)); //E
	Vertices[SE] = video::S3DVertex(fx + d/2, 0.01f,fz - sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),1.5f*dUV,2*dUV*sin(PI/3)); //SE
	Vertices[SO] = video::S3DVertex(fx - d/2, 0.01f,fz - sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),0.5f*dUV,2*dUV*sin(PI/3)); //SO
	Vertices[O] = video::S3DVertex(fx - d, 0.01f, fz, 0,1,0,video::SColor(255,255,255,255),0,dUV*sin(PI/3)); //O
	Vertices[NO] = video::S3DVertex(fx - d/2, 0.01f, fz + sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),0.5f*dUV,0); //NO

	BoundingBox.reset(Vertices[0].Pos);
	for (s32 i=1; i<7; ++i)
 	BoundingBox.addInternalPoint(Vertices[i].Pos);

	//TEXTURES
	setMaterialType(irr::video::EMT_SOLID);

	//SURFACE
	
	setMaterialTexture(0, pSceneMgr->getVideoDriver()->getTexture(CASE.SURFACE.sTextureFile.c_str()));
	
	//Végétation
	std::string sVegetationTexture = "./Textures/Vegetation/";
	sVegetationTexture += m_pWorldManager->findVegetationFromThreshold(CASE.fVegetation).sTexture;

	if( m_pSceneMgr->getVideoDriver()->getTexture(sVegetationTexture.c_str()) )
		setMaterialTexture(1, m_pSceneMgr->getVideoDriver()->getTexture(sVegetationTexture.c_str()));

il y a dedans quelques fonctions perso mais qui fonctionnent: les textures sont correctement chargées.


En espérant ne pas avoir laissé trainé une erreur à deux balles qui fait qu'on perd notre temps pour rien...
Création du message 17-10-2012 07:55:27 Memorial76
En effet, ton exe fonctionne toujours nickel chez moi. Ca provient de mon implémentation du Node à tous les coups...
A la relecture du message d'erreur, il me dit qu'il ne peut pas lier l'échantillonneur au niveau spécifié par l'utilisateur et que celui-ci doit être lié au même niveau que le TEXCOORD. Est-ce qu'il ne manquerait pas un paramètre dans le material de mon node? Pourtant j'ai le même problème avec ton Octogone en .3ds.

EDIT: Je publie le code où je crée mon hexagone au cas où.

Material.Wireframe = false;
	Material.Lighting = false;
	
	const float d = GRANDEUR_CARACTERISTIQUE;
	//Centre
	float fx = CASE.nX * 1.5f * d;
		  
	float fz;
	if( CASE.nX%2 == 0 )
		fz = CASE.nY * sin(PI/3) * 2 *d;
	else
		fz = sin(PI/3) * d *( 1 + 2 * CASE.nY);

	//Vertex
	const float dUV = 0.5f; //Pour le calcul des coordonnées UV des vertex (entre 0.0 et 1.0)
	Vertices[CENTRE] = video::S3DVertex(fx, (irr::f32)CASE.fCote + 0.01f, fz, 0, 1,0, video::SColor(255,255,255,255) ,dUV,dUV*sin(PI/3)); //CENTRE
	Vertices[NE] = video::S3DVertex(fx + d/2, 0.01f, fz + sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),1.5f*dUV,0); //NE
	Vertices[E] = video::S3DVertex(fx + d, 0.01f, fz, 0,1,0,video::SColor(255,255,255,255),2.0f*dUV,dUV*sin(PI/3)); //E
	Vertices[SE] = video::S3DVertex(fx + d/2, 0.01f,fz - sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),1.5f*dUV,2*dUV*sin(PI/3)); //SE
	Vertices[SO] = video::S3DVertex(fx - d/2, 0.01f,fz - sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),0.5f*dUV,2*dUV*sin(PI/3)); //SO
	Vertices[O] = video::S3DVertex(fx - d, 0.01f, fz, 0,1,0,video::SColor(255,255,255,255),0,dUV*sin(PI/3)); //O
	Vertices[NO] = video::S3DVertex(fx - d/2, 0.01f, fz + sin(PI/3) * d, 0,1,0,video::SColor(255,255,255,255),0.5f*dUV,0); //NO

	BoundingBox.reset(Vertices[0].Pos);
	for (s32 i=1; i<7; ++i)
 	BoundingBox.addInternalPoint(Vertices[i].Pos);

	//TEXTURES
	setMaterialType(irr::video::EMT_SOLID);

	//SURFACE
	
	setMaterialTexture(0, pSceneMgr->getVideoDriver()->getTexture(CASE.SURFACE.sTextureFile.c_str()));
	
	//Végétation
	std::string sVegetationTexture = "./Textures/Vegetation/";
	sVegetationTexture += m_pWorldManager->findVegetationFromThreshold(CASE.fVegetation).sTexture;

	if( m_pSceneMgr->getVideoDriver()->getTexture(sVegetationTexture.c_str()) )
		setMaterialTexture(1, m_pSceneMgr->getVideoDriver()->getTexture(sVegetationTexture.c_str()));

il y a dedans quelques fonctions perso mais qui fonctionnent: les textures sont correctement chargées.


En espérant ne pas avoir laissé trainé une erreur à deux balles qui fait qu'on perd notre temps pour rien...

Retour

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
131 invités en ligne
membre en ligne: -
RSS Feed