Top Banner
1
26

˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

Sep 22, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

1

�������������� ������������ ����� ������

�������� ������������������ � � �������������

������������������������

��

���� ����

Page 2: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

2

!������ ��������������� ��

� "� ����� �

� #���������$�� �����

� ����������� ������� ����������������������� �������������������������������� ������������������� ������������ ������������� ��

� %��������������$&

� ������� ����� ������%��������

� '������ ����� �

Programm RadiosGL:hierarchische Radiostiy-Verfahren vonJason Rohrer 2000, Studienarbeit an Cornell Uni Ithaca/NY

Page 3: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

3

()�"� ����� �

� *��������

���������� ��!�������������"������������������� #�$ %�����������������&���� ��������������'� �(��������

������)���������

*������������������ ����� ��������+��",������������������������� ���-�����������.%��� ���

������������� #������/������ ���* ����

0���������������������� ������������(���������������'����������������������������1�������� #������������������������%��������������*��� ���

Motivation:

- trotz zahlreicher Optimierungen nicht ausreichend

- neue Generation der Grafikhardware:programmierbare Grafikprozessoren (Vertex- / Pixel-Shader)

Page 4: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

4

()�"� ����� �

� '����� ��+����������+�����

2����������������������������-�������������������3������������������������� �����4��� ������������������������� �����������������

�� ���� ��������$ �������5 ����6�����������

2��������������$ 7����5)�������� �����5"2�������

���������������'��������������'���������$

89 /����������������������:9 ����������������5.9 ��������2��������������

Page 5: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

5

,)�#���������$�� �����

Page 6: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

6

,)(������������������

� (-./��� ������0�#���� �0�$��� ���� � ��1����������������-�������������� ������ #���������� ����� ������������7��� �!����

� 1������ ����������� ����1������ ��������� 2� +�����������1������,

���������5������������1������ ��������� 2 +��������������1������,

����������� ����������������������������������5����

� ����2 �������������������� ��������7��� �!�������������#���������� ����� ������$

� � ����������������'� ��������������)�!������������� ����������*��������+ ���������;����������*�������� ���,� �����)�!����������5������������� ���������<���������� � ��������������������������������������������������

Radiosity � basiert auf Gleichgewicht zw. zugeführter Strahlungsenergie von Lichtquellen undabsorbierter Strahlungsenergie durch alle Oberflächen

� Verfahren berechnet spezifische Beleuchtungsstärke jeder Fläche� Simulation der Auswirkungen der Lichtemission und –reflexion an diffusen Oberflächen� Energieerhaltung in einer geschlossenen Umgebung� gesamte von Fläche abgegebene Energie = Strahlung / Radiosity

Strahlungsenergiebilanz � es werden weder Energie zugeführt noch abgeführt � abgeschlossene Umgebung

es besteht ein Gleichgewicht zw. einfallender Lichtenergie und absorbierter/reflektierter

Lambertsche Strahler/Reflektoren � ideal diffuse Reflexion/Strahlung = Lichtintensität unabhängig vom Betrachterstandpunkt

lokale Verfahren � Flat- / Gouraud- (interpoliert Intensität) / Phong-Shading (interpoliert Normale)globale Verfahren � Raytracing (Strahlverfolgung) / Radiosity (Energiegleichgwicht)

Page 7: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

7

i

n

jjijii EFBpB =− �

=1

= ���������

� -�$ �������������5��������+*������,���������� ��+)�!���,

= ����������$���� �

�������������������� ���������������������

������ ���� ��!���� ������ ������������)��� �������$

������������������������� ����>��������$

*�������������"� ������$��

+&� ������$���� ��������,

i

jn

jjijiii A

AFBpEB �

=

+=1

����������+ ����

-��<-? ��������������)�!�����������?*� *������������)�!������� �� ��&������� � ���������)�!�����)?� )��� �����$�/��������*���������������)�!����?��� ���#�������'� <'? ��(��� ����)�!���������������?� '� ��������)�!������������� ���

jijiji FAFA =

�=

+=n

jjijiii FBpEB

1

Radiosity-Gleichung: = FINITE-ELMENTE-Methode� Einteilung ein einfache geometrische Objekte (Polygone)

Radiosity eines Patch i besteht aus (Strahlung vom Patch i, die er sendet): � Summe abgestrahltes und reflektiertes Licht

