Grundlagen der dreidimensionalen Programmierung auf Basis von DirectX close

Bitte warten

Bitte installieren Sie den Flash Player, wenn kein E-Book erscheint.

Grundlagen der dreidimensionalen Programmierung auf Basis von DirectX

Autor: Bernd Zuther
Fach: Informatik - Software

Lesen Sie im E-Book



Details

Institut: Gymnasium
Tags: Grundlagen, Programmierung, Basis, DirectX
Kategorie: Facharbeit (Schule)
Jahr: 2001
Seiten: 15
Sprache: Deutsch
Dateigröße: 72 KB
Archivnummer: V102860
ISBN (E-Book): 978-3-640-01240-4

Volltext (computergeneriert)






Grundlagen der dreidimensionalen Programmierung
am Beispiel von DirectX



vorgelegt von:

Bernd Zuther

11d

Käthe-Kollwitz-Gymnasium

Halberstadt

2000/2001

- 1 -


Inhalt/Gliederung

Inhalt/Gliederung

Vorwort

3

1

Ziele dieser Arbeit

5

2

Computergrafik

5

3

GDI

6

4

DirectX

6

4.1 DirectDraw

7

4.1.1 Hardware Abstraktion Layer

8

4.1.2 Hardware Emulation Layer

8

4.2 Direct3D

9

5

OpenGL

11

6

Glide

11

7

Zusammenfassung und Ausblicke

12

Anhang

Quellen

- 2 -


Vorwort

Vorwort

Hinter der Arbeit mit einem Computer steht eine gewisse Ethik, die leider

nicht jedem User bewusst ist, der mit einem PC arbeitet. Viele Leute

sitzen Tag für Tag in einem Büro und arbeiten an ihren Computer und

schreiben seitenlange Words - Texte oder füllen irgendwelche Excel ­

Tabellen. Ja man kann sagen Sie beherrschen ihr Programm, aber wissen

die Personen auch, wie ihr Programm funktioniert, nicht wie man es be-

dient, wie es funktioniert. Wieso kommt die Zahl 312,89 genau in die

Zelle A345 oder was passiert, wirklich wenn man die Shift ­ Taste betä-

tigt, ein Computer kennt keine Groß- und Kleinschreibung. Aus diesen

Gründen mussten die Betriebsysteme für die modernen Schreibmaschinen

programmiert werden, das kleine Kind Computer musste die Unterschei-

dung der einzelnen Tasten einer Tastertur lernen. Doch damit ist das Bild

des Buchstabens, des Zeichens oder der Zahl noch lange nicht auf dem

Bildschirm. Der Computer musste es auch lernen die Ausgabe auf ein

Entfanggerät, wie einen Monitor oder einen Drucker zu gewährleisten.

Gut man kann nicht von einem ,,Bürohengst" verlangen, das er weiß, wie

sein System funktioniert, doch ein Programmierer sollte dies wissen. Und

wie man in der Praxis stehen kann ist der Aufstieg vom DAU (Dümmster

anzunehmender User), der sein CD-ROM ­ Laufwerk als Kaffeetassen-

halter benutzt, zum Hacker im eigentlichen Sinn zuschaffen, welcher alle

Details eines programmierbaren System erforscht und versucht deren

Möglichkeiten auszudehnen, jemand, der euthusisiatisch, sogar obzessiv,

programmiert oder lieber ein Programm schreib, als nur über ein anderes

zu theoretisierteren. Doch um ein guter Programmierer zuwerden ist es

von äußerder Wichtigkeit sein System zukennen und zu wissen was Sys-

tem tut.

Deshalb habe ich diese Facharbeit in erster Linie systemtheoretisch auf-

gebaut, da ich der Meinung bin, man muss sein System kennen und auch

die Vorgänge die in diesem vor sich gehen, um ein guter und dem ent-

sprechend professioneller Programmier seinen, denn auch unter den Pro-

grammierern gibt es genügend DAU, diese Leute wissen, wie man ein

Programm programmiert, aber wissen nicht was ihr Computer in Wirk-

lichkeit tut. Der praktische und auch der Teil in dem die Teile der Pro-

