Historique des modifications - Message

Message #10855

Sujet: Avoir la main verte


TypeDateAuteurContenu
Dernière modification17-10-2012 08:03:29Memorial76
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 message17-10-2012 07:55:27Memorial76
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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
71 invités en ligne
membre en ligne: -
RSS Feed