Objekte einfügenZum Einfügen eines Modells stellt der Scenemanager von Irrlicht die Methode getMesh bereit. Zum Verknüpfen des Meshes mit dem Szenengraphen wird hier IAnimatedMeshSceneNode verwendet. (es mag vielleicht gewöhnungsbedürftig sein, ein statisches Mesh der Klasse IAnimatedMesh zuzuweisen, aber im Grunde genommen ist ein statisches Mesh ja nichts anderes als ein animiertes Mesh mit nur einem Frame)
//add objects
IAnimatedMesh* sariMesh = irrSceneMgr->getMesh("models/sari-hanFixed.obj"); IAnimatedMeshSceneNode* sariHan =
Die Methode setScale
kam schon in Teil V und VI dieses Tutorials vor. Neu sind die Methoden zur
Neuberechnung bzw. Normalisierung der Normalen. Sie sind notwendig, weil die Normalen
bei der Skalierung des Objektes mit verändert werden. Am Besten lässt sich der Einfluss
dieser Methoden erkennen, indem man sie einfach kurz auskommentiert und sich das
Ergebnis ansieht. (der vollständige Code ist auf der Downloadseite zu finden)
sariHan->setScale(vector3df(100,100,100));
irrSceneMgr->getMeshManipulator()->recalculateNormals(sariMesh->getMesh(0)); sariHan->setMaterialFlag(EMF_NORMALIZE_NORMALS, true); Damit der Tempel ein wenig interessanter aussieht, wird er nun noch texturiert.
irrSceneMgr->getMeshManipulator()->makePlanarTextureMapping(
sariHan->setMaterialTexture(0,
Die MaterialFlags sind ja bereits bekannt. Gouraud Shading ist standardmäßig aktiviert, die
Alternative wäre Flat Shading.
sariHan->setMaterialType(EMT_SOLID);
zurück
weiter
sariHan->setMaterialFlag(EMF_GOURAUD_SHADING, true); sariHan->setMaterialFlag(EMF_LIGHTING, true); sariHan->setMaterialFlag(EMF_FOG_ENABLE, true); sariHan->setPosition(terrainCenter + vector3df(0, -220, 1500)); Katarina Boland |