grammierung ist auf einer CD der Arbeit beigefügt, den Quellcode kann

man in durch kleine Änderungen in jeder Programmiersprache nutzen, in

dem man den 3D-API in der Programmiersprache als Komponente hinzu-

fügt.

- 3 -


Ziele dieser Arbeit

1 Ziele dieser Arbeit

Ziel dieser Facharbeit ist es, dem Leser grundlegende Inhalte der Struktu-

ren, moderner dreidimensionaler Computergraphiken, am Beispiel von

DirectX und OpenGL darzulegen.

Ausgangsfragestellungen für diese Arbeit waren:

-

Was ist eine Computergrafik?

-

Was ist das GDI?

-

Was ist DirectX?

-

Was ist OpenGL?

-

Was ist Glide?

Am Ende dieser Arbeit sollte also jeder Leser wissen, wie eine dreidi-

mensionale Grafik funktioniert und wie so es wichtig ist deren Aufbau

genaustes zukennen, denn nach der Erfassung steht natürlich auch der

Wusch eine dreidimensionale Animation in seine Programme einzubauen

bzw. ein kleines 3D-Spiel zuprogrammieren. Doch eine gezielte dreidi-

mensionale Programmierung kann nur erfolgen, wenn man alle Grundla-

ge für diese kennt und auch weiß, wie ein Rechner eine dreidimensionale

Grafik aufbaut, d.h. man sollte dabei auch über die rechnerinternen Vor-

gänge bescheit wissen und auch das Zusammenwirken von Rechner und

Betriebssystem dabei im Hinterkopf haben. Denn man ist kein Program-

mierer, wenn man nur weiß wie man programmiert, dann ist man nur eine

Person die eine Sprache sehr gut sprechen kann, aber ein richtiger Pro-

grammierer sollte wissen, was er tut und nicht nur das machen können, er

mal im Studium oder im Informatikunterricht gelernt hat, er sollte seine

Maschine beherrschen. Dies kann er aber nur, wenn er den Computer

auch als solches versteht und weiß wie man ihn beherrscht, dies kann er

aber nur wenn er ihn kennt.


2 Computergrafik

Man kann eigentlich grundsätzlich davon aus gehen, dass man alles, was

man im täglichen Computeralltag an grafischen Elementen, wie z.b. I-

cons, Bilddateien, Flash usw., austretende, als Computergrafik bezeich-

nen kann. An dieser Stelle sollte man, aber darauf hinweisen, dass es

doch zwei grundlegende Unterscheidungsmöglichkeiten gibt. Man unter-

teilt Computergrafiken nämlich in Pixel- und Vektorgrafiken.

- 4 -


Computergrafik

Pixel, die Abkürzung für Picture Element (dt.: Bildpunkt), ist das

kleinstmögliche Bildelement in einer digitalen Grafik. Eine Pixelgrafik ist

somit eine Grafik bei der die Fläche, auch Bitmap genannt, in einzelne

Bildpunkte unterteilt wird. Diese Bildpunkte bestehen auch mehreren

farbigen Punkten. Man kann daraus schon erkennen, das eine solche Gra-

fik einen enormen Speicherplatz benötigt. Aber gerade im Bereich der

digitalen Fotografie ist ein solches Verfahren wesentlich besser geeignet,

als das Speicherverfahren der Vektorgrafik.

Bei einem Vektor spricht man von einer geraden Linie (Strecke) mit Län-

ge und Richtung, bei diese durch Angabe von Anfangs- und Endpunkt

definiert wird. Daher bracht man nicht, wie bei einer Pixelgrafik die ein-

zelne Pixel speichern, sondern nur eine mathematische Beschreibung der

Objekte. Bespiel dafür wäre zum Beispiel, dass bei einer Linie nur An-

fangs- und Endpunkt und bei einem Kreis nur Mittelpunkt und Radius

gespeichert werden. Daher kann man Vektorgrafiken auch ohne Quali-

tätsverluste vergrößern bzw. verkleinern.

3 GDI

Für die Ausgabe von Grafiken und Texten auf den Bildschirm ist ein Teil

