#1 29.03.2011 14:03:16

TonyMontana
Member
Registriert: 19.12.2007
Beiträge: 74

Transformationsmatrizen

Name: Transformationsmatrizen

Beschreibung: Nachbilden von Teilen der FFP (Fixed-Function Pipeline). Berechnung von Gerätekoordinaten aus lokalen Objektkoordinaten unter Verwendung von verschiedenen Transformationsmatrizen: Geometrische (Skalierung, Rotation, Translation), Kamera, Projektion (Parallelprojektion oder Perspektivprojektion), Viewport. Clipping von Vertices (ohne neue Vertices hinzuzufügen).

Bilder sind im Anhang.

Beitrag geändert von TonyMontana (29.03.2011 19:01:09)


Attachments:
Attachment Icon Transformationsmatrizen_PerspektivProjektion.png, Größe: 26,361 bytes, Downloads: 479
Attachment Icon Transformationsmatrizen_OrthogonalProjektion.png, Größe: 46,588 bytes, Downloads: 494

Offline

 

#2 30.03.2011 08:41:08

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Re: Transformationsmatrizen

Inwiefern hast du denn das Clipping nachgebildet, dass wird doch eigentlich von der Hardware automatisch gemacht? Oder versuchst du einen Software-Renderer zu schreiben?

Was hast du für die dicken Linien verwendet? Ineinandergesteckte Vierecke oder Vierecke die der Kamera ausgerichtet sind oder was noch Anderes?


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

#3 30.03.2011 22:07:35

TonyMontana
Member
Registriert: 19.12.2007
Beiträge: 74

Re: Transformationsmatrizen

Ein kompletter Software-Renderer ist es nicht, es geht jedoch in diese Richtung. Die Koordinaten eines Würfels sind vorgegeben. Der Würfel wird dann 125 mal gerendert, wobei der Würfel jedes mal verschoben wird, sodass diese nicht überlappen und zusammen wieder einen "großen" Würfel Bilden.

Wie die Punkte des Würfels verbunden werden müssen, ist ebenfalls separat abgespeichert. Es ist eine Indizierung notwendig, da ich Punktprimitiven verwende, was das Ganze vereinfacht.

Clipping (also das weglassen von nicht sichtbaren Vertices aufgrund einer bestimmten Perspektive) überprüfe ich zwar, jedoch ist es natürlich so, dass nicht sichtbare Vertices sowieso nicht sichtbar wären. Die Überprüfung verhindert also nur den Aufruf der DrawPoint Methode.

Die Linien dienen der besseren Visualisierung und werden nur gezeichnet, falls keiner der Endpunkte geclippt wurde.

Ich habe noch ein weiteres Bild angefügt auf denen man das Ergebnis der beschriebenen Clippingtests sehen kann. Natürlich gehört zum richtigen Clipping das Hinzufügen von zusätzlichen Vertices, dass habe ich allerdings weggelassen.


Attachments:
Attachment Icon Transformationsmatrizen_PerspektivProjektion2.png, Größe: 75,509 bytes, Downloads: 474

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson