Aktuelle Zeit: 12.05.2025, 23:00

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Wie am besten Objekte Laden
BeitragVerfasst: 26.04.2009, 17:53 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
Ich möchte ein Großes Objekt was aus gründen der Polygongröße aus mehreren Teilen besteht in irrlicht laden. Anschließend soll eine Texturen über die UV der einzelnen Objekte gelegt werden.


Bisher habe ich es so gemacht.
Objekt Laden
Code:
scene::IAnimatedMesh* obj1 = smgr->getMesh("models/obj1.lwo");
scene::ISceneNode* node1 = 0;

   if (obj1)
      node1 = smgr->addOctTreeSceneNode(obj1->getMesh(0), 0, -1, 1024);

   //Surface
         node1->setMaterialFlag(video::EMF_LIGHTING, false);
         node1->setMaterialType(video::EMT_PARALLAX_MAP_SOLID);



Ist es sinvoll sowas nacheinander für mehrere Objekte zu machen?
Wie lege ich eine Textur auf das Objekt?
Eine UV hat das Objekt.

Mein Lightning sieht so aus, gibt mir aber nur unbeleuchtete Objekte wieder.
Code:
   //Light
   // add light 1 (nearly red)
   scene::ILightSceneNode* light1 =
      smgr->addLightSceneNode(0, core::vector3df(0,0,0),
      video::SColorf(0.5f, 1.0f, 0.5f, 0.0f), 800.0f);


   //Lightning Aktivieren
   video::E_MATERIAL_TYPE type = video::EMT_SOLID;
   
   node1->setMaterialType(type);

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 28.04.2009, 07:38 
Offline
Benutzeravatar

Registriert: 23.06.2008, 07:21
Beiträge: 74
Wohnort: Dresden
Wenn du die Objekte Nacheinander lädst, macht es eigentlich keinen unterschied zu dem, als wenn du das ganze mit einmal laden würdest. Es sei den, deine Polygonanzahl ist extrem hoch.

Hast du wirklich gefragt, wie man eine Textur auf ein Objekt legt?
Falls ich das richtig verstehe, solltest du mal in das erste Tut gucken. Diese Zeile sollte dir schon helfen
Code:
node->setMaterialTexture( 0, driver->getTexture("../../media/sydney.bmp") );


Gruß Micha

EDIT:
Oder versuchst du, bei zum Beispiel 6 Objekten, eine Textur über alle Objekte zu legen?

_________________
...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: Wie am besten Objekte Laden
BeitragVerfasst: 01.05.2009, 19:30 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
erst mal will ich nur über ein Objekt eine textur legen. Ich habe das Format B3D genommen, weil ich dafür einen Viewer habe der mir dann genau zeigt wie das Objekt aussieht und ob die die UV auch mit exportiert wurde.
Ich weiß nicht genau wie Irrlicht mit den UV's von LWO oder anderne Formaten umgeht.

Code:
   scene::IAnimatedMesh* mesh1 = smgr->getMesh("saule.B3D");

   scene::ISceneNode* node = 0;

   if (mesh1)
      node = smgr->addOctTreeSceneNode(mesh1->getMesh(0), 0, -1, 1024);

   if (node){
      node->setPosition(core::vector3df(0   , 0,0));
      node->setMaterialTexture( 0, driver->getTexture("marmor.jpg") );
   }


Das Objekt ist aber komplet schwarz.

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 02.05.2009, 09:18 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Hi,

ich hab grad leider keine Zeit selbst nachzuschauen, aber vielleicht musst du auch noch den MaterialType ändern, schau doch mal nach anderen Codes bei denen eine UV Textur benutzt wird...

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 02.05.2009, 18:47 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
So wie ich das sehe positionierst du dein Licht auf 0,0,0 also in der Mitte und dein Mesh auch. Es könnte also sein das dein Mesh von der falschen Seite beleuchtet wird, bzw von Innen, deswegen ist es schwarz.

