Computergrafik

Rechenaufwand

Zusammengesetzte Transformationen | | Homogene Matrizen


Zur Einordnung des Rechenaufwands eine Abschätzung:

Die Multiplikation einer 4×4 Matrix mit einem Vektor beinhaltet insgesamt 12 Additionen und 16 Multiplikationen (ohne die Division der Homogenisierung):

$ \left( \begin{array}{c c c c} a & b & c & d \\ e & f & g & h \\ i & j & k & l \\ m & n & o & p \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \\ w \end{array} \right) = \left( \begin{array}{c c c c} a \cdot x + b \cdot y + c \cdot z + d \cdot w \\ e \cdot x + f \cdot y + g \cdot z + h \cdot w \\ i \cdot x + j \cdot y + k \cdot z + l \cdot w \\ m \cdot x + n \cdot y + o \cdot z + p \cdot w \end{array} \right) $

Pro Vertex also 12+, 16$\cdot$28 Rechenoperationen (Floating-point operations - FLOPS)

Unsere virtuelle Szene kann nun mehrere x Millionen von Vertices enthalten, die alle mithilfe einer 4×4 Matrix transformiert werden. Zusätzlich sollen pro Sekunde mehrere Bilder berechnet (gerendert) werden, um einen flüssigen Bewegungseindruck zu erhalten, z.B.: 60 fps:

FLOPS = $x * 1000.0000 * 60 * 28$ FLOPS = $x * 1.6$ GFLOPS

Der Rechenaufwand für diese einfache Transformation kann also schon leicht mehrere GFLOPS betragen. Zum Vergleich: Eine normale FPU schafft etwa 2GFLOPS. Eine GPU mehrere 100 GFLOPS bis TFLOPS.

Erkenntnis:

Eine intelligente Einsparung von Rechenoperationen bei der Modellierung und die Verwendung von dedizierter Graphikhardware lohnt sich alleine schon wegen der Modellierungstransformation.


Zusammengesetzte Transformationen | | Homogene Matrizen

Options: