Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Exkurs - X3D

Werbeschild

Billboard-Tags (Billboard: engl. für Werbeschild) sorgen dafür, dass ihr Inhalt automatisch so rotiert wird, dass der Betrachter es ''von vorne'' sieht, d.h. so als hätte er seine eigene Sicht noch nicht gedreht. Dass sieht dann im Code so aus:

<Billboard>
    <Shape>
    ...
</Billboard>

Der Effekt ist in Bildern nur schwer darzustellen, daher kein Beispiel an dieser Stelle - probiere es doch einfach mal aus. Billboard-Tags werden üblicherweise verwendet, um Beschriftungen markanter Punkte stets lesbar zu halten. Standardmäßig findet die automatische Rotation nur um eine Achse statt, nämlich die Y-Achse. Diese Achse lässt sich direkt ändern:

<Billboard axisOfRotation='0 1 0'>
    <Shape>
    ...
</Billboard>

Hier geschähe nichts Neues da ebenfalls die Y-Achse gewählt wurde. Wenn man will, dass das Objekt um alle Achsen rotiert wird, kann man als ''Achse'' auch einfach (0,0,0) angeben.

Kollision

Mit Collision-Tags kann man bestimmen, ob ein Objekt den Betrachter blockiert oder nicht - normalerweise ist dies automatisch der Fall. Mit:

<Collision collide='false'>
    <Shape>
    ...
</Collision>

lässt sich das ausstellen - alle Objekte, die der Tag umschließt, sind dann durchlässig.

Eine andere interessante Funktion von Collision-Tags sind Proxies. Diese werden auf diese Weise definiert:

<Collision>
    <Shape containerFiled='proxy'>
        ...
    </Shape>

    <Shape>
    ...
</Collision>

Hier wird das erste Objekt, in dem containerField='proxy' ausgewählt wurde, als Proxy der Kollision bestimmt. Das heißt, es ist unsichtbar aber fühlbar und übernimmt die Kollisionsberechnung für alle anderen Objekte, die mit dem gleichen Collision-Tag umschlossen werden. Das ist nützlich, wenn man sehr komplizierte Figuren hat und es dem Rechner ersparen will, für alle Teile der Figur die Kollision zu berechnen - um einen Baum mit vielen Ästen und Blättern würde man z.B. einen Zylinder als Proxy legen sodass nicht berechnet wird, ob der Betrachter mit einem Blatt kollidiert sondern nur, ob er das mit dem Zylinder macht.

Sonst gilt es zu Kollisionen zu sagen, dass nur polygonale Objekte mit dem Betrachter kollidieren können - das betrifft die normalen geometrischen Objekte und Netze während insbesondere Text nicht blockieren kann. Soll Text blockieren, so kann man beispielsweise eine Box mit 100\%iger Transparenz zum Blockieren genutzt werden (siehe Aufgabe 3a).

Navigationsmodus

Wenn man beispielsweise ein Labyrinth modelliert hat, so will man nicht, dass der Betrachter es von oben betrachten kann. Oder man will schlichtweg das Gefühl erzeugen, dass der Betrachter durch eine Landschaft wandert anstatt über sie fliegt. Das lässt sich auf folgende Weise realisieren:

<NavigationInfo type=' "WALK" '/>

Wir setzen hier den Betrachtungsmodus auf Laufen (Walk). In diesem Modus fällt der Betrachter auf den Grund unter ihm (mit der Y-Achse als Höhenachse) und kann nun auf dem Boden laufen. Wichtig ist hier zu wissen, dass er Objekte von einer Höhe von 0.75 überwinden kann, eine Höhe von 1.6 hat (was für Tunnel also die Mindesthöhe wäre) und einen Radius von 0.25 (der Betrachter ist also ein Zylinder welcher 0.75 Einheiten hoch klettern kann).

Standard ist <NavigationInfo type=' ''EXAMINE'' ''ANY'' '/>. Aus diesem Standard lesen wir, dass es weitere mögliche Modi gibt und dass mehrere Modi gleichzeitig benutzt werden können. Die Modi sind: EXAMINE um ein einzelnen Objekt zu betrachten, an dieses heranzuzoomen und um es zu rotieren, FLY um in die Richtung des Mauszeigers zu fliegen (das ist intuitiv leicht an einer Szene zu begreifen, probiere es doch einfach einmal aus), WALK für das bereits Besprochene, LOOKAT um einzelne Objekte per Klick zu erreichen, ANY um dem Betrachter zu erlauben, seinen Modus frei auszuwählen und NONE um den Betrachter ''zu lähmen'' (Mittels Blickpunkten ist Navigation dann aber eingeschränkt noch möglich)

Achtung: Im Abschnitt über Blickpunkte haben wir den NavigationInfo-Tag bereits genutzt, um den Wechsel zwischen Blickpunkten zu verändern. Wenn beides genutzt werden soll, so packt man beide Einstellungen am Besten in den gleichen Tag.
X

Fehler melden

X

Suche