von Windows zuständig, der als Grafical Device Interface, kurz GDI,

bezeichnet wird. Das GDI enthält eine Vielzahl von Grafikmethoden,

welche im allgemein relativ schnell von Windows aus geführt werden

können. GDI­API - Funktionen sind unter anderen Polygon, Polyline und

RoundRect. Allen GDI­API­Funktionen ist folgendes gemeinsam, sie

zeichnen direkt in einen Gerätkontext. Man muss sich den Gerätekontext

als den aktuellen Zustand der Innenfläche eines Formulars oder eines

Bildfeldes vorstellen, in den der Gerätekontext eine Vielzahl von Attribu-

ten besitzt, wie z.B. ein Hindergrundmuster, eine Zeichenfarbe, eine Zei-

chenstärke oder eine Farbpalette. Das GDI besitzt keinen direkten Zugriff

auf die Hardware der Grafikkarte.


4 DirectX

Allen ,,Zockern" ist folgende Frage sicherlich ein Begriff: ,,Wo bekomme

ich die neue Version DirectX her?" Doch was verbirgt sich hinter dem

Begriff DirectX? DirectX scheint auf Grund dieser Aussage ein Treiber

oder ähnliches zusein, doch in wirklich verbirgt sich hinter dem Begriff

DirectX folgendes: DirectX wurde von Microsoft als direkte Hardware-

- 5 -


DirectX

Schnittstelle entwickelt. DirectX ist somit eine standardisierte Program-

mierschnittstelle bestehend aus mehreren API1. Eine besondere Stellung

ist dabei den 3D-API zuzuordnen, welches zur Programmierung von 3D-

Anwendungen bzw. 3D-Computergrafiken dient, Beispiele dafür sind

HEIDI, OpenGL und Direct3D. DirectX besteht deshalb auch aus mehren

Bausteinen, um zusammen eine Schnittstelle auf die komplette Hardware

eines PCs bieten zukönnen. Die Bausteine sind DirectDraw, Direct3D,

DirectInput, DirectSound und DirectPlay.

4.1 DirectDraw

DirectDraw stellt über den

HAL

(Hardware Abstraction Layer) einen

direkten Zugriff auf die Grafikkarte zur Verfügung. Sollte dies nicht

möglich sein, weil die Grafikkarte kein DirectDraw unterstützt, wird der

HEL

(Hardware Emulation Layer) verwendet. Hierbei kommt es zu einer

erweiterten Kommunikation mit dem GDI, sowie dem DDI. Der HEL

emuliert das DirectDraw angeforderte Leistungsmerkmal. Dennoch be-

sitzt der HEL im Gegensatz zum GDI einen direkten Zugriff auf die Gra-

fikkarte.

Anwendung

Grafik Device Interface (GDI)

Display Device Interface (DDI)

Hardware Emulation

DirectDraw

Layer (HEL)

Hardware Abstraction Layer

Grafikkarte

Abb. 1:

Einbindung von DirectDraw in der DirectX-Umgebung


4.1.1 Hardware Abstraction Layer

- 6 -


Hardware Abstraction Layer

Der HAL unterstützt alle speziellen Eigenschaften einer Grafikkarte, wie

z.B. ihre 3D-Beschleunigung, ihre MPEG-Beschleunigung usw., dies

wird durch eine grafikkartenspezifische Schnittstelle beschrieben. Diese

Grafikkarten-Treiber werden im Regelfall vom Hersteller zur Verfügung

gestellt und in das Windows Device Management Concept (Gerätemana-

ger) eingebunden. Diese Treiber können in 16- oder 32-Bit-Code vor-

kommen und bereit gestellt werden, unter Windows NT/200 kommen

diese prinzipiell als 32-Bit-Code vor, da diese schon vollkommen mit der

32-Bit Technologie arbeiten, dies ist nicht zu verwechseln mit der Farb-

tiefe der Grafikkarte. Es kann manchmal vorkommen, dass der HAL

nicht zu den Grafikkartentreibern gehört, dann wird er über eine seperate

DLL eingebunden.

Der HAL unterstützt nur Eigenschaften für dir er speziell vom Hersteller

