Aktuelle Zeit: 22.12.2024, 09:30

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 19:02 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
also, es funktioniert nur fast.

ich hab die zeile
Code:
if (node)
   {
     node->setPosition(core::vector3df(-1350,-130,-1400));

      selector = smgr->createOctreeTriangleSelector(
            node->getMesh(), node, 128);
      node->setTriangleSelector(selector);
     
  }



abgeändert zu

Code:
if (node)
   {
     //Position des Meshes auf 0,0,0 geändert
      node->setPosition(core::vector3df(0,0,0));

      selector = smgr->createOctreeTriangleSelector(
            node->getMesh(), node, 128);
      node->setTriangleSelector(selector);
    }


(position des meshes geändert, weil ich es sonst im unendlichen 3d raum nicht finde)

das problem: jetzt stimmt anscheinend das ganze zeug mit der camera und so nicht mehr. was muss ich jetzt da ändern (wie gesagt, meshposition auf 0,0,0 gesetzt)???

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 19:15 
Offline

Registriert: 11.07.2010, 10:11
Beiträge: 8
Die Kamera jetzt mitten im Raum über dem Boden Positionieren,sonst fällst Du ins unendliche, wie du ja bemerkt hast.

_________________
IrrlichtWrapper C#/VB/PB
http://www.druid3d.de/


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 19:32 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
ich habs versucht:

camera->setPosition(core::vector3df(0,0.5,0));

jetzt ist die kamera beim start genau im raum, wenn ich dann allerdings eine pfeiltaste drücke, bin ich außen. was mir allerdings auffällt: ich kann nur bis zu einer bestimmten tiefe unter dem mesh fallen, danach kann ich nicht mehr nach unten, das gleiche gilt für rechts und links (irgendwann stoße ich gegen eine unsichtbare barriere).

was muss ich jetzt da ändern?

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 19:48 
Offline

Registriert: 11.07.2010, 10:11
Beiträge: 8
Du hast ja bemerkt das ich in dem Code den ich gepostet hatte nochmals eine Änderung vornahm?

Code:
node = smgr->addOctreeSceneNode(mesh->getMesh(0));
//node = smgr->addAnimatedMeshSceneNode(mesh);


_________________
IrrlichtWrapper C#/VB/PB
http://www.druid3d.de/


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 19:53 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
nein, aber das ändert irgendwie auch nichts (wenn ich einmal peiltaste nach vorne drücke bin ich außen. dann kann ich im "freien raum" einige einheiten nach unten, stoße aber dann auf einen unsichtbaren boden. das gleiche für links und rechts.

ich weiß nicht so recht, welcher parameter (oder wie das heißt) steuert denn das?

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 20:17 
Offline

Registriert: 11.07.2010, 10:11
Beiträge: 8
Code:
core::vector3df box=core::vector3df(5,5,5); //Die größe der umgebenden Boundingbox  verkleinern
core::vector3df gravitation=core::vector3df(0,0,0);//Gravitation auf 0

smgr->createCollisionResponseAnimator(
      selector, camera, box,gravitation);


_________________
IrrlichtWrapper C#/VB/PB
http://www.druid3d.de/


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 27.05.2011, 20:35 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
jetzt lässt sich die kamera garnicht mehr bewegen :?
Code:
#include <irrlicht.h>
using namespace irr;
using namespace video;
using namespace core;
using namespace scene;
using namespace gui;
using namespace io;
int main()
{
    IrrlichtDevice *device=
    createDevice(EDT_OPENGL, dimension2d<u32>(640,480),0,false,false,false,0);
    if (!device)
       return 1;
    device->setWindowCaption(L"Zimmer");
    IVideoDriver *driver=device->getVideoDriver();
    ISceneManager *smgr=device->getSceneManager();

   
    IAnimatedMesh *mesh=smgr->getMesh("C:/Dokumente und Einstellungen/Nick/Desktop/Zimmer.3ds");
    smgr->getMeshManipulator()->makePlanarTextureMapping(mesh->getMesh(0), 1.008f);
 
    scene::IMeshSceneNode* node = 0;
 

   node = smgr->addOctreeSceneNode(mesh->getMesh(0));
  node->setMaterialTexture(0,   driver->getTexture("C:/Dokumente und Einstellungen/Nick/Desktop/SDK-Irrlicht3D/irrlicht-1.7.1/media/wall.jpg"));
   node->getMaterial(0).SpecularColor.set(0,0,0,0);

   scene::ITriangleSelector* selector = 0;
 
   if (node)
   {
     node->setPosition(core::vector3df(0,0,0));

      selector = smgr->createOctreeTriangleSelector(
            node->getMesh(), node, 128);
      node->setTriangleSelector(selector);
     
   }







    scene::ICameraSceneNode* camera =
                smgr->addCameraSceneNodeFPS(0, 100.0f, .3f/*, ID_IsNotPickable*/, 0, 0, true, 3.f);
        camera->setPosition(core::vector3df(0,0.5,0));
        camera->setTarget(core::vector3df(-70,30,-60));


if (selector)
   {
     


core::vector3df box=core::vector3df(5,5,5);
core::vector3df gravitation=core::vector3df(0,0,0);



      scene::ISceneNodeAnimator* anim =smgr->createCollisionResponseAnimator(
      selector, camera, box,gravitation);


   


     
         core::vector3df(0,-10,0), core::vector3df(0,30,0);
      selector->drop();
      camera->addAnimator(anim);
      anim->drop(); 
   }



      device->getCursorControl()->setVisible(false);





   scene::ISceneNode* lightNode=NULL;
    lightNode = smgr->addLightSceneNode(0, core::vector3df(0,0,0),
      video::SColorf(1.0f, 0.6f, 0.7f, 1.0f), 600.0f);



    while(device->run())
    {
        driver->beginScene(true,true,0);
        smgr->drawAll();
        driver->endScene();
    }
    device->drop();
    return 0;



}




gibts eigentlich eine andere möglichkeit als diese bounding box? wieso geht das mit dem triangleselector nicht?

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera auf Kollision einstellen
BeitragVerfasst: 11.05.2013, 12:12 
Offline

Registriert: 11.05.2013, 11:58
Beiträge: 3
Ansonsten naiver Ansatz: Da der Raum ja Rechteckig ist (nehme ich mal an), kannste sagen,


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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