Skybox & Skydome
Für Skybox und Skydome gibt es spezielle Knotentypen in Irrlicht, was das Ganze schön einfach macht. Hier wird eine Skybox benutzt.
Das einzige, das ein wenig unintuitiv funktioniert, ist, dass man ab Irrlicht 1.4 die Texturen für die Skybox auf der z-Achse vertauschen muss. Die Skybox sollte aus Bildern mit Größe einer Zweierpotenz bestehen, z.B 512*512. Andernfalls könnten die Ränder der Textur als Kanten in der Skybox zu sehen sein (was natürlich auch ganz nützlich sein kann, wenn man sich anschauen will, wie eine Skybox funktioniert).
//create skybox
ISceneNode* SkyBox = 0;
SkyBox = irrSceneMgr->addSkyBoxSceneNode(
- irrDriver->getTexture("skybox/topsa2.jpg"),
- irrDriver->getTexture("skybox/zolsky06_dn.jpg"),
- irrDriver->getTexture("skybox/frontsa2.jpg"), //swap images
- irrDriver->getTexture("skybox/backsa2.jpg"), //for irrlicht 1.4
- irrDriver->getTexture("skybox/rightsa2.jpg"),
- irrDriver->getTexture("skybox/leftsa2.jpg"));
Mit Skydome würde es so aussehen:
//create skydome
ISceneNode* SkyDome = 0;
SkyDome = irrSceneMgr->addSkyDomeSceneNode(
- irrDriver->getTexture("textures/philo_sky1_2k.jpg"),
- 64, 8, 1, 2, 0, -1);
Der erste Parameter texture ist die übergebene Textur.
Der zweite und dritte Parameter horiRes und vertRes steuern die horizantale bzw. vertikale Auflösung der Kugel.
Parameter 4 texturePercentage regelt, wie viel Prozent der Textur verwendet werden sollen (bezogen auf die Höhe der Textur). Der Wert sollte zwischen 0 und 1 liegen.
Wie viel von der Kugel dargestellt werden soll, kann mit dem nächsten Parameter spherePercentage übergeben werden, dessen Wert zwischen 0 und 2 liegen sollte. 1 bedeutet, dass genau die Hälfte der Kugel dargestellt wird (genauer gesagt die obere, für den Fall dass der Terrain so aufgebaut ist, dass man die untere Hälfte der Kugel nicht zu sehen bekommt), bei einem Wert von 2 wird die gesamte Kugel gezeichnet.
Der 6. Parameter parent legt den Vaterknoten für den Skydome fest. Da ein Skydome normalerweise keinen Vaterknoten hat und haben sollte, liegt dieser Wert bei 0.
Zu guter letzt kann dem Skydomeknoten noch eine Id zugewiesen werden. Die Id wird hier nicht mehr gebraucht, deshalb wird die Irrlicht-Standard-Id -1 verwendet.
zurück
weiter