der Eigenemission Eidem Reflexionskoeffizenten pi mitgewichteten Anteil der verschiedenen Bj mal den zugehörigen FF

reflektierte Licht:Summe des einfallenden Lichts multipliziert mit Reflexionsvermögen

einfallendes Licht:Summe des Lichts, das alle Flächen der Szene verläßt, multipliziert mitLichtanteil der eine Flächeneinheit des empfangenen Flächenelementserreicht (Bj*Fji*Aj)

diskrete Flächenelemente:endliche Größestrahlt über gesamte Fläche gleichmäßig Licht ab und reflektiert Licht� opake, diffuse Lambertsche Strahler und Reflektoren

Page 8: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

8

3����� ����

= 3�4$ '����������*�������+5����,>���������'? �������������������������'� �������

= "��� ����� 2

)�����������!�����������������������+5����� ��������������� ���,

�����!�������������7��� �!������������� ���

���!���������'�����������7������������ ������*����������������������������

��������������

= ��������� ���������������3�5� �� ������

ijij

A A

ji

iij dAdAH

rAF

i j

� �=2

coscos1

πθθ

�'�<�'? )�!�������������������)�!�����������?� '�����������)�!����� ���������@�<@? A������ �9�)�!�������������������������������� �����������)�!�����? �������>�������������������������

Formfaktorrepräsentiert Energiebeziehung zwischen den Patches� also Energieaustausch zw. 2 Flächen in geometrischer Hinsicht

Anteil der ankommenden Energie hängt vom � Winkel zwischen den Flächennormalen (relative Ausrichtung)

� Abstand der Flächen zueinander (Entfernung)� Größe der Fläche von Aj ab� und den Verdeckungen

Formfaktor-Gleichungals Flächendurchschnitt definiert (Patch-zu-Patch)

� Betrachterstandpunkt unabhängig, da nur Geometrie-Abhängig� Neuberechnung der FF nur notwendig bei Neu-Anordnung der Szene� Sichtbarkeitsbestimmung notwendig

durch Radiosity-Voraussetzung (Energieerhaltung in geschlossener Umgebung)besitzen FF bestimmte Eigenschaften:

� Anzahl FF quadratisch zur Anzahl der Patches� Summe aller Fij einer Fläche i <= 1� für jede Fläche i gilt : Fii = 0 , d.h. transportiert keine Energie auf sich selbst� FF der Flächen i und j sind nicht kommutativ, d.h. Fij ungleich Fji� reziproke Beziehung zwischen Flächen i und j, d.h. Ai Fij = Aj Fji

Page 9: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

9

3����� ����

= 1��� � �������� 2

Analytische Methoden :- für einfache Elemente (Element-Element) + differentielle Flächen- Voraussetzung: vollständig Sichtbar

� diff. Fläche auf Kreis� diff. Fläche auf Polygon� FF zwischen parallelen Rechtecken� FF zwischen senkrechten Rechtecken

Numerische Methoden :- Gauß-Verfahren

� FF-Berechnung (2-fach Integral), Stützpunkte sind:Punkt-Paare (bei Fläche-Fläche-Integral) oderPunkt-Vektor-Paar (bei Fläche-Raum-Integrale)

- Hemisphäre-Sampling� aufwendige Sichtbarkeitsbestimmung� FF von Patch i zu allen anderen Patches wird benötigt

- einmal Sichtbarkeitsberechnung durchführen- FF = Aufsummierung der differentiellen FF

* NUSSELT-Analogie : FF von dAi auf Patch Aj = proportional zur Fläche der Doppelprojektionauf die Kreisscheibe

� Fläche auf Einheits-Hemisphäre = Raumwinkel ( dw = cos_wj / r2 )� Projektion auf Grundfläche = ( cos_wi/pi )� somit : ( cos_wi * cos_wj ) / ( pi * r2 )

* HEMICUBE � Kugel durch Würfel ersetzen, Sichtbarkeit über z-Buffer* SINGLE-PLANE � von Sillons: statt Würfel ein Fläche* Monte-Carlo-Raytracing: Umkehrung der Nusselt-Analogie

- Area-Sampling* Monte-Carlo-Integration � Punkt auf Aj bestimmen und FF-Teile aufsummieren* Uniforme-Flächenunterteilung � Einteilung in Teilflächen und dann approximieren* Hierarchische-Unterteilung � Fläche wird adaptiv unterteilt, d.h wenn Änderung groß ist