für die Grafikkarte entwickelt wurde. Es kann deshalb vorkommen das

HAL Techniken von DirectDraw nicht unterstützt werden, deshalb kön-

nen diese auch nicht emuliert werden, dies macht sich bei älteren System

beim Einsatz von erweiterten Techniken wie OverlaySurfaces oder

BLTFX bemerkbar.

4.1.2 Hardware Emulation Layer

Es kann aber auch vorkommen, dass der HAL einen Dienst bzw. ein

Merkmal von DirectDraw nicht unterstutzt, jetzt kann DirectDraw jedoch

probieren dieses Merkmal zu emulieren. Diese Emulation wird durch den

HEL beschrieben, dieser präsentiert nun die Leistungsfähigkeit von Di-

rectDraw, so wie es der HAL tun würde. Bei dem HEL handelt es sich

somit um eine Softwarelösung, welche deshalb auch wesentlich langsa-

mer alles die direkte Hardwareunterstützung des HAL operieren kann.

Durch diese Emulationssoftware wird ein hohes potential an Rechenleis-

tung des Rechners verlangt, damit eine flüssige und anschauliche Ausfüh-

rung der von DirectDraw unterstützten Software gewährleistet ist. Ande-

rerseits gibt es keine Grafikkarte, welche alle Leistungsmerkmale von

DirectDraw unterstützt, somit ist der Einsatzt des HEL durchaus legitim.

Beachtet man ausserdem noch, dass die Computersysteme immer schnel-

ler werden, kann man damit rechnen, das viele Leistungen durch den

HEL umgesetzt werden.

- 7 -


Direct3D

4.1 Direct3D

Direct3D ist der Teil von DirectX, der den eigentlichen Weg zur 3D-

Computergrafik öffnet. Es wurde von Microsoft konzipiert um High-

Performance-Grafik umzusetzen. Im Gegensatz zu Glide oder OpenGL

arbeitet das Direct3D-API mit allen modernen Grafikarten zusammen.

Obwohl Direct3D eine leistungsfähige Softwareemulation beinhaltet,

entfaltet es sein volles Leistungspotential erst bei der direkten Nutzung

der Hardware. Doch bis vor kurzen waren die Grafikkarten noch nicht in

der Lage den vollen Leistungsumfang von Direct3D zu unterstützen und

waren so gezwungen auf die Alternativen Glide und OpenGL zurück

zugreifen. Doch der Grafikkartenprozessorhersteller Nvidia schaffte mit

seinem Riva128-Prozessor erstmals die volle Unterstützung von Di-

rect3D zu ermöglichen, doch dieser Prozessor war noch zu langsam und

bald musste ein Nachfolger mit der RivaTnT war erst mal ein schneller

Grafikprozessor geschaffen der eine schnelle Unterstützung zu Direct3D

bieten konnte. Doch dies war noch nicht genug die RivaTnT löste eine

kleine Revolution in der Grafikartenprozessorindustrie aus, Nvidia hatte

alle Patente und kaufte nach und nach alle großen Grafikprozessorherstel-

ler, wie z.B. 3Dfx auf, und entwickelte dann doch die Nachfolgergenera-

tion des TnT-Chipsatz, die GeForce. Durch diese Entwicklung wurden

den Programmierern neue Dimensionen geschaffen, erkonnte auf eine

allgemeine Schnittstelle zugreifen, die von jeder Grafikkarte unterstützt

werden kann und OpenGL und Glide verloren an Bedeutung, jedenfalls

im Windows-Bereich.

Direct3D stellt zwei verschiedene Modes zur Verfügung, der Retained

Mode (RM) und der Immediate Mode (IM). Der RM ist ein High Level

Interface, d.h. er ist vergleichbar mit einer keinen 3D-Engine3, dadurch

werden schon eine Reihe von fortgeschrittenen Techniken bereitgestellt,

d.h. es kann relativ einfach auf sie zu gegriffen werden. Somit kann mit

wenig Quellcode schon anschauliche Ergebnisse erzielt werden. Doch

eine Anwendung die mit RM programmiert wurde ist wesentlich langs-

