Aktuelle Zeit: 19.04.2024, 05:52

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: wie erstelle ich einen quader
BeitragVerfasst: 24.04.2007, 11:44 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
hi leute,

ich hatte jez mehrfach versucht eine art plane platte zu erstellen, aber in der doku nix passendes gefunden. und einen würfel von oben zeigen. naja. also wie kann ich einen quader mit irrlicht erstellen?

ciao das heck


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2007, 13:58 
Offline

Registriert: 02.04.2007, 13:08
Beiträge: 11
also nen würfel / quader könnte man zb. so erstellen:

Code:
#include <irrlicht.h>
#include <iostream>

using namespace irr::video;
using namespace irr;

#pragma comment(lib,"..\\lib\\Irrlicht.lib")

int main()
{
   IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D9, core::dimension2d<s32>(640, 480), 32, false, false);

   video::IVideoDriver* driver = device->getVideoDriver();
   scene::ISceneManager* smgrRender = device->getSceneManager();
   scene::ISceneManager* smgrTexture = smgrRender->createNewSceneManager();

   scene::ICameraSceneNode* fpsCamera = smgrRender->addCameraSceneNodeFPS();
   fpsCamera->setPosition(core::vector3df(0,0,-7));
   device->getCursorControl()->setVisible(false);

   video::ITexture* rt = 0;
   scene::ICameraSceneNode* fixedCam = 0;
   

   f32 cubeSize = 5.f;
   video::SColor cubeColour(255,255,255,255);

   irr::scene::SMeshBuffer* buffer = new irr::scene::SMeshBuffer();

   u16 u[36] = {   0,2,1,   0,3,2,   1,5,4,   1,2,5,   4,6,7,   4,5,6,
            7,3,0,   7,6,3,   9,5,2,   9,8,5,   0,11,10,   0,10,7};

   buffer->Indices.set_used(36);
    for (s32 i=0; i<36; ++i)
      buffer->Indices[i] = u[i];

    buffer->Vertices.set_used(12);
    buffer->Vertices[0]  = video::S3DVertex(0,0,0, -1,-1,-1, cubeColour, 0, 1);
    buffer->Vertices[1]  = video::S3DVertex(1,0,0,  1,-1,-1, cubeColour, 1, 1);
    buffer->Vertices[2]  = video::S3DVertex(1,1,0,  1, 1,-1, cubeColour, 1, 0);
    buffer->Vertices[3]  = video::S3DVertex(0,1,0, -1, 1,-1, cubeColour, 0, 0);
    buffer->Vertices[4]  = video::S3DVertex(1,0,1,  1,-1, 1, cubeColour, 0, 1);
    buffer->Vertices[5]  = video::S3DVertex(1,1,1,  1, 1, 1, cubeColour, 0, 0);
    buffer->Vertices[6]  = video::S3DVertex(0,1,1, -1, 1, 1, cubeColour, 1, 0);
    buffer->Vertices[7]  = video::S3DVertex(0,0,1, -1,-1, 1, cubeColour, 1, 1);
    buffer->Vertices[8]  = video::S3DVertex(0,1,1, -1, 1, 1, cubeColour, 0, 1);
    buffer->Vertices[9]  = video::S3DVertex(0,1,0, -1, 1,-1, cubeColour, 1, 1);
    buffer->Vertices[10] = video::S3DVertex(1,0,1,  1,-1, 1, cubeColour, 1, 0);
    buffer->Vertices[11] = video::S3DVertex(1,0,0,  1,-1,-1, cubeColour, 0, 0);

   buffer->BoundingBox.reset(0,0,0);

   for (int i=0; i<12; ++i)
   {
      buffer->Vertices[i].Pos -= core::vector3df(0.5f, 0.5f, 0.5f);
      buffer->Vertices[i].Pos *= cubeSize;
      buffer->BoundingBox.addInternalPoint(buffer->Vertices[i].Pos);
   }

   irr::scene::SMesh * cubeMesh = new  irr::scene::SMesh();
   cubeMesh->addMeshBuffer(buffer);

   irr::scene::ISceneNode * cubeSceneNode =  smgrRender->addMeshSceneNode(cubeMesh);
   cubeSceneNode->setMaterialTexture(0, driver->getTexture("..\\Media\\wall.bmp"));
   cubeSceneNode->setMaterialFlag(video::EMF_LIGHTING, false);

   while(device->run())
  {
     if (device->isWindowActive())
     {
      driver->beginScene(true, true, SColor(0, 0, 255, 0));
        smgrRender->drawAll();
      driver->endScene();
     }
  }
  return 0;
}



Quelle: (C++) Add your own cube node


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2007, 15:06 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
oder einfach
Code:
ISceneManager::addCubeSceneNode();

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2007, 16:35 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
@bash: thx ich werde es sofort ausprobieren
@sylence: es wird mit deinem source kein quader erstellt, sondern ein würfel mit der kantenlänge 10.0f!!!

ciao das heck


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2007, 16:46 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Code:
ISceneManager::addCubeSceneNode(10.0f,0,-1,vector3df(0,0,0),vector3df(0,0,0),vector3df(X_SKALIERUNG,Y_SKALIERUNG,Z_SKALIERUNG));

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2007, 16:56 
Offline
Moderator

Registriert: 26.03.2007, 20:06
Beiträge: 114
Hach ja... wenn man einige Forenpost liest fragt man sich, wofür das Verzeichnis /Doc überhaupt mit im Irrlicht SDK ist...


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2007, 19:57 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
@sylence: sry ich wusste nicht dass du das meinst.
@lynxeye: du hast zwar recht und ich schaue auch oft darin nach, aber wenn einem die (auch auf der hand liegende) idee manchmal nicht einleuchtet dann kann die auch nicht helfen.

thx für alle posts


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 1 Gast


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