( bei hohen Gradienten wird öfter unterteilt )

Page 10: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

10

3����� ���� �6 ��������+ 5��� �7

= ����������*�����2

8�������+ ������$��3�4 9�3�+�+4

)��� ������)�? ���������������'�������������?� �������)�!����'? ��

��������� �!����������*���������������������������������� �'�

Nusselt-Analogie (geometrische Intepretation des FF) :FF als Verhältnis der Basisfläche einer Halbkugel zur Orthogonalprojektion der auf

die Halbkugel projizierten Fläche( 1. Projektion die aus F_i sichtbaren Teile von F_j auf Halbkugel mit rad = 1 um dFi

2. Projektion dieser orthogonal auf kreisförmige Grundfläche der Halbkugel3. Division durch die Kreisfläche )

� Projektion auf Halbkugel entspricht Raumwinkel dw= cos_j / r²� Projektion auf Grundfläche der Halbkugel = multiplikation mit cos_i� Division durch Flächeninhalt des Einheitskreises = pi im Nenner

Fij wird durch FdAiAj approximiertdAi liegt in der Mitte der Fläche i

Problem bei der Energieberechnung:- abgestrahlte Energie ist richtungsabhängig

d.h. es muß bekannt sein, welcher Anteil der Kugeloberfläche dem entsprechenden Flächenstückenzugeordnet ist

Page 11: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

11

3����� ���� �6 ��������+ 5��� �7

= ��������*����� +�������������9���9�BCD�,

���?��������� �*������������#� ��

�����#� ������������������+����������������E�������� ,

� ?����E������� �����������9������������������������

� ��?�����E������&������������%����)��� ������+�:3�� ,

� 3�+�+4 9�;�:3��

� :3� #��E�������$���

rp

1cos =θ

r

z pi =θcos

122 ++= pp zyr

