Hoi Leute,
habe folgendes Problem:
Ich lade ein Mesh und erstelle daraus ein Tangentmesh für Parallaxmapping. Dann lade ich das Tangentmesh in nen Scenenode rein und das klappt alles wunderbar. Wenn jetzt aber mein Level aus ist, muss alles wieder geladen werden. Dazu lösche ich einfach den Scenenode mit ISceneNode::remove(). Dann führe ich einfach den Code der das Mesh mit der Parallaxmap erstellt nochmal aus. Leider kommt es dann zu einem unschönen Grafikfehler. Ich vermute ich habe irgendwas beim löschen vergessen. Achja, ich behalte den Mesh nicht, weil das neue Level eine neue Textur und Normalmap hat.
Hier der Code der das Mesh ladet:
Code:
arenaMesh = smgr->getMesh(filename.c_str());
if (!arenaMesh)
return ERROR;
smgr->getMeshManipulator()->makePlanarTextureMapping(
arenaMesh->getMesh(0), 0.25f);
ITexture* colorMap =
driver->getTexture("media/textures/wall.jpg");
ITexture* normalMap =
driver->getTexture("media/textures/wall_height.jpg");
driver->makeNormalMapTexture(normalMap, 20.0f);
arenaMeshWithTangents = smgr->getMeshManipulator()->createMeshWithTangents(arenaMesh->getMesh(0));
arena = smgr->addMeshSceneNode(arenaMeshWithTangents);
arena->setMaterialTexture(0, colorMap);
arena->setMaterialTexture(1, normalMap);
arena->getMaterial(0).SpecularColor.set(0,0,0,0);
arena->setMaterialFlag(EMF_FOG_ENABLE, true);
arena->setMaterialType(EMT_PARALLAX_MAP_SOLID);
arena->getMaterial(0).MaterialTypeParam = 0.035f;
arena->setScale(vector3df(10, 10, 10));
arenaMeshWithTangents->drop();
// End of the loading of the static level mesh
und hier der Code zum löschen(danach wird einfach wieder der Code oben zum neu laden verwendet):
Code:
arena->remove();
arena = 0;
So vor dem neuladen schaut das ganze so aus:

Danach schaut das so aus:

Ich hoffe ihr wisst was ich noch löschen muss

Danke für eure Hilfe
MfG Spy
_________________
Phoenix'
GameEngine.
Sehr schell -> Sehr geil -> Sehr dynamisch -> Sehr komfortabel.
(Enhanced by Irrlicht). Klick
mich. Wir suchen noch Leute die aktiv oder auch nur passiv an dem Projekt beteiligt sein wollen.