amer und ist auch sonst in den Effekten und eines dreidimensionalen

Raum nicht so flexibel, des weiteren kommt auch RM nicht ohne Hinder-

grundkenntnisse aus. Irgendwann wird man auch an die Grenzen von RM

gezwungen, was einen zu einer leistungsfähigeren Technik zwingt.

Der Immediate Mode ist ein Low Level Interface. Der Name sagt es ei-

gentlich schon (immediate = direkt), man erhält dem zufolge einen direk-

- 8 -


Direct3D

ten Zugriff auf 3D-Grafik-Pipelines. Sollte eine direkte Verbindung zu

verfügten Hardware felhen, so tritt eine robuste Softwareemulation in

Kraft. IM stellt einfache und offene Methoden zum Initialisieren und

Rendern einer Szene zur Verfügung. Doch um einen solchen kraftvollen

Mode zu nutzen, muss men folgenden Preis in Kauf nehmen: Alle Ele-

mente einer 3D-Szene müssen explizit benannt werden und man benötigt

genaues Kenntnisse über die verfügbare Hardware. Ebenfalls sollte man

mit Matrizenmanipulation vertraut sein, da die 3D-Objekte durch diese

berechnet werden. Hierbei werden Form, Lage, Perspektive usw. defi-

niert.

In Tabelle 1 werden beide Wege nun gegenübergestellt.

Mode

Pro

Contra

Immediate Mode - flexibler für Spezial- - schwieriger zu prog-

effekte

rammieren

- schneller

- schwieriger zu verwalten

Retrained Mode - einfacher zu program- - langsamer

mieren

- unflexibel

- einfacher zulernen

- einfacher zu verwalten

Tabelle 1:

Vergleich beider Mode für den Prgramierer

Zuletzt ist noch die Einbindung von Direct3D im Windows zubetrachten.

Direct3D ähnelt stark dem GDI, es enthält eine viel Zahl von Grafikme-

thoden und zeichnet im Gerätekontext. Für die Ausgabe sind wieder der

HAL und HEL zuständig.. Man muss sich Direct3D somit als ein GDI

vorstellen, welches auf einen Grafikprozessor konzipiert ist.

Win32-Anwendung

GDI

Direct3D

Weiter 3D APIs

Windows DDI

Hardware Abstraction

Layer

Hardware Emulation

Layer

Grafikkarte

Abb.2: Einbindung von Direct3D in die Systemumgebung

- 9 -


OpenGL

5 OpenGL

OpenGL ist die Abkürzung für "Open Graphics Language". Es handelt

sich bei OpenGL um eine hardwaretunabhängige (Programmier-) Schnitt-

stelle zum Grafiksubsystem eines Rechners zur Darstellung von (beweg-

ten) dreidimensionalen Objekten, OpenGL basiert auf Iris GL von Silicon

Graphics (SGI) und wurde von Microsoft lizenziert. Die Lauffähigkeit

von OpenGL auf einer bestimmten Plattform wird durch eine entspre-

chende Implementierung bzw. Hardwaretreiber erreicht, der aber nicht

nur unter Windows zufinden ist, deshalb ist OpenGL im Gegensatz zu

DirectDraw und Direct3D nicht vom Betriebsystem abhängig, sondern

kann auch durch eine Neukompilierung des Quelltextes unter einen ande-

ren Betriebsystem, wie z.B. Unix oder BeOS, in Betrieb genommen wer-

den.

Das Oberflächenmanagement wird von der zugrundeliegenden OS-

Plattform geleistet. OpenGL schreibt direkt in den Framebuffer2, deren

Inhalte dann entsprechend in die Oberfläche über Fenster eingefügt wer-

den. Der Framebuffer ist also Voraussetzung für die Verwendung von

OpenGL, einige Operationen von OpenGL beruhen sogar auf Framenbuf-

fer-Manipulationen.

OpenGL ist client-/serverfähig, so dass OpenGL in einem Netzwerk lauf-

fähig ist. OpenGL benutzt primitive Formen (Punkte, Linien, etc.), um

durch deren Assemblierung komplexere Objekte zu realisieren. Diese