222 )1( ++∆

=∆pp

pp

zy

AzF

π

rp

1cos =θ

ri

1cos =θ

122 ++= pp yxr

222 )1( ++∆=∆

pp

pyx

AF

π

Ar

F pip ∆=∆

2

coscos

πθθ

��������#��2 ������������2

Hemicube-Methode:zur numerischen Berechnung wird Halbkugel durch Halbwürfel mit :

Zentrum im UrsprungNormalvektor in z-Achse ersetztOberseite des Würfels parallel zur Fläche

Formfaktoren werden in einer geschlossenen Umgebung approximiert

Rasterung � Pixel-Aufteilung und jedem Patch wird ein Pixel zugeordnet

Delta-Formfaktor � Beschreibt den Beitrag zu dem gesamten Formfaktor

Für eine Fläche Fi gilt � Summe aller Fij = 1

Formfaktor Fij wird approximiert durch Aufsummierung der einzelnen Delta-FF� FdAiAj � �Delta-FF

Qualität der Approximation abhängig von der Hemicube-Auflösung (Rasterung)

wegen der Symmetrie des Würfels werden nur:� 1/8 der Oberseite� und ¼ einer einzigen Halbseite der Delta-FF berechnet

Page 12: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

12

&<�� �����$���� ���������

= ����������$���� �

= *����� 2

� ��������5(����$ ���F*������������� ������+�'� �����7+��G ,�, �� �����������������������(���������������)"551'/�2H1������ �� ��������

� ������������ �����$

6������<����F�������$ 5(����������E�������������������� ������������������������ ����#�������������� �������"��������+$����� ��*�����,

�������������� ������� +��������,$ ��������F�������*���������������� �������"��������+����� ��*�����, �������������-����������� ���(�������E��������(������� ���������������

���

���

=���

���

���

���

=−

−−−

−−−

−−−

�=

nE

E

E

nB

B

B

nnF

np

nF

np

nF

np

nFpFpFp

nFpFpFp

i

n

jjijii EFBpB

.....

..................

2

1

2

1

121

222221

211

111211111

1

Durch Lösen des Gleichungssystems werden � Energieverteilung der Flächen berechnet, d.h. die spezifische Ausstrahlung der einzelnen Patches in der Szene

lineares Gleichungssystem: K*B = E mit Koeffizientenmatrix K = 1-pF

Eigenschaften:- abhängig von K- diagonaldominant: � | kij | < | kii | mit i � j- regulär: es existiert eindeutige Lösung

FULL-MATRIX-Methode = zuerst alle FF berechnen (= n²), dann GS vollständig lösen und dann die Werte dargestellt �Speicheraufwendig

GATHERING-Methode =Radiosity von Patch i wird durch einsammeln der übrigen Patches j in der Umgebung bestimmt

SHOOTING-Methode =jeweils energiereichste Patch ist Sender und verteilt seine Energie an die Empfänger in die Umgebung

Page 13: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

13

&<�� �����$���� ���������

= %��������������� ��� ��������� +������CC, �����������5(�������� �����

��������� ����?����������������������������������� +�������������,�������������

*�� !�����+��������,���������

����������?������������ )��� �����������������

�� ������������������� �������� �>��������� ��������������*�������������������������

���� �������������

��7��*��2*I�*)20*1*0/I)J�I*20I��77/20�I�'/��K <<��/'�/202/2'52�2*�"0�

∆-��L�*� <<�%� ���� � ��������������� ��������������-��+���������,���������� �-��L�*� <<������������������� ��������� �

<<��'"�/���5*2)*�������������������������

���������������������������� ��������&�����������������*�������+�∆-�'� ,���������)��� ������)�? #�������� ��>� 9-9�������������������������� #��?�������������������� ?

∆����L��? M�+�∆-��M)�? ,�M�+'? <�'�,� <<�������������������� �∆-? L�∆-? ;�∆��� <<�%� ���� ����(���-? L�-? ;�∆��� <<�������������������� ?����(���

��� ��∆-��L�N <<�����������#�������F ��������� ��������������O�

Progressive Refinement (Cohen 1988) � Variante des Southwells-Verfahren

ZIEL: nach jeder Iteration Rückschluß über gesamte Beleuchtung und in jeder Iteration werden nur n_FF berechnet

in einer Iteration wird eine Zeile der Matrix gelöst

1. Patch i mit größter zu verteilenden Energie bestimmen ( = Shooting-Patch), anfangs Lichtquellen (dBi*Ai)

2. für Patch i � alle Fij zu allen sichtbaren Patches j (= Shooting = Patches auf die die Energie verteilt wird) bestimmen

3. noch vorhandene (unverteilte) Energie dBi berechnen und gemäß FF zu den Energien der anderen Patches j addieren

4. gehe zu schritt (2), solange bis Patch i keine Energie zur Verteilung mehr hat

Nachteil: da jeweils das Shooting-Patch mit der größten Energie seine Radiosity verteilt � kann ein best. Patch mehrmals als Sender vorkommen

- d.h. entsprechend nochmalige Berechnung der n-Formfaktoren- d.h. es erfordert mehr als n-Iterationen bis jedes Patch mind. ein mal seine Radiosity verteilt- d.h. mehr als n-Iterationen bis Energiegleichgewicht erreicht wird und GS konvergiert

� somit kann u.U. die Lösung länger dauern als bei der FULL-Matrix-Methode

Verfahren arbeitet mit festgelegter Patch-Auflösung� Erweiterung des Verfahrens durch ein Refine-Kriterium

- Grad der benötigten Patch-Unterteilung wird in der Algorithmus-Ausführung ermittelt und die Szene

dem entsprechend unterteilt

- durch die Annahme: „Radiosity auf allen Patches ist konstant“ (constant radiosity assumption) � Unterteilung nur dann, wenn diese nicht mehr hinreichend erfüllt ist

- Patch-Unterteilung erfordert Neuberechnung aller vorhergegangenen Iterationen (da sich auch die Eigenschaften dieses Patches sich geändert haben)

� hierarchische Radiosity integriert diese Erweiterung

Page 14: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

14

��������� ��������������������

= � ���������� ������� ������ �����������=����

���������A��� �������������)�!���������������*��������������������+���������9��9�BCD�,�$��

#��������������*�������������$

#������������������������*�������������$

)(41

4321 BBBBBe +++=

ea

a

BBB

BB

−==

1

1

2eb

cab

BBBB

BBBBB

−+=

+=+=

21

21 )(21)(2

1

������� #��-� <�-� <�-� ������� #��-� <�- <�-�

)(21

1 ea BBB +=

������� #��-:�<�-.�<�-P

Berechnung der Vertex-Radiosities von den Patch-Radi osities

Aus der Radiosity der Flächen werden die Strahlung für die Eckpunkte interpoliert� durch Mittelung der Radiosities der an den Eckpunkten angrenzenden Flächen

Radiosity der inneren Eckpunkte � ist Durchschnitt der Radiosities der an die Eckpunkte angrenzenden Patches

Radiosity der am Rand liegenden Eckpunkte � WICHTIG: nur angrenzende Patches berücksichtigen

Bc = B2 = 2*B2-Be | Bi = B4 = 2*B4-Be | Bg = B3 = 2*B3-BeBd = ½(Ba-Bg)= ½ (B1+B3) | Bf = ½ (Bc+Bi) = ½ (B2+B4) | Bh = ½ (Bg+Bi) = ½ (B3+B4)B2= ½ (Bc+Be) | B3 = ½ (Bg+Be) | B4 = ½ (Bi+Be)

Page 15: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

15

����������+���������

"����������������������

)��� �����������������

