Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.01.2011, 23:16

[Ogre3D]Wie fügt man eine Textur zur Laufzeit einer Entity zu

Hallo Community,

ich möchte wie der Topic schon sagt zur Laufzeit einem Mesh eine Textur hinzufügen allerdings hab ich irgendwie noch nicht gefunden wie das funktionieren soll.
Hier etwas Code vom Mesh.

C-/C++-Quelltext

1
2
3
4
    Ogre::Entity* entHero = mSceneMgr->createEntity("Hero", "Hero.mesh");
 entHero->setCastShadows(true);
 this->m_Hero = mSceneMgr->getRootSceneNode()->createChildSceneNode();
    this->m_Hero->attachObject(entHero);


P.S.: Kann Ogre auch ms3d Formate lesen?

Vielen Dank im Voraus.
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

2

05.01.2011, 00:20

Also grundsätzlich verwendet Ogre hierbei spezielle material-Dateien, in denen alle Informationen über Farbe und Textur des Objektes drinstehen. Im Normalfall sollten die Material-Dateien im Ogre-Mesh gespeichert sein(die üblichen Exporter aus 3D-Programmen kopieren den Namen des Materials im 3D-Programm).
Und dann muss eben einfach nur ein entsprechendes Material in einem Material-Script existieren und es wird automatisch übernommen.
Wenn du das verwendete Material zur Laufzeit ändern willst, bringt die Klasse Ogre::Entity eine Funktion mit, die "setMaterialName" lautet und mit der man den Namen eines anderen Materials bestimmen kann.
Wenn du wissen willst, wie solche Scripts aufgebaut sind, schaust du dir am besten mal die Beispiele im OgreSDK an oder du liest das hier

PS: Nein so weit ich weiß, kannst du keine solchen Modeldateien laden. Aber es gibt für fast alle gängigen 3D-Programme Exporter, die die Dateien dann in entsprechende Ogre-Mesh-Files umwandeln

3

05.01.2011, 10:08

Zitat

Im Normalfall sollten die Material-Dateien im Ogre-Mesh gespeichert sein(die üblichen Exporter aus 3D-Programmen kopieren den Namen des Materials im 3D-Programm).

Sicher? Diese sind doch fast immer als Separate Datei ;) Im Mesh gespeichert ist nur, der Name des Materials, meines wissens nach.
@Thread:
Du kannst Materialien auch zur Laufzeit erstellen und manipulieren. Suche einmal danach, und du wirst sicher fündig ;)

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

4

05.01.2011, 13:21

Ja mir fällt auch gerade auf, dass das falsch ausgedrückt war. Natürlich sind die Material-Scripts selbst eigenständige Dateien und eben der Name des Materials sollte beim Exportieren im Mesh gespeichert werden. Das war es, was ich egtl. sagen wollte.

5

05.01.2011, 13:44

Danke für eure Hilfe.
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

Werbeanzeige