<
>
swopdoc logo
Download
a) trade for free
b) buy for 2.38 $
Document category

Specialised paper
Information Technology / Computer S

University, School

Köln, Realschule

Grade, Teacher, Year

3, Prof. lang, 2013

Author / Copyright
Text by Glenn G. ©
Format: PDF
Size: 0.07 Mb
Without copy protection
Rating [details]

Rating 4.5 of 5.0 (2)
User:
Super text und alles gut und ausführ­lich erklärt­. Keine rechtsch­reibfehl­er. Ich bin begeiste­rt und würde mich sehr um eine fortsetz­ung der reihe wünsche­n.

Live Chat
Chat Room
Networking:
0/1|0[-3.0]|1/8













More documents
JSP Inhalt 1 Hypertext Transfer Protocol 3 1.1 HTTP Allgemein. 3 1.2 POST / GET. 4 1.3 Error-Codes. 4 2 Sessions. 4 2.1 Allgemeines zu Sessions. 4 2.2 Sessions in JSP. 5 2.3 Wann wird eine Session beendet?. 5 3 JSP. 5 3.1 Syntax. 5 3.2 Aufbau. 6 3.2.1 Direktiven. 6 3.2.2 Skriptingelemente.­ 7 3.2.3 Action-Elemente.
Preview page 4 of 4 : [1] [2] [3] [4]

der Tarnung angewandt, wo bewußt zum Umfeld passende Muster verwendet werden, um so die

unregelmäßigen Merkmale des zu tarnenden Objektes zu verschleiern und dadurch das menschliche

Auge zu täuschen.

High-Resolution Timer

Wendet man dieses Wissen nun auf die Animation an, dann stellt man fest, daß das menschliche

Auge schon kleine Unregelmäßigkeiten im Bildaufbau besonders stark wahrnimmt und den Spieler

recht schnell darauf aufmerksam macht.

Deshalb sollte eine gute Animation so flüssig und

regelmäßig wie nur möglich sein!

Java selbst bietet hierfür allerdings noch nicht die besten Voraussetzungen. Der bisher integrierte

Timer System.currentTimeMillis() liefert nur Werte im Mikrosekundenbereich und ist zudem

auch noch recht ungenau.

Für eine flüssige Animation wird jedoch ein extrem genauer Timer

benötigt, der im Nanosekundenbereich arbeitet. Abhilfe können hier externe Bibliotheken schaffen,

die z.B. über JNI auf Timer des Betriebssystems zugreifen. Der Preis dafür ist jedoch die zusätzlich

verwendete Bibliothek und evtl. damit verbunden Lizenzrestriktionen.

Dieses Problem ist bekannt

und soll nun in der neuen Java Version 1.5 gelöst werden. Diese soll nämlich den lange ersehnten

high-resolution Timer beinhalten und damit eine einheitliche Lösung für alle Java Plattformen

bieten.Timing über Threads

Eine Alternative zu einem externen high-resolution Timer wäre noch ein Timing über das Thread-

System von Java.

Der Ausführungszeitpunkt eines Threads ist zwar ungenau, aber die Methoden

werden in relativ regelmäßigen Abständen und immer(!) nacheinander ausgeführt. Nutzt man dieses

Wissen und bewegt jetzt mit jedem Methoden-Aufruf die zu bewegenden Bilder um die gleiche

Anzahl an Maßeinheiten weiter, dann läßt sich eine relativ flüssige Animation erzeugen, wenn die

Auslastung der CPU und die Anzahl der aktiven Threads gering ist.

Diese Art der Animation eignet

sich daher bedingt für kleineren 2D Spiele wie z.B. Applets, ist jedoch von der Performance des

verwendeten Rechners abhängig und wird auf schwächeren Systemen natürlich deutlich langsamer

laufen. Die Synchronisation von Multiplayer-Spielen kann man deshalb nicht über ein reines

Thread-Timing realisieren, sondern muß hier zusätzlich noch eine andere (evtl. auch ungenauere)

und von der Performance des Systems unabhängige Form des Timings verwenden.

2.2. Java 3D und andere Bibliotheken

Will man 3D Grafik oder 3D Sound in Java-Programmen verwenden, dann hat man hier

verschiedene Möglichkeiten: entweder man greift auf die Java3D API von Sun zurück, oder aber

man verwendet externe Bibliotheken von Drittherstellern.

Die einfachste und auch komfortabelste Lösung ist die Verwendung der Java3D API von Sun.

Diese bietet nämlich, neben 3D Grafik, ein Framework für 3-dimensionalen Sound, sowie

Unterstützung für zahlreiche, teilweise auch exotische Eingabegeräte, wie z.B. “VR-Headsets” und

“Data Gloves”.

Ihr größter Vorteil jedoch ist die Verwendung eines Szene-Graphen, welcher nicht

nur ein objektorientiertes Arbeiten mit 3D Grafik und 3D Sound ermöglicht, sondern auch noch

zusätzliche Features wie z.B. “collision detection” und “collision handling” bereitstellt. Der

Programmierer kann mit Java3D von einer sehr mächtigen und funktionsreichen API profitieren

und so auf einem extrem hohen Abstraktionsniveau arbeiten.

Dadurch spart man sich natürlich jede

Menge Entwicklungszeit. Allerdings zahlt man auch einen Preis dafür, denn die Java3D API wurde

als generelle API für 3D Anwendungen konzipiert und ist somit natürlich nicht primär auf die

Anforderungen von Spielen optimiert.

Ein Großteil ihrer Funktionalität wird in der Regel auch nicht

in Spielen benötigt und ist damit erst einmal unnötiger Ballast. Trotzdem ist Java3D eine stabile

API, deren Performanz für eine Vielzahl von 3D Anwendungen und Spielen locker ausreicht.

Java3D ist nicht Bestandteil des Java “Core” und muß daher zusätzlich heruntergeladen und

installiert werden.

Allerdings kann Java3D danach problemlos in die “Java Foundation Classes”

eingebunden werden und mit AWT-Komponenten (mit etwas Anpassung auch Swing-

Komponenten) zusammenarbeiten. Eine Einführung in Java3D befindet sich im Anhang.

Eine Alternative zu Java3D wäre die Verwendung verschiedener externer Bibliotheken von

Drittherstellern.

Beispielsweise könnte man eine OpenGL-Bibliothek wie JOGL

( oder GL4JAVA ( verwenden, um so

die 3D Grafik über die OpenGL Schnittstelle zu realisieren. Dadurch hat man nicht nur einen

direkten Zugriff auf die Rendering Pipeline und somit die Möglichkeit, das Rendering selbst zu

beeinflussen, sondern kann zusätzlich sogar noch, durch die Verwendung hardwarespezifischer

Funktionen, ein extremes “Performance-Tuning” vornehmen.

Wie man sich sicher vorstellen kann,

ist diese Variante natürlich performanter, erfordert dafür aber ein Arbeiten auf einem relativ

niedrigen Abstraktionsniveau und bedeutet damit auch einen deutlichen Mehraufwand in der

Entwicklungszeit.

Funktionalitäten wie 3D Sound, “collision detection / handling” oder die

Unterstützung von Eingabegeräten muß man hier entweder selbst implementieren, oder aber in

zusätzlichen Bibliotheken “einkaufen”. Dadurch steigt natürlich zum Einen die Komplexität der

Anwendung und zum Anderen die Abhängigkeit von verschiedenen externen Anbietern, sowie evtl.

damit verbundene Lizenzrestriktionen (z.B.

GPL).


ACHTUNG:

DIESER TEXT IST NUR EIN AUSSCHNITT!!! FÜR WEITERE TEXTE BITTE FRAGEN .



GESCHRIEBEN VON:

N.

G.

Preview page 4 of 4 : [1] [2] [3] [4]
The site owner is not responsible for the content of this text provided by third parties

Legal info - Data privacy - Contact - Terms-Authors - Terms-Customers -
Swap+your+documents