������������������(���

��������������

%������

Q��������)����<-����������

Q��������-���������<A�����

Q�����������������

1. Unterteilung der Szene in endliche Anzahl diskreter Flächenelemente2. Formfaktoren berechnen3. Gleichungssystem lösen4. Berechnung der Eckpunkt-Farben5. direkte Darstellung mit Interpolation auf Hardware (Bildschirm)

bei Veränderung der Beleuchtung:- Koeffizientenmatrix (FF + Reflexionskoeffizient) unverändert, rechte Seite E

verändert� Gleichungssystem muß neu gelöst werden

bei Veränderung der Oberflächeneigenschaften:- Koeffizientenmatrix ändert sich, FF muß nicht neu berechnet werden

� Gleichungssystem muß neu gelöst werden

bei Veränderung der Geometrie:- FF ändern sich und damit auch die Matrix

Page 16: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

16

� �� ��� ��� �����)�(-->?-(

� ������� ��@���� �+�������������������� ���� 2

-��������� ����� /�������� �����

� ����$ ���������R���/�������������������� ���������� ������������R���/���-!���� �������5����$�))�������������������� �������������������� /����������������������������� ����������������������� '����������� #���� ��������������������S�������� �������

,),��������������������

Bottom-up-Verfahren: weit entfernte Körper werden zu einem zusammengefasstTop-down-Verfahren: Anfang mit dem größten Körper und dann rekursive Unterteilung dieser

Hierarchische Radiosity :- motiviert durch N-Body-Problem

� welche Kraft wirkt bei N Planeten auf jeden einzelnen Planeten?� N(N-1)/2 = Interaktion O(N²)

durch Clusterbildung wird Interaktion auf O(N) reduziert (Planeten ab einem best. Abstandwie ein Planet betrachten)

ZIEL:Reduzierung der Interaktionen zwischen den Elementen

� Reduzierung der Anzahl der FF-Berechnungen

� Energieaustausch auf verschiedenen Ebenen im Patch-Baum: jeder Knoten kann empfangen oder senden (nicht nur Blätter)

- Unterteilung nur dort, wo es erforderlich ist (Refine-Kriterium � BF)

- definiert Level für Energieaustausch durch Kombination zwischen Sender-/Empfänger-Polygon � Links

- berechnete FF werden zusammen mit Sichtbarkeitsinformation in den Links gespeichert � dadurch wird Neuberechnung vermieden)

- in einer Iteration wird jeweils alle Patches bearbeitet � dadurch wird in erster Iteration gesamtes direkte Licht verteilt und

nach der zweiten Iteration das gesamte einfach reflektierte Licht ….

� nach wenigen Iterationen ist die konvergierte Radiosity-Lösung vorhanden- Unterteilung und Radiosity-Verteilung werden getrennt, so daß explizite Neuverteilung

aufgrund einer Patchunterteilung nicht mehr notwendig ist

Page 17: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

17

�������������������

= 5������������������'���������� �������������������5�������������

= +���������$

8,�������������������������#����������������$ 5+�>?,�����

:,��������������������������������������$ �����+,

�,���� ���$ 5������ ��� �����������# ���� �����?�>������������������# ��

�,��������$ ��������������*�������#����?�����5����+����������,

�,����������$ �� �������S������A���� ����� #������������

