next up previous contents
Next: Scanline Up: Colors Previous: Colors

 

colors

colors

tabular3417

Die Funktion colors berechnet aus der Lage und Grundfarbe  der transformierten, sichtbaren Polygone die Bildschirmfarben  unter Berücksichtigung von diffuser Relexion, Glanz und indirekter Beleuchtung. Die Grundlagen dazu sind im Abschnitt 1.4 auf Seite gif beschrieben.

Um einen Überlauf der Intensität zu verhindern, muss darauf geachtet werden, dass die Summe aller prozentualen Lichtintensitätsanteile kleiner als eins bleibt.
Zur Farbberechnung werden nun folgende Nebenbedingungen gesetzt:

Dies führt dann zu folgenden Formeln der Farbberechnung auf dem Bildschirm für rot, grün und blau (5.5 bis 5.7):

    eqnarray3479

LN und HnN liegen zwischen 0.0 und 1.0, Polygon- und Ganzfarbe können maximale Intensitätsfarben weiss (R=255, G=255, B=255) haben. Somit ist gezeigt, dass die Intensität der Monitorfarben nicht überschritten werden kann ( tex2html_wrap_inline10871 , tex2html_wrap_inline10873 , tex2html_wrap_inline10875 ).

Ein weiteres Problem stellt der Referenzpunkt für den Glanz dar. Da der Glanz abhängig vom Sichtrichtungsvektor tex2html_wrap_inline10877 ist, müsste man eigentlich die Farbe für jeden Punkt des Polygons neu berechnen. Nimmt man aber an, das Polygon sei nicht all zu gross, kann ein guter Kompromiss eingegangen werden, indem man den Schwerpunkt als Referenzpunkt wählt; somit ist tex2html_wrap_inline10879 für das ganze Polygon ein konstanter Vektor.

Da die Berechnung von HnN relativ viel Zeit kostet, wird zuerst mit NH > H_TEST getestet, ob ein Glanz vorhanden ist (highlight test ).
Die Konstante H_TEST berechnet sich folgendermassen (5.8):

tabular3514

  eqnarray3518

Mit der Berechnung von SN kann entschieden werden, welche Seite der Polygone sichtbar ist (Vor- oder Rückseite). Da für geschlossene Figuren die Rückseite der Polygone die Innenseite bilden, welche immer unsichtbar bleibt, werden solche Polygone als BACK_TO_SCREEN markiert und müssen nicht weiter behandelt werden. Für offene Figuren wird die Polygone in der aktuellen Implementation Schwarz gefärbt.

27

  figure3525
Abbildung 5.15: Pseudocode der Funktion  

   


next up previous contents
Next: Scanline Up: Colors Previous: Colors

Martin Frey
Tue Jun 17 13:29:20 MET DST 1997