Also setz das Licht wo anders hin, oder setze node->setMaterialFlag(video:EMF_LIGHTING, false)

Wenn es dann immer noch schwarz ist sehen wir weiter ;)

MfG

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 03.05.2009, 12:15 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
Ich habe das ganze Mesh mit

Code:
      node->setPosition(core::vector3df(-10,0,100));
      node->setScale(core::vector3df(5,5,5));


verschoben, leider immer noch schwarz.

Ich habe einfach das Tutorial genommen und dort mein Modell eingefüht dort klappt es jetzt.
Aber jetzt gibt es ein seltsames Cliping vom Modell wenn ich nah rangehe, es kann aber kein near oder far clip sein da nur teile vom Modell verschwinden

Bild

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 03.05.2009, 12:42 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
dieses seltsame Clipping lag am Softwarerendere. Mit OpenGl oder DX3D geht es einwandfrei.

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 03.05.2009, 22:26 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
so das laden der Objekte hat geklappt.
Bin mit dem lighting etwas unzufrieden, auch wenn es mit dem ambient color besseraussieht.

kleinesIrrlicht3d Programm

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 04.05.2009, 13:27 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
nun möchte ich mehr als nur die color map auf dem Objekt und habe wie im Tutorial perpixellighting eine Normalmap drauf gemacht.
Jedoch ist mein Modell dann unsichtbar.

Es ist eingetlich genau so wie im tutorial

Code:
   IAnimatedMesh* mesh4 = smgr->getMesh("media/dach.obj");
   if (!mesh4)
      return 1;
   scene::ISceneNode* node4 = 0;

   if (node4)
   {
      smgr->getMeshManipulator()->makePlanarTextureMapping(mesh4->getMesh(0), 0.25f);
         
      video::ITexture* normalMap =
         driver->getTexture("media/dachziegel_bump.jpg");
      driver->makeNormalMapTexture(normalMap, 9.0f);

      scene::IMesh* tangentMesh = smgr->getMeshManipulator()->createMeshWithTangents(
         mesh4->getMesh(0));

      node4 = smgr->addMeshSceneNode(tangentMesh);

      node4->setMaterialTexture( 1, driver->getTexture("normalMap"));
      node4->setMaterialTexture( 0, driver->getTexture("media/dachziegel.jpg") );

      node4->getMaterial(0).SpecularColor.set(0,0,0,0);

      node4->setMaterialType(video::EMT_PARALLAX_MAP_SOLID);
      node4->setMaterialFlag(EMF_NORMALIZE_NORMALS, true);
      node4->getMaterial(0).MaterialTypeParam = 0.035f;

      node4->setScale(vector3df(scale,scale,scale));

      tangentMesh->drop();
   }

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 04.05.2009, 13:55 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Code:
node4->setScale(vector3df(scale,scale,scale));


Welchen Wert hat "scale"?

MfG

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 04.05.2009, 14:03 
Offline
Benutzeravatar

Registriert: 27.03.2009, 17:08
Beiträge: 11
int scale = 25;
damit die Objekte 25mal größerwerden.
Somit brauche ich beim Modelieren nichts zu ändern, weil ich dort nach echten masseinheiten arbeite.

Das wird damit denke ich nichts zutuen haben, wenn ich die Normal maps auskomentiere ists wieder da.

_________________
Lightwave 9.3, Visual Studio 2008


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie am besten Objekte Laden
BeitragVerfasst: 04.05.2009, 17:02 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Ich dachte nur so, scale könnte ja theoretisch auch 0 sein.

Btw, du lädst eine Normalmap oder eine Graustufenbumpmap? Weil du den Materialtype auf Parallax stehen hast. Da gibts schon einen Unterschied, vllt liegt es daran.

Versuch mal EMT_NORMALMAP_SOLID oder so

MfG

_________________
Cold-Death
Magnon


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

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