<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=Portal</id>
		<title>Portal - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=Portal"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;action=history"/>
		<updated>2026-04-29T17:41:05Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in DGL Wiki</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Portal&amp;diff=25874&amp;oldid=prev</id>
		<title>Glawesome: /* Sichtbarkeitsabfragen */ Verlinkung, Rechtschreibung und Zeichensetzung</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;diff=25874&amp;oldid=prev"/>
				<updated>2013-10-12T18:03:17Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Sichtbarkeitsabfragen: &lt;/span&gt; Verlinkung, Rechtschreibung und Zeichensetzung&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 12. Oktober 2013, 18:03 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Zeile 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Sichtbarkeitsabfragen=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Sichtbarkeitsabfragen=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sichtbarkeitsabfragen sind eines der Haupt-Anwendungsgebiete von Portalen. Die Geometrie eines Portales ist üblicherweise durch ein auf einer Ebene liegendes Viereck und den Normalvektor dieser Ebene definiert. Natürlich ist es auch möglich ein Portal über ein beliebiges Polygon (jedoch ein Polygon wo alle Punkte auf einer Ebene sind) zu definieren. Um die daraus folgenden Berechnungen nicht unnötig komplex zu machen, wird üblicherweise jedoch zumindest ein [[konvex]]es Polygon verwendet. Zusätzlich beinhaltet ein Portal noch die Information zwischen welchen Räumen es sich befindet.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sichtbarkeitsabfragen sind eines der Haupt-Anwendungsgebiete von Portalen. Die Geometrie eines Portales ist üblicherweise durch ein auf einer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Ebene&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;liegendes Viereck und den Normalvektor dieser Ebene definiert. Natürlich ist es auch möglich&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;ein Portal über ein beliebiges Polygon (jedoch ein Polygon wo alle Punkte auf einer Ebene sind) zu definieren. Um die daraus folgenden Berechnungen nicht unnötig komplex zu machen, wird üblicherweise jedoch zumindest ein [[konvex]]es Polygon verwendet. Zusätzlich beinhaltet ein Portal noch die Information&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;zwischen welchen Räumen es sich befindet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Einfache Sichtbarkeitsabfragen==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Einfache Sichtbarkeitsabfragen==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit verschiedensten Algorithmen zur Sichtbarkeitsabfrage kann bestimmt werden ob ein Portal sichtbar ist oder nicht.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit verschiedensten Algorithmen zur Sichtbarkeitsabfrage kann bestimmt werden&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;ob ein Portal sichtbar ist oder nicht.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Backface Culling===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Backface Culling===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit Hilfe des Normalvektors kann ein sehr effizientes Backface Culling durchgeführt werden durch die Formel welche den Winkel zwischen zwei Vektoren bestimmt:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit Hilfe des Normalvektors kann ein sehr effizientes Backface Culling durchgeführt werden durch die Formel&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;welche den Winkel zwischen zwei Vektoren bestimmt:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Winkel = ArcCos( VektorA * VektorB )&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Winkel = ArcCos( VektorA * VektorB )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wobei &amp;quot;*&amp;quot; ein Punktprodukt der beiden Vektoren ist.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wobei &amp;quot;*&amp;quot; ein &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Punktprodukt&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;der beiden Vektoren ist.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Arcus Cosinus hat die Eigenschaft:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Arcus Cosinus hat die Eigenschaft:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ArcCos( 0 ) =&amp;gt; Winkel = 90 Grad&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ArcCos( 0 ) =&amp;gt; Winkel = 90 Grad&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ArcCos( &amp;gt; 0 ) =&amp;gt; Winkel &amp;lt; 90 Grad&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ArcCos( &amp;gt; 0 ) =&amp;gt; Winkel &amp;lt; 90 Grad&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ArcCos( &amp;lt; 0 ) =&amp;gt; Winkel &amp;gt; 90 Grad&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ArcCos( &amp;lt; 0 ) =&amp;gt; Winkel &amp;gt; 90 Grad&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Somit braucht nur geprüft werden ob das Punktprodukt zwischen Normalvektor und Blickrichtung kleiner 0 ist. Ist dies der Fall, so ist dieses Portal nicht sichtbar.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Somit braucht nur geprüft werden&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;ob das Punktprodukt zwischen Normalvektor und Blickrichtung kleiner 0 ist. Ist dies der Fall, so ist dieses Portal nicht sichtbar.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===[[Frustum|Viewfrustum]] Culling===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===[[Frustum|Viewfrustum]] Culling===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die [[Frustum|Viewfrustum]] besteht aus 6 &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ebenen&lt;/del&gt;. Das Viereck befindet sich mit &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sicherheit &lt;/del&gt;ausserhalb der [[Frustum|Viewfrustum]], wenn alle 4 Punkte des Vierecks ausserhalb der selben Ebene liegen. Es ist auch möglich, dass beispielsweise 2 Punkte links ausserhalb der Viewfrustum und 2 Punkte rechts ausserhalb der [[Frustum|Viewfrustum]] liegen. In diesem Fall kann man nicht sicher sein, dass das Viereck nicht teilweise innterhalb der [[Frustum|Viewfrustum]] liegt, denn dies ist auch der Fall wenn man komplett durch das Portal hindurch blickt ohne dessen Ränder zu sehen. Somit muss die Einschränkung der selben Ebene beachtet werden um sicher gehen zu können.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die [[Frustum|Viewfrustum]] besteht aus 6 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Ebene]]n&lt;/ins&gt;. Das Viereck befindet sich mit &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Sicherheit &lt;/ins&gt;ausserhalb der [[Frustum|Viewfrustum]], wenn alle 4 Punkte des Vierecks ausserhalb der selben Ebene liegen. Es ist auch möglich, dass beispielsweise 2 Punkte links ausserhalb der Viewfrustum und 2 Punkte rechts ausserhalb der [[Frustum|Viewfrustum]] liegen. In diesem Fall kann man nicht sicher sein, dass das Viereck nicht teilweise innterhalb der [[Frustum|Viewfrustum]] liegt, denn dies ist auch der Fall&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;wenn man komplett durch das Portal hindurch blickt&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;ohne dessen Ränder zu sehen. Somit muss die Einschränkung der selben Ebene beachtet werden&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;um sicher gehen zu können.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Hardware Occlusion Culling===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Hardware Occlusion Culling===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit neueren Grafikkarten ist es möglich Objekte auf ihre Sichtbarkeit zu prüfen. Die einfache Geometrie (ein Viereck) eines Portales bietet sich hier natürlich gut an. Dafür sollte aber natürlich darauf geachtet werden, dass vor der Sichtbarkeitsabfrage der gesamte Raum mit all seinen Objekten gezeichnet wird, da ansonnsten das Occlusion Culling eher sinnlos ist.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit neueren Grafikkarten ist es möglich&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;Objekte auf ihre Sichtbarkeit zu prüfen. Die einfache Geometrie (ein Viereck) eines Portales bietet sich hier natürlich gut an. Dafür sollte aber natürlich darauf geachtet werden, dass vor der Sichtbarkeitsabfrage der gesamte Raum mit all seinen Objekten gezeichnet wird, da ansonnsten das Occlusion Culling eher sinnlos ist.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Siehe auch [[GL_EXT_occlusion_test]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Siehe auch [[GL_EXT_occlusion_test]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l29&quot; &gt;Zeile 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 29:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Eingrenzung der [[Frustum|Viewfrustum]]===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Eingrenzung der [[Frustum|Viewfrustum]]===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Durch ein Portal kann man die [[Frustum|Viewfrustum]] eingrenzen, also die [[Frustum|Viewfrustum]] verkleinern wodurch nachfolgende Portale und Objekte mit einer höheren Wahrscheinlichkeit als nicht sichtbar erkannt werden. Ist das Portal komplett innerhalb der [[Frustum|Viewfrustum]], so erhält man wiederum eine 6-Seitige [[Frustum|Viewfrustum]]. Wenn die [[Frustum|Viewfrustum]] das Portal jedoch schneidet, so kann die neue [[Frustum|Viewfrustum]] unnötig komplex werden. Im Schlimmsten Fall kommen 4 neue Ebenen zur eingegrenzten [[Frustum|Viewfrustum]] hinzu. Hier sollte demnach eine Einschränkung getroffen werden welche Ebenen sinnvoll und welche eher weniger sinnvoll für das weitere [[Frustum|Viewfrustum]] Culling sind.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Durch ein Portal kann man die [[Frustum|Viewfrustum]] eingrenzen, also die [[Frustum|Viewfrustum]] verkleinern&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;wodurch nachfolgende Portale und Objekte mit einer höheren Wahrscheinlichkeit als nicht sichtbar erkannt werden. Ist das Portal komplett innerhalb der [[Frustum|Viewfrustum]], so erhält man wiederum eine 6-Seitige [[Frustum|Viewfrustum]]. Wenn die [[Frustum|Viewfrustum]] das Portal jedoch schneidet, so kann die neue [[Frustum|Viewfrustum]] unnötig komplex werden. Im Schlimmsten Fall kommen 4 neue Ebenen zur eingegrenzten [[Frustum|Viewfrustum]] hinzu. Hier sollte demnach eine Einschränkung getroffen werden&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;welche Ebenen sinnvoll und welche eher weniger sinnvoll für das weitere [[Frustum|Viewfrustum]] Culling sind.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Doppelte Sichtbarkeit eines Raumes===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Doppelte Sichtbarkeit eines Raumes===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn man beispielsweise einen Raum mit zwei Fenstern nach draussen hat, so ist es möglich, dass beide Fenster sichtbar sind. Hier ist es natürlich ratsam den Aussenraum nur einmal zu zeichnen und nicht doppelt. Dafür ist es jedoch notwendig, die Eingrenzung der [[Frustum|Viewfrustum]] (falls dies verwendet wird) entsprechend anzupassen. Im Endeffekt hat man hier zwei Möglichkeiten:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn man beispielsweise einen Raum mit zwei Fenstern nach draussen hat, so ist es möglich, dass beide Fenster sichtbar sind. Hier ist es natürlich ratsam&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;den Aussenraum nur einmal zu zeichnen und nicht doppelt. Dafür ist es jedoch notwendig, die Eingrenzung der [[Frustum|Viewfrustum]] (falls dies verwendet wird) entsprechend anzupassen. Im Endeffekt hat man hier zwei Möglichkeiten:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Man führt die Sichtbarkeitsabfragen mit zwei eingegrenzten Viewfrustums durch. Beim ersten mal werden alle Objekte auf Sichtbarkeit geprüft, beim zweiten &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mal &lt;/del&gt;nur noch die, welche beim ersten &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mal &lt;/del&gt;nicht sichtbar waren. Dadurch prüft man jedoch einen &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;großteil &lt;/del&gt;der Objekte &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;umsonnst &lt;/del&gt;doppelt auf ihre Sichtbarkeit. Sinnvoll ist dies natürlich wenn die Fenster in unterschiedliche Richtungen zeigen (&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zB &lt;/del&gt;eines nach Norden&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/del&gt;eines nach Osten) weniger sinnvoll jedoch wenn beide in die selbe Richtung zeigen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Man führt die Sichtbarkeitsabfragen mit zwei eingegrenzten Viewfrustums durch. Beim ersten mal werden alle Objekte auf Sichtbarkeit geprüft, beim zweiten &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Mal &lt;/ins&gt;nur noch die, welche beim ersten &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Mal &lt;/ins&gt;nicht sichtbar waren. Dadurch prüft man jedoch einen &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Großteil &lt;/ins&gt;der Objekte &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;umsonst &lt;/ins&gt;doppelt auf ihre Sichtbarkeit. Sinnvoll ist dies natürlich&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;wenn die Fenster in unterschiedliche Richtungen zeigen (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;z.B. &lt;/ins&gt;eines nach Norden &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;und &lt;/ins&gt;eines nach Osten)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;weniger sinnvoll jedoch wenn beide in die selbe Richtung zeigen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Man führt die Sichtbarkeitsabfrage mit einer Viewfrustum durch die nicht eingegrenzt wurde, oder die beide Fenster mit einschließt. Dadurch muss zwar jedes Objekt des &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Aussenraumes &lt;/del&gt;nur einmal geprüft werden, jedoch werden auch einige Objekte als &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sichtbar &lt;/del&gt;erkannt die von dem dazwischen liegenden Mauerstück verdeckt sind.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Man führt die Sichtbarkeitsabfrage mit einer Viewfrustum durch&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;die nicht eingegrenzt wurde, oder die beide Fenster mit einschließt. Dadurch muss zwar jedes Objekt des &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Außenraumes &lt;/ins&gt;nur einmal geprüft werden, jedoch werden auch einige Objekte als &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sichtbar &lt;/ins&gt;erkannt die von dem dazwischen liegenden Mauerstück verdeckt sind.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine allgemeine, ideale Lösung wäre hier sehr &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Aufwändig &lt;/del&gt;zum berechnen, somit ist es sinnvoll dem Grafiker die Wahl zu überlassen welche Methode verwendet wird.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine allgemeine, ideale Lösung wäre hier sehr &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;aufwändig &lt;/ins&gt;zum berechnen, somit ist es sinnvoll dem Grafiker die Wahl zu überlassen welche Methode verwendet wird.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Weitere Anwendungsmöglichkeiten=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Weitere Anwendungsmöglichkeiten=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glawesome</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Portal&amp;diff=12982&amp;oldid=prev</id>
		<title>Flo: Der Kategorie Anleitung zugeordnet</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;diff=12982&amp;oldid=prev"/>
				<updated>2005-09-23T08:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Der Kategorie Anleitung zugeordnet&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 23. September 2005, 08:20 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l45&quot; &gt;Zeile 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[Schablonenpuffer|Stencil-Puffer]] einzugrenzen, um den [[Tiefenpuffer]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[Schablonenpuffer|Stencil-Puffer]] einzugrenzen, um den [[Tiefenpuffer]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Technik_oder_Algorithmus]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Kategorie:Anleitung]] &lt;/ins&gt;[[Kategorie:Technik_oder_Algorithmus]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flo</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Portal&amp;diff=9649&amp;oldid=prev</id>
		<title>Flo: Der Kateogrie Technik oder Algorithmus zugeordnet</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;diff=9649&amp;oldid=prev"/>
				<updated>2005-09-23T08:19:34Z</updated>
		
		<summary type="html">&lt;p&gt;Der Kateogrie Technik oder Algorithmus zugeordnet&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 23. September 2005, 08:19 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot; &gt;Zeile 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Spiegel, Übergänge und Magie==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Spiegel, Übergänge und Magie==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[Schablonenpuffer|Stencil-Puffer]] einzugrenzen, um den [[Tiefenpuffer]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[Schablonenpuffer|Stencil-Puffer]] einzugrenzen, um den [[Tiefenpuffer]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:Technik_oder_Algorithmus]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flo</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Portal&amp;diff=9648&amp;oldid=prev</id>
		<title>213.7.214.23: BackfaceCullingLink</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;diff=9648&amp;oldid=prev"/>
				<updated>2005-07-12T00:36:04Z</updated>
		
		<summary type="html">&lt;p&gt;BackfaceCullingLink&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 12. Juli 2005, 00:36 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Portale orientieren sich sehr stark an der menschlichen Sichtweise von Indoor-Levels. Es geht darum, ein Level in mehrere Bereiche einzuteilen und diese Bereiche über (möglichst kleine) Portale zu verbinden. Der typische Platz für ein Portal ist somit ein Durchgang, eine Tür, ein Fenster oder ähnliches. Jeder Raum erhält nun eine Liste von Portalen zu anderen Räumen. Wenn man weiß in welchem Raum man sich befindet (dies kann beispielsweise über einen [[BSP-Bäume|BSP-Baum]] herausgefunden werden), so muss man nur die Sichtbarkeit der einzelnen Portale prüfen um zu wissen welche Räume (möglicherweise) sichtbar sind. Die Sichtbarkeitsabfrage von Portalen geschieht üblicherweise über [[Backface Culling]] und [[Frustum|Viewfrustum]]-Culling.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Portale orientieren sich sehr stark an der menschlichen Sichtweise von Indoor-Levels. Es geht darum, ein Level in mehrere Bereiche einzuteilen und diese Bereiche über (möglichst kleine) Portale zu verbinden. Der typische Platz für ein Portal ist somit ein Durchgang, eine Tür, ein Fenster oder ähnliches. Jeder Raum erhält nun eine Liste von Portalen zu anderen Räumen. Wenn man weiß in welchem Raum man sich befindet (dies kann beispielsweise über einen [[BSP-Bäume|BSP-Baum]] herausgefunden werden), so muss man nur die Sichtbarkeit der einzelnen Portale prüfen um zu wissen welche Räume (möglicherweise) sichtbar sind. Die Sichtbarkeitsabfrage von Portalen geschieht üblicherweise über [[Backface Culling]] und [[Frustum|Viewfrustum]]-Culling.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nachdem ihr diesen Artikel gelesen habt, werdet ihr die kleinen Miniräume und Fahrstühle in Spielen wie Doom3 mit anderen Augen sehen.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Sichtbarkeitsabfragen=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Sichtbarkeitsabfragen=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>213.7.214.23</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Portal&amp;diff=8847&amp;oldid=prev</id>
		<title>213.7.214.23: BackfaceCullingLink</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;diff=8847&amp;oldid=prev"/>
				<updated>2005-07-12T00:27:45Z</updated>
		
		<summary type="html">&lt;p&gt;BackfaceCullingLink&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 12. Juli 2005, 00:27 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Portale orientieren sich sehr stark an der menschlichen Sichtweise von Indoor-Levels. Es geht darum, ein Level in mehrere Bereiche einzuteilen und diese Bereiche über (möglichst kleine) Portale zu verbinden. Der typische Platz für ein Portal ist somit ein Durchgang, eine Tür, ein Fenster oder ähnliches. Jeder Raum erhält nun eine Liste von Portalen zu anderen Räumen. Wenn man weiß in welchem Raum man sich befindet (dies kann beispielsweise über einen [[BSP-Bäume|BSP-Baum]] herausgefunden werden), so muss man nur die Sichtbarkeit der einzelnen Portale prüfen um zu wissen welche Räume (möglicherweise) sichtbar sind. Die Sichtbarkeitsabfrage von Portalen geschieht üblicherweise über Backface Culling und [[Frustum|Viewfrustum]]-Culling.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Portale orientieren sich sehr stark an der menschlichen Sichtweise von Indoor-Levels. Es geht darum, ein Level in mehrere Bereiche einzuteilen und diese Bereiche über (möglichst kleine) Portale zu verbinden. Der typische Platz für ein Portal ist somit ein Durchgang, eine Tür, ein Fenster oder ähnliches. Jeder Raum erhält nun eine Liste von Portalen zu anderen Räumen. Wenn man weiß in welchem Raum man sich befindet (dies kann beispielsweise über einen [[BSP-Bäume|BSP-Baum]] herausgefunden werden), so muss man nur die Sichtbarkeit der einzelnen Portale prüfen um zu wissen welche Räume (möglicherweise) sichtbar sind. Die Sichtbarkeitsabfrage von Portalen geschieht üblicherweise über &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Backface Culling&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;und [[Frustum|Viewfrustum]]-Culling.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Sichtbarkeitsabfragen=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Sichtbarkeitsabfragen=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot; &gt;Zeile 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Spiegel, Übergänge und Magie==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Spiegel, Übergänge und Magie==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[Stencil-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Buffer&lt;/del&gt;]] einzugrenzen, um den [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Tiefenbuffer&lt;/del&gt;]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Schablonenpuffer|&lt;/ins&gt;Stencil-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Puffer&lt;/ins&gt;]] einzugrenzen, um den [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Tiefenpuffer&lt;/ins&gt;]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>213.7.214.23</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Portal&amp;diff=8846&amp;oldid=prev</id>
		<title>Lyr: Mal ne erste Version ...</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Portal&amp;diff=8846&amp;oldid=prev"/>
				<updated>2005-07-11T16:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mal ne erste Version ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Portale orientieren sich sehr stark an der menschlichen Sichtweise von Indoor-Levels. Es geht darum, ein Level in mehrere Bereiche einzuteilen und diese Bereiche über (möglichst kleine) Portale zu verbinden. Der typische Platz für ein Portal ist somit ein Durchgang, eine Tür, ein Fenster oder ähnliches. Jeder Raum erhält nun eine Liste von Portalen zu anderen Räumen. Wenn man weiß in welchem Raum man sich befindet (dies kann beispielsweise über einen [[BSP-Bäume|BSP-Baum]] herausgefunden werden), so muss man nur die Sichtbarkeit der einzelnen Portale prüfen um zu wissen welche Räume (möglicherweise) sichtbar sind. Die Sichtbarkeitsabfrage von Portalen geschieht üblicherweise über Backface Culling und [[Frustum|Viewfrustum]]-Culling.&lt;br /&gt;
