Graphics Reference
In-Depth Information
' Startwerte links und oben auf Projektionsfläche
XvAnf = -0.5
*
Horz
YvAnf = -0.5
*
Vert
Dazwischen liegen
HorzPix-1
-Abstände in X
V
- und
VertPix-1
-Abstände in Y
V
-
Richtung; diese Abstände sind:
delX = Horz / (HorzPix - 1)
' Pixel-Abstände
delY = Vert / (VertPix - 1)
'
' Schleifen über alle Pixel
xv = XvAnf
Forh=1ToHorzPix
yv = YvAnf
Forv=1ToVertPix
hier RayTracing-Kern, liefert Farbe am Punkt (xv,yv)
yv += delY
Next v
xv += delX
Next h
Mit dieser Einrichtung der virtuellen Projektionsfläche lässt sich eine Zentralpro-
jektion ohne weitere Vorarbeiten realisieren. Der RayTracing-Kern sieht ähnlich
aus wie der nachfolgend beschriebene.
Mit den Vereinfachungen gemäß Abschn.
8.6
und
9.6.5.2
kann man die Zentral-
projektion vom RayTracing-Prozess trennen. Es sind zwar einige Vorarbeiten nötig,
aber die aufgewandte Rechenzeit spart man im Programmkern.
Im ersten Schritt wird die Szene in die Projektionsrichtung
{v}
transformiert.
Dies betrifft ohnehin nur die Knotenkoordinaten und verbraucht wenig Rechenzeit.
Ab Abschn.
8.3.1
sind die nötigen Erläuterungen und die entsprechende Transfor-
mationsmatrix für
{v}
gegeben:
Szene drehen in Projektionsrichtung, liefert Koordinaten im Viewsystem:
Œ
T
GV
Œ
P
G
D Œ
P
V
[P
V
]
vormultiplizieren mit der Projektionsmatrix
[Z
P
]
, darin der Betrachtungs-
abstand
1=
d für die Z
V
-Richtung, führt zur Zentralprojektion:
Œ
Z
P
Œ
P
V
D Œ
P
ZP