LINKS :Links sind Gather-Links, d.h. Radiosity wird entlang der Links eingesammeltGathering statt shooting � erst alle Links bilden, dann Radiosity entlang dieser einsammeln

1) top-level-link (Initial-Link):� Startverlinkung generieren zw. allen gegenseitig sichtbaren Patches

(Root-Knoten miteinander verbinden)

2) lazy-link (modifizierte Startverlinkung):� Top-Level-Link nur dann, wenn Energiebeitrag relevant ist

� Holzschuch et al. (1994): zw. 65-95% der initialen Links wird nicht unterteilt, nicht alle Links tragen wegen ihrer Energie einen relevanten Beitrag für die Berechnung bei Zusatz-Kriterium epsilon_linkfür top-level-verlinkung (Energiebeitrag groß genug?)

3) Reducing-the-number-of-links:� Abbruchkriterium epsilon_reduce für die Flächenverfeinerung

refine-Kriterium� Überprüfung der 4 FF der Kindpatches mit Parent und der Abweichungen

untereinander für die Unterteilung

� somit ist Methode unabhängig von der transportierten Energiemenge (Vorab-Überprüfung)

Page 18: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

18

�������������������

= ����������� #�������$

= ����������� #��������$

= ����������� #����������$

�����+,����������������������������������

#���������5����$ ������+5,T#���������/��5����������� ��������+�>�N,#���������5����$ �� ���+5>�-)U>�'U ,

������+�5����M5�,5��9-I���� ;L�5��9? M�5��9?9-I����� M�5� I�? M�5��I�?5�?9-I���� ;L�5�?9� M�5�?9�9-I����� M�5� I?� M�5��I?�

���������������+������ M��>��������-I���� ,-I�� L�N���������� ��-����

-I�� L���* ;���-I���� ;��-I���������

-I��� L���-I���� ;��-I����#���������S����������������� �

-I����� L���������+��>�-I���,-I�� ;L�-I����� M�+������ <�������,

��-I����� L�-I��������+�-I�� ,�

Page 19: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

19

,)A�%���������������$%B�

� %���������������$%B +������� ���������� "���,�L�����&������ +����&��������,�;�)������������� +)���������������,

� ��������'�����������������������3������S������4

� ����&������$ 1����������������������& +/���� ��������>�7�?���������������>�V�,

� )�������������$ 1������������������)���������+��&�� ����>�/�&���������>�V�,

- Erste programmierbare GPUs im Jahre 2001

- Ab 2002 erweiterte GPU-Fähgikeiten:Branching-Operationen / Fliesskomma-Arithmetik / Berechnung von

Texturkoordinaten

- Heutige GPUs: haben feste und programmierbare Pipeline-Stufen

Feste Pipeline-Abschnitte :Primitive Assembly (Clipping, Culling, …) / RasterizationFramebuffer Operations (Alpha-Depth-Stencil-Tests) / Storage

Prog. Pipeline-Abschnitte :Per-Vertex-Operations (Transformation, Beleuchtung,…)Per-Fragment-Operations (Texel-Zuweisung, Nebel, Alphablending….)

Stream-Kernels � Eingabestrom vom vorherigen Abschnitt wird sequentiell weiterverarbeitet und über I/O-Register weitergereicht

Vertex-Shader: Transformation + Beleuchtungsberechnung von Eckpunkten (T&L transformation and Lighting)

Fragment-Shader: Texturverarbeitung + Pixelfarben

Page 20: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

20

,)/����6C����� $�����D7

� ����02%2'����E������������������1������ ������������� ��� �����!����������5����������������� #��������"��������������

� '����$ ��� �����2���������� ����������!������)��&������!��������������������� ��� �����-���� ������� *��������������������������

� ��/������ �����������������-������������+���������� '�2�<���)H,� �������������������������������� � �������������������'������������� �����&����������������!����������������

� ����&������ ������ �����&*���� +��������>�0������>�)����>�5������������>V9,� )������������� ������ �)�������*�����+/�&���>�-����������>V9,

-Im Jahre 2001 Microsoft HLSL (High-Lever-Shader-Language)-Cg ursprünglich „C for Graphics“ � jetzt umgeändert in „C for GPUs“

-Einfache Integration: Compiler sitzt auf den API´s / partielle Integration = Kombination von Cg mit Assemblerund statischer GPU / unabhängig von der Anwendung