Objekte bzw. die Gesamtszene erhalten erhält dann Attribute durch be-

stimmte Operationen (Textur, Beleuchtung, etc.). Allerdings existieren

Erweiterungen zu OpenGL, die ein mehr intuitives Design von Szenen

zulassen.

Darüber hinaus existiert die Möglichkeit, Operationen zu definieren, die

Interaktivität erlauben. Durch diese Echtzeitkomponente entsteht der

Anspruch an OpenGL, eine gewisse Performance, d.h. einen hohen An-

spruch an Rechenleistung, zu verlangen. In diesem Zusammenhang er-

langten die Hardware-Beschleuniger ihre Bedeutung. OpenGL ist ein

Echtzeitsystem im Gegensatz zu z.B. Raytracing-Applikationen4.

OpenGL bietet einen etwa 120 Kommandos umfassende API an, über den

die Leistungsmerkmale von OpenGL zugänglich sind.

6 Glide

- 10 -


Glide

Glide ist die proprietäre API von 3dfx zur optimalen Ausnutzung der

Voodoo-Karten.. Wie auch OpenGL und DirectX ist Glide eine Schnitt-

stelle, welche die Grafikkarte die Grafikkarte ausnutzt. Doch die Zusatz-

funktionen der APIs setzen eine entsprechende Hardware-Unterstützung

voraus. Ist diese nicht vorhanden, wird die entsprechende Funktionalität

in Software emuliert, was zu starken Performance-Einbußen führt.

Am 06.12.1999 mache der 3Dfx-GEO Alex Leupp allen Software-

programmieren ein Nicklausgeschenk ergab den Glide-API als O-

pen Source frei, somit kann Glide jetzt auch auf anderen Plattfor-

men benutzt werden.

"Glide wurde ursprünglich als Antwort auf das Bedürfnis der Industrie
nach einen API entwickelt, das es Entwicklern erlaubt, von den Möglich-
keiten der 3D-Beschleuniger-Chips zu profitieren"

, so Al Reyes, Director

Strategic Marketing bei 3dfx Interactive.

"Heute haben wir die führende
Rolle im Bereich der 3D-Grafik unter Linux und der Open-Source-
Community übernommen, indem wir Programmierern und Entwicklern
die Tools in die Hand geben, damit das API mit der rasanten Entwick-
lung der 3D-Chips mithalten kann."
"3dfx hat mit der Freigabe von Glide eine große Bedeutung für die Li-
nux-Community"

, kommentiert Linux-Erfinder Linus Torvalds.

Durch diesen Schritt wurde Glide erst mal auch anderen Grafikarten zu-

gänglich.

7 Zusammenfassung und Ausblicke

Das Microsoft eine eindeutige Monopolstellung in der Computerindustrie

kann man selbst im Bereich der 3D-API hat, kann man sehr gut sehen,

Microsoft hat den am meist verbreiteten 3D-API im Windows-Bereich

geschaffen und hat die Softwareprogrammierer und die Hardwar-

eindustrie auf seiner Seite, wie man am Beispiel Nvidia sehen kann, denn

die Nvidia-Grafikprozessoren unterstützen seit der Riva128-Generation

ausnahmslos den DirectX-API. Auch die neue Volume Texture Compres-

sion (VTC) hat Microsoft sich sichern lassen, bei der 3D-Texturen nicht

mehr nur einfach Bitmap-Grafiken enthalten, die auf ein Objekt gelegt

werden, sondern echte 3D-Strukturen. Damit wirken 3D-Objekte nicht

mehr, als wären sie mit platten Bildern belegt, sondern haben Furchen,

Kratzer, Nieten oder sonstige unebene Oberflächen, wie man es aus der

Realität gewohnt ist. Diese zusätzlichen 3D-Informationen sollen - ent-

sprechend leistungsfähige 3D-Grafikprozessoren vorausgesetzt - Echt-

- 11 -


Zusammenfassung/Ausblicke

zeit-3D-Grafik in "Kinoqualität" ermöglichen, sorgen jedoch für einen

erhöhten Speicherplatzbedarf. VTC ist seid der achten Version von Di-

rectX Standard.