&lt;br /&gt;
=Sichtbarkeitsabfragen=&lt;br /&gt;
Sichtbarkeitsabfragen sind eines der Haupt-Anwendungsgebiete von Portalen. Die Geometrie eines Portales ist üblicherweise durch ein auf einer Ebene liegendes Viereck und den Normalvektor dieser Ebene definiert. Natürlich ist es auch möglich ein Portal über ein beliebiges Polygon (jedoch ein Polygon wo alle Punkte auf einer Ebene sind) zu definieren. Um die daraus folgenden Berechnungen nicht unnötig komplex zu machen, wird üblicherweise jedoch zumindest ein [[konvex]]es Polygon verwendet. Zusätzlich beinhaltet ein Portal noch die Information zwischen welchen Räumen es sich befindet.&lt;br /&gt;
&lt;br /&gt;
==Einfache Sichtbarkeitsabfragen==&lt;br /&gt;
Mit verschiedensten Algorithmen zur Sichtbarkeitsabfrage kann bestimmt werden ob ein Portal sichtbar ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
===Backface Culling===&lt;br /&gt;
Mit Hilfe des Normalvektors kann ein sehr effizientes Backface Culling durchgeführt werden durch die Formel welche den Winkel zwischen zwei Vektoren bestimmt:&lt;br /&gt;
Winkel = ArcCos( VektorA * VektorB )&lt;br /&gt;
Wobei &amp;quot;*&amp;quot; ein Punktprodukt der beiden Vektoren ist.&lt;br /&gt;
Der Arcus Cosinus hat die Eigenschaft:&lt;br /&gt;
*ArcCos( 0 ) =&amp;gt; Winkel = 90 Grad&lt;br /&gt;
*ArcCos( &amp;gt; 0 ) =&amp;gt; Winkel &amp;lt; 90 Grad&lt;br /&gt;
*ArcCos( &amp;lt; 0 ) =&amp;gt; Winkel &amp;gt; 90 Grad&lt;br /&gt;
Somit braucht nur geprüft werden ob das Punktprodukt zwischen Normalvektor und Blickrichtung kleiner 0 ist. Ist dies der Fall, so ist dieses Portal nicht sichtbar.&lt;br /&gt;
&lt;br /&gt;
===[[Frustum|Viewfrustum]] Culling===&lt;br /&gt;
Die [[Frustum|Viewfrustum]] besteht aus 6 Ebenen. Das Viereck befindet sich mit sicherheit ausserhalb der [[Frustum|Viewfrustum]], wenn alle 4 Punkte des Vierecks ausserhalb der selben Ebene liegen. Es ist auch möglich, dass beispielsweise 2 Punkte links ausserhalb der Viewfrustum und 2 Punkte rechts ausserhalb der [[Frustum|Viewfrustum]] liegen. In diesem Fall kann man nicht sicher sein, dass das Viereck nicht teilweise innterhalb der [[Frustum|Viewfrustum]] liegt, denn dies ist auch der Fall wenn man komplett durch das Portal hindurch blickt ohne dessen Ränder zu sehen. Somit muss die Einschränkung der selben Ebene beachtet werden um sicher gehen zu können.&lt;br /&gt;
&lt;br /&gt;
===Hardware Occlusion Culling===&lt;br /&gt;
Mit neueren Grafikkarten ist es möglich Objekte auf ihre Sichtbarkeit zu prüfen. Die einfache Geometrie (ein Viereck) eines Portales bietet sich hier natürlich gut an. Dafür sollte aber natürlich darauf geachtet werden, dass vor der Sichtbarkeitsabfrage der gesamte Raum mit all seinen Objekten gezeichnet wird, da ansonnsten das Occlusion Culling eher sinnlos ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Siehe auch [[GL_EXT_occlusion_test]].&lt;br /&gt;
&lt;br /&gt;
==Probleme==&lt;br /&gt;
Wenn ein Portal nicht sichtbar ist, so muss der dahinter liegende Raum nicht gezeichnet werden. Wenn ein Portal sichtbar ist, so ist noch das ein oder andere zu beachten:&lt;br /&gt;
&lt;br /&gt;
===Eingrenzung der [[Frustum|Viewfrustum]]===&lt;br /&gt;
Durch ein Portal kann man die [[Frustum|Viewfrustum]] eingrenzen, also die [[Frustum|Viewfrustum]] verkleinern wodurch nachfolgende Portale und Objekte mit einer höheren Wahrscheinlichkeit als nicht sichtbar erkannt werden. Ist das Portal komplett innerhalb der [[Frustum|Viewfrustum]], so erhält man wiederum eine 6-Seitige [[Frustum|Viewfrustum]]. Wenn die [[Frustum|Viewfrustum]] das Portal jedoch schneidet, so kann die neue [[Frustum|Viewfrustum]] unnötig komplex werden. Im Schlimmsten Fall kommen 4 neue Ebenen zur eingegrenzten [[Frustum|Viewfrustum]] hinzu. Hier sollte demnach eine Einschränkung getroffen werden welche Ebenen sinnvoll und welche eher weniger sinnvoll für das weitere [[Frustum|Viewfrustum]] Culling sind.&lt;br /&gt;
&lt;br /&gt;
===Doppelte Sichtbarkeit eines Raumes===&lt;br /&gt;
Wenn man beispielsweise einen Raum mit zwei Fenstern nach draussen hat, so ist es möglich, dass beide Fenster sichtbar sind. Hier ist es natürlich ratsam den Aussenraum nur einmal zu zeichnen und nicht doppelt. Dafür ist es jedoch notwendig, die Eingrenzung der [[Frustum|Viewfrustum]] (falls dies verwendet wird) entsprechend anzupassen. Im Endeffekt hat man hier zwei Möglichkeiten:&lt;br /&gt;
#Man führt die Sichtbarkeitsabfragen mit zwei eingegrenzten Viewfrustums durch. Beim ersten mal werden alle Objekte auf Sichtbarkeit geprüft, beim zweiten mal nur noch die, welche beim ersten mal nicht sichtbar waren. Dadurch prüft man jedoch einen großteil der Objekte umsonnst doppelt auf ihre Sichtbarkeit. Sinnvoll ist dies natürlich wenn die Fenster in unterschiedliche Richtungen zeigen (zB eines nach Norden, eines nach Osten) weniger sinnvoll jedoch wenn beide in die selbe Richtung zeigen.&lt;br /&gt;
#Man führt die Sichtbarkeitsabfrage mit einer Viewfrustum durch die nicht eingegrenzt wurde, oder die beide Fenster mit einschließt. Dadurch muss zwar jedes Objekt des Aussenraumes nur einmal geprüft werden, jedoch werden auch einige Objekte als Sichtbar erkannt die von dem dazwischen liegenden Mauerstück verdeckt sind.&lt;br /&gt;
Eine allgemeine, ideale Lösung wäre hier sehr Aufwändig zum berechnen, somit ist es sinnvoll dem Grafiker die Wahl zu überlassen welche Methode verwendet wird.&lt;br /&gt;
&lt;br /&gt;
=Weitere Anwendungsmöglichkeiten=&lt;br /&gt;
&lt;br /&gt;
==[[LOD|Level of Detail]]==&lt;br /&gt;
Ähnlich zu [[Imposter]]s können bei weiter entfernten Portalen die Räume dahinter in eine Textur gerendert werden und die darauffolgenden Frames wird der gesamte Raum (oder die Räume) dahinter nur noch mit dieser Textur dargestellt. Wenn sich der Blickwinkel stärker ändert, so wird aus dem neuen Blinkwinkel die Textur neu gerendert und um [[Popping]] zu verhindern über einen bestimmten Zeitraum mit der anderen überblendet. Natürlich ist es dafür notwendig, dass sich in diesem Raum (diesen Räumen) keine sichtbaren, dynamischen (also bewegten) Objekte befinden, da ansonnsten die Textur zu oft neu gerendert werden müsste.&lt;br /&gt;
&lt;br /&gt;
==Spiegel, Übergänge und Magie==&lt;br /&gt;
Dadurch, dass ein Portal die Information beinhaltet zwischen welchen Räumen es liegt, ist es natürlich auch möglich Räume zu verbinden die physikalisch an komplett unterschiedlichen Orten liegen, oder auch einen Raum mit sich selbst. Wenn sich zwei Räume an komplett unterschiedlichen Orten befinden, so ist es jedoch notwendig eine Transformation zum Portal hinzu zu fügen, und zwar sowohl eine Translation als auch eine Rotation. Dadurch ist es ohne Probleme möglich, einen 10 Meter langen Tunnel zu machen, der 10 Kilometer weiter entfernt endet. Dies kann sehr praktisch sein wenn man in einem Welteditor nicht eine gesamte Höhle in die Welt setzen möchte, sondern nur die Ein- und Ausgänge einer Höhle. Da es natürlich auch möglich ist ein solches Portal zu einem weit entfernten Ort auch mitten in den Raum zu stellen, eignen sich Portale auch sehr gut für die Darstellung von &amp;quot;magischen&amp;quot; Transportmöglichkeiten und den flüssigen Übergang von einem Ort zum anderen. Ein netter Nebeneffekt des ganzen ist, das man auch sehr einfach Spiegel machen kann, indem man einfach die Transformation abhängig von der Betrachterposition macht, bzw. die Betrachterposition und den Blickwinkel am Portal spiegelt. Für die Portale &amp;quot;mitten im Raum&amp;quot; und auch die Spiegel ist es jedoch meistens ratsam den Bereich in den gezeichnet wird mit dem [[Stencil-Buffer]] einzugrenzen, um den [[Tiefenbuffer]] in den anderen Bereichen nicht zu zerstören.&lt;/div&gt;</summary>
		<author><name>Lyr</name></author>	</entry>

	</feed>