-Unabhängigkeit von anderen Komponenten: 3D-API-unabhängig und seperate Programmierung auf 2 Ebenen-Erweiterbarkeit der Sprache: alle in C und C++ enthaltenen Keywords sind auch in Cg reserviert

-SPRACH-SYNTAX:� Konnektoren = bilden Datenfluß in der GPU, sind Eingänge und Ausgänge zwischen den Recheneinheiten

(sind wie erweiterbare C-Strukturen)� Profile = bestimmen über nutzbare Features von Cg (Datentypen, Strukturen, Funktionen)� uniforme Variablen = als Inputkonnektor in den Eingangsvariablen, anzusiedeln in den konstanten Registern

der Prozessoren, NICHT TEIL des Datenflusses� Register-Bindung = aus Cg wird Assembler generiert und um Zusammenhang Register - Cg Variablen nicht verloren

geht Variablen an Register anbinden, Variable wird einer Registerkomponente gleichgesetzt

-Vertex-Programm : Input: Vertex � programm-spezifische Manipulationen � Assemblierung und Rasterisierung� Output : transformierte Vertices

-Fragment-Programm : Input: transf. Vertex � programm-spezifische Manipulationen � Framebuffer Operationen � Framebuffer � Output: Pixel

-Compiler : 2 Compilierungsarten: run-time / klassische application-development Compilierung-Run-time-Compilierung: Vorteil � hardwarespezifischer optimierter Assemblercode (BACK-END)-Application-Development-Compilierung: Vorteil � benutzerdefinierter profilspezifischer Assemblercode-2 Bibliotheken: 1) Cg-Runtime-API : aus 2 Komponenten

� a) Interface für Cg-Compiler und dessen Ausgaben : unabhängig von 3D-API� b) Interface für 3D-API und ermöglicht Anbindung von Cg-Programmen an 3D-API-Zustand

und Parameter-Übergabe

2) CgFX: Erweiterung für diverse CPU-Funktionen, API- und Spracherweiterungen,Funktionen Multipass-Rendering-Effekte und Verwaltung von Assembler-Shader-Programmen

-Register: konstante (read) / temporäre (read/write)adress-register (für relative Adressierung) / predicate-register (boolsche Werte für Flußsteuerung)textur-sample-register (für Texturspeicherzugriff)

Page 21: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

21

A)�%��������������$&

� ���������������������������� ����6������������:NNN

� %� ����E���� � �� 2

� 3� ��� ������������������$

- RadiosGL entwickelt im Rahmen einer Studienarbeit an der Cornell Universität in Ithaka/New York- Implementation in C++

- Package aus drei Komponenten: Utilities (MakeHemicube, Vrml2mdl)Renderer RadiosGLViewer (RadiosGLView)

Funktionsweise:

1) mit Grafikprogramm Szenenbeschreibung in Vrml1.0 generieren und in Patches und Lightingabspeichern

2) mit Vrml2mdl Applikation eine MDL-Datei (Szenendescriptor) für den Input von RadiosGLgenerieren(mdl-Datei = strukturierte ascii-Datei mit des Objekteigenschaften (PatchVertices mitFarbe+Beleuchtung)

3) Hemicube-Daten erstellen mit vorgegebener Auflösung (hc-Datei = binär-Datei mit den Delta-FF)

4) mdl-Datei und hc-Datei und Parameter für das Rendering in RadiosGL als Input eingeben � Radiosity-Berechnung� Ergebnis wird in ein RGL-File herausgeschrieben

RadiosGL: echtzeitfähiger Kommandozeilenbasierender Renderer für Szenen mit DreiecksflächenRadiosGLView: OpenGL basierend, echtzeitfähiger RGL-File-Szenen-Viewer

Page 22: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

22

/)�������� ����� ��%�������

� 3� ��� ������������������$ � ����������+�����2

Page 23: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

23

������� ����� ��%�������

� ���� ����������� �$� %��������+�����2

� A��*�����$

Page 24: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

24

F)�'������ ����� �

Page 25: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

25

Page 26: ˘ ˇˆ - w3-o.cs.hm.edunischwit/diplom/Celik_vortrag.pdf6,)( ˘ˇˆ (-./ ˜ ˝ 0 # 0 $ 1 ˆˇ˘ ˇ - ˇ ˆ # ˇ ˇ ˛ 7˘ ˇ! 1 1 ˜ ˆ

26