Doch seid Anfang diesen Jahres ist es Linux-Programmierern gelungen

einen Linux-Port zu entwickeln, dieser ist in der aktuellen Version des

von der TransGaming.com entwickelten Wine vorhanden. Bei Wine han-

delt es sich um ein Open-Source-Projekt, das Microsofts Windows-APIs

unter Linux verfügbar machen will. So lassen sich normale Windows-

Applikationen auch unter Linux verwenden. Zwar ist Wine noch ein

ständiges Alpha-Release, dennoch lassen sich mit den aktuellen Versio-

nen viele Applikationen unter Linux fahren, einschließlich Microsoft

Office und dem Internet Explorer. Da Wine keine Windows-Plattform ist

oder wie VMware einen virtuellen PC emuliert, sondern lediglich die

benötigte Umgebung für die Windows-Programme zur Verfügung stellt,

laufen die Applikationen nicht unbedingt langsamer als unter Windows

und lassen sich komplett in den Linux-Desktop integrieren.

Wie man durch solche Beispiel sehen kann ist die DirectX-Technologie

und das damit engverbundene Direct3D eine sehr große Bedeutung für

die Softwareindustrie hat. Und das es sehr wichtig ist, wenn man eine

solche Art der Programmierung bevorzugt oder programmieren will, de-

ren Grundlagen zu kennen, auch wenn es Tools wie DarkBasic gibt.

DarkBasic

ist eine leicht zu erlernende Programmiersprache,

wel-

che einen Einstieg in die Welt der 3D-Spieleprogrammierung bietet.

Bereits jetzt gibt es eine große Community von Nutzern, welche die Vor-

züge dieser leicht zu erlernenden Programmiersprache und eines auch für

Anfänger einfach zu bedienenden Interfaces zu schätzen wissen.

- 12 -


Anhang

Anhang

1

API ist die Abkürzung für Application Programming Interface (dt.

Anwendungsprogrammierschnittstelle). Daher spricht man von ei-

ner genormten Programmierschnittstelle, über die der Programmie-

rer einfachen Zugriff auf Funktionen des Betriebsystems bzw. der

Benutzeroberfläche hat. Durch API wird die Programmierung einer

Anwendung stark vereinfacht.

2

Der Framebuffer ist Teil des Grafikspeichers, in dem bereits das

Bild aufgebaut wird, das als nächstes auf dem Bildschirm erscheint.

Zusätzlich werden Transparenteffekte im Framebuffer berechnet.

3

3D-Engine ist eine dreidimensionale Welt, auf die man belieb

zugreifen kann. Firmen, wie ID Software oder Eidos, benutzten ih-

re eigenen 3D-Engine um sich das programmieren der Anwendun-

gen zu erleichtern. Es ist somit vergleichbar mit einen API, nur das

es sich nicht um einen Direktzugriff auf ein System bzw. auf das

Betriebsystem handelt, sondern auf z.B. 3D-Modelle oder 3D-

Polygone usw. .

4

Raytracing ist die englische Bezeichnung für "Lichtstrahlverfol-

gung". Raytracing ist ein Verfahren zur perfekten, photorealisti-

schen Darstellung dreidimensionaler Objekte mit Hilfe entspre-

chender Programme wie 3D STUDIO MAX

oder FRESCOmovie.

Bei dieser Methode werden Schatten, Lichtbrechungen, Spiegelun-

gen und Reflexion berücksichtigt, so dass ein sehr realistischer

Eindruck entsteht.

- 13 -


Quellen

Quellen

Kettermann, Uwe; Schmelzer, Christian: DirectX mitVisual Basic pro-

grammieren. 2000

Monadjemi, Peter: Visual Basic 6. 2000

Weblexikon

http://lexikon.s-online.at/data/home.htm, Stichwort "DirectX, OpenGL"

DirectX

http://www-md.e-technik.uni-rostock.de/

Glide

http://www.golem.de/

OpenGl

http://www2.inf.fh-rhein-sieg.de/

- 14 -


Kommentare

Dieser Text kann über folgende URL aufgerufen und zitiert werden:

http://www.grin.com/e-book/102860/