Aktuelle Zeit: 13.05.2025, 12:00

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Blenderexport in Irrlicht
BeitragVerfasst: 24.02.2009, 20:30 
Offline

Registriert: 24.02.2009, 20:21
Beiträge: 6
Hey Leute,

ich versuche seit einiger Zeit Blenderobjekte in Irrlicht zu importieren. Leider bin ich bis jetz fast grandios gescheitert. Ich habe es geschafft eine Szene mit IrrBlend zu exportieren, allerdings funktionierte dann die Kollisionsabfrage nicht mehr.

Ich hab meinen Quelltext mal hier gepostet: http://nopaste.info/e2bb393e65.html Mein Code ist vielleicht etwas wirr, aber ich hab echt shon viel drin herrum probiert.

Danke schonmal!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Blenderexport in Irrlicht
BeitragVerfasst: 27.02.2009, 12:53 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
Naja, und was ist jetzt dein Problem?
Die Kollisionsabfrage in einer Scene oder was?
ich glaube, das du das nicht gesagt hattest.

_________________
...then he said, "I can't feel my legs!" and I said "Joe! Stay with me Joe!" But it was ... to late. The garbage collector came and... he was gone. Best object I ever had.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Blenderexport in Irrlicht
BeitragVerfasst: 01.03.2009, 18:51 
Offline

Registriert: 24.02.2009, 20:21
Beiträge: 6
Mhh naja genau die kollisionsabfrage mit den einzelnen Objekten der Szene funktioniert nicht.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Blenderexport in Irrlicht
BeitragVerfasst: 03.03.2009, 18:27 
Offline

Registriert: 12.04.2007, 11:47
Beiträge: 108
Funktioniert das?
Code:
smgr->getSceneNodesFromType(scene::ESNT_UNKNOWN, nodes); // Find all nodes

Ich glaub fast nicht.
Versuch mal folgende Funktion statdessen
Code:
void registerCollision(irr::scene::ISceneNode* node, irr::scene::IMetaTriangleSelector * meta, irr::scene::ISceneManager* smgr)
{
    irr::scene::ITriangleSelector * selector = 0;
   
   switch(node->getType())
   {
      case irr::scene::ESNT_CUBE:
         printf("cube");
         break;
      
       case irr::scene::ESNT_ANIMATED_MESH:
         // Because the selector won't animate with the mesh,
         // and is only being used for camera collision, we'll just use an approximate
         // bounding box instead of ((scene::IAnimatedMeshSceneNode*)node)->getMesh(0)
         selector = smgr->createTriangleSelectorFromBoundingBox(node);
         printf("Anim. MEsh");
         break;
         
      case irr::scene::ESNT_MESH:
      case irr::scene::ESNT_SPHERE: // Derived from IMeshSceneNode
         selector = smgr->createTriangleSelector(((irr::scene::IMeshSceneNode*)node)->getMesh(), node);
         printf("MEsh");
         break;
      
      case irr::scene::ESNT_TERRAIN:
         selector = smgr->createTerrainTriangleSelector((irr::scene::ITerrainSceneNode*)node);
         printf("Terrain");
         break;
      
      case irr::scene::ESNT_OCT_TREE:
         selector = smgr->createOctTreeTriangleSelector(((irr::scene::IMeshSceneNode*)node)->getMesh(), node);
         printf("octree");
         break;
      
      default:
         // Don't create a selector for this node type
         printf("defaul");
         break;
   }
   if(selector)
   {
      // Add it to the meta selector, which will take a reference to it
      meta->addTriangleSelector(selector);
      // And drop my reference to it, so that the meta selector owns it.
      selector->drop();
   }
   irr::core::list<irr::scene::ISceneNode*>::ConstIterator it = node->getChildren().begin();
   while (it != node->getChildren().end())
   {
      registerCollision(*it, meta, smgr);
      ++it;
   }
}


And the use it like this instead of line 33-85:
Code:
registerCollision(smgr->getRootSceneNode(), meta, smgr);


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Blenderexport in Irrlicht
BeitragVerfasst: 03.03.2009, 20:32 
Offline

Registriert: 24.02.2009, 20:21
Beiträge: 6
Cool Danke. Also die Kollision funktioniert jetzt nur habe ich jetzt ein andere Problem. Ich lande (egal auf welche Position ich die Kamera setze) immer an einer Stelle in der Szene und kann mich dort wenig bis gar nicht bewegen. Von dieser Stelle komm ich auch nicht weg. Kommentier ich das "registerCollision(smgr->getRootSceneNode(), meta, smgr);" kann ich die Startposition verändern aber die Kollision funktioniert dann ja nicht mehr


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Blenderexport in Irrlicht
BeitragVerfasst: 04.03.2009, 00:52 
Offline

Registriert: 12.04.2007, 11:47
Beiträge: 108
Du musst die Kameraposition setzten bevor du den Kolissionanimator hinzufügst.
Außerdem ist deine Geschwindigkeit viel zu hoch. seit irrlicht 1.5 wurde die geschwindigkeits einteilung geändert. Versuch mal 0.5f statt 500.0f.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Blenderexport in Irrlicht
BeitragVerfasst: 17.03.2009, 14:44 
Offline

Registriert: 24.02.2009, 20:21
Beiträge: 6
Ah super es funktioniert. Hab das mit den Geschwindigkeitsangaben nich geändert, da ich noch 1.4.. verwende aber mit dem Umstetzen des Kameraaufrufs gehts super :)
Vielen Vielen dank auf jeden Fall :)


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de