Aktuelle Zeit: 12.05.2025, 23:18

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 27.06.2009, 12:47 
Offline
Benutzeravatar

Registriert: 07.01.2008, 21:37
Beiträge: 26
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:
Bild

Danach schaut das so aus:
Bild

Ich hoffe ihr wisst was ich noch löschen muss ;)
Danke für eure Hilfe :D

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.


Nach oben
 Profil  
 
BeitragVerfasst: 28.06.2009, 23:40 
Offline

Registriert: 21.05.2009, 23:10
Beiträge: 17
Kann sein dass ich mich irre, aber rein theoretisch müsste es reichen, wenn du einfach die Texturen neu zuweist.

Ansonsten... was das Löschen betrifft... kann es eventuell sein dass du aus einer normalmap nochmal eine normalmap machst?


Nach oben
 Profil  
 
BeitragVerfasst: 01.07.2009, 17:42 
Offline
Benutzeravatar

Registriert: 07.01.2008, 21:37
Beiträge: 26
Das mit der Normalmap könnte das Problem lösen! Danke für den Tipp... ich werd's gleich ausprobieren.

_________________
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.


Nach oben
 Profil  
 
BeitragVerfasst: 10.07.2009, 20:38 
Offline
Benutzeravatar

Registriert: 07.01.2008, 21:37
Beiträge: 26
Sorry für das späte Feedback, aber das mit der Normalmap war es. Ich hab jetzt einen Vektor angelegt in dem sich alle Namen der Texturen befinden die schon zu einer Normalmap gemacht wurden. Jetzt klapp es einwandfrei. Wäre vielleicht ein Verbesserungsvorschlag für Irrlicht: Intern so eine Liste anlegen, damit Normalmaps nicht aus Versehen 2x generiert werden. Danke.

_________________
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.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de