So lassen sich mit Java-3D Grafikanwendungen erstellen

Ein 3D-Objekt enthält eine Sammlung von Koordinaten, die zusammen gerendert wurden. Die Klasse der Stammfunktionen (Primitive class) ist eine abstrakte Klasse für Geometrieobjekte, die als einfache Bausteine in Szenengraphen verwendet werden können. Java-3D bringt vier praktische Unterklassen der Stammfunktionen mit: Kugel (Sphere), Quader (Box), Kegel (Cone) und Zylinder (Cylinder). Mit ihnen lassen sich problemlos einfache Objekte erstellen, ohne viele Daten anzugeben. Bei der Kugel-Klasse gibt man beispielsweise einfach den Radius an, und alle Scheitelpunkte werden automatisch berechnet.

Will man ohne die Stammfunktionen-Klassen arbeiten, muss die Shape3D-Klasse verwendet werden, um alle Scheitelpunkte anzugeben. Die Daten lassen sich in Gestalt von Dreiecken, Vierecken, Linien oder Punkten spezifizieren. Die geometrische Repräsentation einer Kugel würde zum Beispiel als polygonales Netz definiert, üblicherweise mithilfe von Bändern aus miteinander verbundenen Dreiecken oder Vierecken.

Zumindest muss jeder Scheitelpunkt einen Ortswert (Koordinate) aufweisen. Zusätzlich zu den Ortswerten kann man noch weitere Elemente für jeden Scheitelpunkt angeben, etwa einen Farbwert, einen Normalvektor oder Texturkoordinaten. Normalvektoren finden für Beleuchtungseffekte Verwendung. Texturkoordinaten kommen zum Einsatz, um Texturen per Texturmapping auf einer Oberfläche darzustellen. Jeder Scheitelpunkt kann auch einen Alpha-Wert haben (für die Transparenz), der zusammen mit seiner Farbe angegeben wird. Bei Verwendung der Stammfunktionen-Klassen werden die Scheitelpunktvektoren und die Texturkoordinaten automatisch erzeugt.

Obwohl sich eine ganze Menge Daten mit jedem Scheitelpunkt speichern lässt, werden viele Grafikeffekte mithilfe des Appearance-Objekts erzeugt. Dieses Objekt beschreibt die allgemeinen Attribute der Oberfläche eines Gegenstandes. Jedes Shape3D- und Stammfunktionen-Objekt verfügt über sein eigenes Appearance-Objekt. Jedes Appearance-Objekt enthält wiederum eine Reihe von Attribut-Objekten. So kann ein Appearance-Objekt beispielsweise sowohl ein ColoringAttributes-Objekt als auch ein RenderingAttributes-Objekt enthalten.

Wie funktionieren Transformationen, Lichteffekte und Texturierungen?

Wenn die Objekte fertig sind und dargestellt werden sollen, lassen sie sich mittels 3D-Transformationen bewegen und skalieren, also im Prinzip animieren. Ort, Richtung, und Orientierung der Ansicht bezeichnet man als Viewpoint. Transformationen werden als Matrizen angegeben, und zwar in der leistungsfähigen Transform3D-Klasse. Transform3D bringt zahlreiche Hilfsfunktionen mit, um gängige Transformationen festzulegen, etwa Translationen, Rotationen oder Skalierungen.

Die Methode setTranslation(Vector3f trans) führt eine Translation eines Objekts durch, verschiebt es also. Dazu werden die Translationswerte dieser Transformation durch die x-, y- und z-Werte im trans-Argument ersetzt. Die Methode setScale(double scale) legt den Skalierungsfaktor der Transformation fest. Diese Funktion dient zur Größenveränderung eines Objekts. Die Methode rotX(double angle) stellt die Rotationskomponente auf eine Drehung gegen den Uhrzeigersinn um die x-Achse ein.

Zusätzlich zur Auswahl der Objekte innerhalb der Szene lässt sich ihre Darstellung auch über Beleuchtungseffekte steuern. Man kann die Art des Beleuchtungseffekts, etwa ein Spotlight, und die Farbe des Lichts angeben. Ebenso sind Nebeleffekte und automatische Verhaltensweisen der Objekte möglich.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Intel verschiebt Bau der Chipfabrik in Magdeburg

Das Projekt liegt wahrscheinlich für rund zwei Jahre auf Eis. Aus der Fertigungssparte Intel Foundry…

2 Tagen ago

Google kündigt neue Sicherheitsfunktionen für Chrome an

Der Sicherheitscheck entzieht unsicheren Websites automatisch alle Berechtigungen. Zudem können Nutzer in Chrome künftig Websites…

3 Tagen ago

Cyberkriminelle nehmen Fertigungsbetriebe ins Visier

Ontinue registriert einen Anstieg beim Anteil am Gesamtangriffsvolumen um 105 Prozent. Das Angriffsvolumen auf den…

3 Tagen ago

o1: OpenAI stellt neues KI-Modell für komplexe Abfragen vor

Das o1 genannte Modell liegt als Preview vor. Bei einer Mathematikprüfung beantwortet es 83 Prozent…

5 Tagen ago

Zoom erhält IT-Sicherheits- kennzeichen des BSI

Das Kennzeichen erhalten Zoom Workplace Pro und Zoom Workplace Basic. Es bescheinigt unter anderem aktuelle…

6 Tagen ago

Google verbessert Tab-Verwaltung in Chrome

iOS und iPadOS erhalten Tab-Gruppen. Zudem unterstützt Chrome nun die Synchronisierung von Tab-Gruppen.

7 Tagen ago