https://wiki.delphigl.com/index.php?title=Clipping_Plane&feed=atom&action=history
Clipping Plane - Versionsgeschichte
2024-03-28T17:20:51Z
Versionsgeschichte dieser Seite in DGL Wiki
MediaWiki 1.27.4
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=25869&oldid=prev
Glawesome: /* Arten von Clipping Planes */ Ebene verlinkt, Kommasetzung und Rechtschreibung
2013-10-12T17:28:12Z
<p><span dir="auto"><span class="autocomment">Arten von Clipping Planes: </span> Ebene verlinkt, Kommasetzung und Rechtschreibung</span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 12. Oktober 2013, 17:28 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l2" >Zeile 2:</td>
<td colspan="2" class="diff-lineno">Zeile 2:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>== Arten von Clipping Planes ==</div></td><td class='diff-marker'> </td><td style="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;"><div>== Arten von Clipping Planes ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Clippen nennt man das wegschneiden von Teilen die nicht am Ausgabebild sichtbar sind. Dies wird für jedes Primitiv (Punkt, Linie oder 3eck) durchgeführt bevor es weiter zum Rasterizer geschickt wird.</div></td><td class='diff-marker'>+</td><td style="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;"><div>Clippen nennt man das wegschneiden von Teilen<ins class="diffchange diffchange-inline">, </ins>die nicht am Ausgabebild sichtbar sind. Dies wird für jedes Primitiv (Punkt, Linie oder 3eck) durchgeführt<ins class="diffchange diffchange-inline">, </ins>bevor es weiter zum Rasterizer geschickt wird.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Bei den Clipping Planes ist zu unterscheiden zwischen <del class="diffchange diffchange-inline">benutzer definierten </del>Clipping Planes welche mit [[glClipPlane]] gesetzt werden und <del class="diffchange diffchange-inline">der </del>[[Kamera]] [[Frustum]] <del class="diffchange diffchange-inline">welche </del>aus 6 <del class="diffchange diffchange-inline">Ebenen </del>(Near, Far, Left, Right, Top und Bottom) besteht.</div></td><td class='diff-marker'>+</td><td style="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;"><div>Bei den Clipping Planes ist zu unterscheiden zwischen <ins class="diffchange diffchange-inline">benutzerdefinierten </ins>Clipping Planes<ins class="diffchange diffchange-inline">, </ins>welche mit [[glClipPlane]] gesetzt werden und <ins class="diffchange diffchange-inline">dem </ins>[[Kamera]]<ins class="diffchange diffchange-inline">-</ins>[[Frustum]] <ins class="diffchange diffchange-inline">welches </ins>aus 6 <ins class="diffchange diffchange-inline">[[Ebene]]n </ins>(Near, Far, Left, Right, Top und Bottom) besteht.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>== benutzerdefinierte Clipping Planes ==</div></td><td class='diff-marker'> </td><td style="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;"><div>== benutzerdefinierte Clipping Planes ==</div></td></tr>
</table>
Glawesome
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=16837&oldid=prev
Flash: Zum exzellenten Artikel berufen
2006-04-06T10:55:14Z
<p>Zum exzellenten Artikel berufen</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 6. April 2006, 10:55 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">{{Excellent}}</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>== Arten von Clipping Planes ==</div></td><td class='diff-marker'> </td><td style="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;"><div>== Arten von Clipping Planes ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
</table>
Flash
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=16836&oldid=prev
Flash: /* benutzerdefinierte Clipping Planes */
2006-04-06T10:54:36Z
<p><span dir="auto"><span class="autocomment">benutzerdefinierte Clipping Planes</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 6. April 2006, 10:54 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5" >Zeile 5:</td>
<td colspan="2" class="diff-lineno">Zeile 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>== benutzerdefinierte Clipping Planes ==</div></td><td class='diff-marker'> </td><td style="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;"><div>== benutzerdefinierte Clipping Planes ==</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">[[Bild:Kugel_LINE_Clip.jpg|right|framed|Eine [[gluSphere]] in Drahtgitterdarstellung welche durch eine [[glClipPlane|benutzerdefinierte Clippingplane]] geschnitten wurde.]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Die benutzerdefinierten Clipping Planes werden im Modelspace angegeben, das heißt sie werden beim Erstellen mit der aktuellen (inversen) Modelview [[Matrix]] multipliziert. Das clippen an den Benutzerdefinierten Clipping Planes muss aus diesem Grund auch vor der Multiplikation der [[glVertex|Vertices]] mit der Projection [[Matrix]] erfolgen.</div></td><td class='diff-marker'> </td><td style="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;"><div>Die benutzerdefinierten Clipping Planes werden im Modelspace angegeben, das heißt sie werden beim Erstellen mit der aktuellen (inversen) Modelview [[Matrix]] multipliziert. Das clippen an den Benutzerdefinierten Clipping Planes muss aus diesem Grund auch vor der Multiplikation der [[glVertex|Vertices]] mit der Projection [[Matrix]] erfolgen.</div></td></tr>
</table>
Flash
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=12424&oldid=prev
83.135.64.51: /* Perspektivische Projektion */
2005-05-02T20:14:27Z
<p><span dir="auto"><span class="autocomment">Perspektivische Projektion</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 2. Mai 2005, 20:14 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l31" >Zeile 31:</td>
<td colspan="2" class="diff-lineno">Zeile 31:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Perspektivische Projektion wird üblicherweise für die Darstellung von 3D Szenen verwendet.</div></td><td class='diff-marker'> </td><td style="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;"><div>Perspektivische Projektion wird üblicherweise für die Darstellung von 3D Szenen verwendet.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Hier sind die Anforderungen schon etwas höher. Zum einen dürfen hier die <del class="diffchange diffchange-inline">Bedienungen </del>-w <= z <= w nicht zutreffen wenn der Punkt ausserhalb der [[Frustum]] <del class="diffchange diffchange-inline">lieget </del>und zum anderen muss z nach der Division durch w einen Wert im Bereich [-1|1] erhalten. Um dies zu gewährleisten bringt die Projection [[Matrix]] die sichtbaren Koordinaten auf folgende Bereiche:</div></td><td class='diff-marker'>+</td><td style="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;"><div>Hier sind die Anforderungen schon etwas höher. Zum einen dürfen hier die <ins class="diffchange diffchange-inline">Bedingungen </ins>-w <= z <= w nicht zutreffen wenn der Punkt ausserhalb der [[Frustum]] <ins class="diffchange diffchange-inline">liegt </ins>und zum anderen muss z nach der Division durch w einen Wert im Bereich [-1|1] erhalten. Um dies zu gewährleisten bringt die Projection [[Matrix]] die sichtbaren Koordinaten auf folgende Bereiche:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>*x und y = [-far|far] (wenn die Punkte auf der Far Plane liegen, <del class="diffchange diffchange-inline">ansonnsten </del>ein entsprechend kleinerer Bereich bis hin zu [-near|near] auf der Near Plane)</div></td><td class='diff-marker'>+</td><td style="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;"><div>*x und y = [-far|far] (wenn die Punkte auf der Far Plane liegen, <ins class="diffchange diffchange-inline">ansonsten </ins>ein entsprechend kleinerer Bereich bis hin zu [-near|near] auf der Near Plane)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>*z = [-near|far]</div></td><td class='diff-marker'> </td><td style="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;"><div>*z = [-near|far]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>*w = [near|far] (= vorheriger negativer z Wert)</div></td><td class='diff-marker'> </td><td style="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;"><div>*w = [near|far] (= vorheriger negativer z Wert)</div></td></tr>
</table>
83.135.64.51
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=7491&oldid=prev
172.178.127.126: /* benutzerdefinierte Clipping Planes */
2004-10-05T14:00:23Z
<p><span dir="auto"><span class="autocomment">benutzerdefinierte Clipping Planes</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 5. Oktober 2004, 14:00 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4" >Zeile 4:</td>
<td colspan="2" class="diff-lineno">Zeile 4:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Bei den Clipping Planes ist zu unterscheiden zwischen benutzer definierten Clipping Planes welche mit [[glClipPlane]] gesetzt werden und der [[Kamera]] [[Frustum]] welche aus 6 Ebenen (Near, Far, Left, Right, Top und Bottom) besteht.</div></td><td class='diff-marker'> </td><td style="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;"><div>Bei den Clipping Planes ist zu unterscheiden zwischen benutzer definierten Clipping Planes welche mit [[glClipPlane]] gesetzt werden und der [[Kamera]] [[Frustum]] welche aus 6 Ebenen (Near, Far, Left, Right, Top und Bottom) besteht.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>== <del class="diffchange diffchange-inline">benutzer definierte </del>Clipping Planes ==</div></td><td class='diff-marker'>+</td><td style="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;"><div>== <ins class="diffchange diffchange-inline">benutzerdefinierte </ins>Clipping Planes ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Die <del class="diffchange diffchange-inline">benutzer definierten </del>Clipping Planes werden im Modelspace angegeben, das heißt sie werden beim Erstellen mit der aktuellen (inversen) Modelview [[Matrix]] multipliziert. Das clippen an den <del class="diffchange diffchange-inline">Benutzer definierten </del>Clipping Planes muss aus diesem Grund auch vor der Multiplikation der [[glVertex|Vertices]] mit der Projection [[Matrix]] erfolgen.</div></td><td class='diff-marker'>+</td><td style="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;"><div>Die <ins class="diffchange diffchange-inline">benutzerdefinierten </ins>Clipping Planes werden im Modelspace angegeben, das heißt sie werden beim Erstellen mit der aktuellen (inversen) Modelview [[Matrix]] multipliziert. Das clippen an den <ins class="diffchange diffchange-inline">Benutzerdefinierten </ins>Clipping Planes muss aus diesem Grund auch vor der Multiplikation der [[glVertex|Vertices]] mit der Projection [[Matrix]] erfolgen.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>== Frustum clipping ==</div></td><td class='diff-marker'> </td><td style="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;"><div>== Frustum clipping ==</div></td></tr>
</table>
172.178.127.126
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=2576&oldid=prev
Flash: /* Parallel Projektion */
2004-09-29T10:24:07Z
<p><span dir="auto"><span class="autocomment">Parallel Projektion</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 29. September 2004, 10:24 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l24" >Zeile 24:</td>
<td colspan="2" class="diff-lineno">Zeile 24:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Parallele Projektion wird üblicherweise für Darstellung von 2D Grafiken verwendet.</div></td><td class='diff-marker'> </td><td style="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;"><div>Parallele Projektion wird üblicherweise für Darstellung von 2D Grafiken verwendet.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Annahme: w Komponente eines [[glVertex|Vertices]] ist immer 1.</div></td><td class='diff-marker'>+</td><td style="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;"><div>Annahme: w Komponente eines [[glVertex|Vertices]] ist immer 1.<ins class="diffchange diffchange-inline"><br></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Bei der Paralellprojektion sind nach der Projektion alle sichtbaren [[glVertex|Vertices]] im Bereich ([-1|1],[-1|1],[-1|1],1). Hier wird also nicht viel mehr gemacht als den sichtbaren Bereich auf einen Standard-Würfel zu scalen und die Theorie des Kanonischen Sichtkörpers wird hier über Umwege auch in der Praxis durchgeführt. Da die W-Komponente immer 1 ist, wird der [[glVertex|Vertex]] durch die Division durch W nicht mehr beeinflusst.</div></td><td class='diff-marker'> </td><td style="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;"><div>Bei der Paralellprojektion sind nach der Projektion alle sichtbaren [[glVertex|Vertices]] im Bereich ([-1|1],[-1|1],[-1|1],1). Hier wird also nicht viel mehr gemacht als den sichtbaren Bereich auf einen Standard-Würfel zu scalen und die Theorie des Kanonischen Sichtkörpers wird hier über Umwege auch in der Praxis durchgeführt. Da die W-Komponente immer 1 ist, wird der [[glVertex|Vertex]] durch die Division durch W nicht mehr beeinflusst.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
</table>
Flash
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=2511&oldid=prev
Lyr: /* Clipping Vorgang */
2004-09-29T07:14:11Z
<p><span dir="auto"><span class="autocomment">Clipping Vorgang</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 29. September 2004, 07:14 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l45" >Zeile 45:</td>
<td colspan="2" class="diff-lineno">Zeile 45:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>#Punkt 1 innerhalb, Punkt 2 genau auf der Ebene und Punkt 3 ausserhalb => 1 3eck</div></td><td class='diff-marker'> </td><td style="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;"><div>#Punkt 1 innerhalb, Punkt 2 genau auf der Ebene und Punkt 3 ausserhalb => 1 3eck</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>#Punkt 1 und Punkt 2 innerhalb, Punkt 3 ausserhalb => 2 3ecke</div></td><td class='diff-marker'> </td><td style="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;"><div>#Punkt 1 und Punkt 2 innerhalb, Punkt 3 ausserhalb => 2 3ecke</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Speziell bei der [[Frustum]] kann es vorkommen, das ein 3eck am Schluss in bis zu <del class="diffchange diffchange-inline">5 </del>kleinere 3ecke zerlegt wird wenn es beispielsweise in einer Ecke des sichtbaren Bereiches ist. Da jedoch jede Ebene getrennt behandelt werden kann stellen solche Spezialfälle kein Problem für den Algorithmus dar.</div></td><td class='diff-marker'>+</td><td style="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;"><div>Speziell bei der [[Frustum]] kann es vorkommen, das ein 3eck am Schluss in bis zu <ins class="diffchange diffchange-inline">4 </ins>kleinere 3ecke zerlegt wird wenn es beispielsweise in einer Ecke des sichtbaren Bereiches ist. Da jedoch jede Ebene getrennt behandelt werden kann stellen solche Spezialfälle kein Problem für den Algorithmus dar.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>==OpenGL Funktionen==</div></td><td class='diff-marker'> </td><td style="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;"><div>==OpenGL Funktionen==</div></td></tr>
</table>
Lyr
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=2510&oldid=prev
Lyr am 24. September 2004 um 09:13 Uhr
2004-09-24T09:13:06Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 24. September 2004, 09:13 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">Die beiden </del>Clipping Planes werden <del class="diffchange diffchange-inline">vom </del>[[<del class="diffchange diffchange-inline">OpenGL</del>]] [[<del class="diffchange diffchange-inline">Kamera</del>]] <del class="diffchange diffchange-inline">Modell benutzt um </del>(<del class="diffchange diffchange-inline">zusammen </del>mit <del class="diffchange diffchange-inline">dem </del>[[<del class="diffchange diffchange-inline">Kamera</del>]] [[Frustum]]) <del class="diffchange diffchange-inline">den Bereich zu bestimmen</del>, in <del class="diffchange diffchange-inline">welchem Objekte gezeichnet </del>werden<del class="diffchange diffchange-inline">. Es wird dabei die </del><<del class="diffchange diffchange-inline">i>Near Clipping Plane</del><<del class="diffchange diffchange-inline">/i> </del>(<del class="diffchange diffchange-inline">nähere/vordere Schnittebene</del>) und die <del class="diffchange diffchange-inline"><i>Far </del>Clipping <del class="diffchange diffchange-inline">Place</i> </del>(<del class="diffchange diffchange-inline">entfernte/hintere Schnittebene</del>) <del class="diffchange diffchange-inline">benutzt</del>. <del class="diffchange diffchange-inline">Nur Objekte</del>, <del class="diffchange diffchange-inline">welche sich innerhalb dieser beiden </del>[[<del class="diffchange diffchange-inline">Ebene</del>|<del class="diffchange diffchange-inline">Ebenen</del>]] <del class="diffchange diffchange-inline">befinden werden </del>von [[<del class="diffchange diffchange-inline">OpenGL</del>]] <del class="diffchange diffchange-inline">gezeichnet </del>(<del class="diffchange diffchange-inline">natürlich </del>nur <del class="diffchange diffchange-inline">solange sie nicht von anderen Objekten verdeckt sind o</del>.<del class="diffchange diffchange-inline">ä)</del>.</div></td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">== Arten von Clipping Planes ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Clippen nennt man das wegschneiden von Teilen die nicht am Ausgabebild sichtbar sind. Dies wird für jedes Primitiv (Punkt, Linie oder 3eck) durchgeführt bevor es weiter zum Rasterizer geschickt wird.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Bei den Clipping Planes ist zu unterscheiden zwischen benutzer definierten </ins>Clipping Planes <ins class="diffchange diffchange-inline">welche mit [[glClipPlane]] gesetzt </ins>werden <ins class="diffchange diffchange-inline">und der </ins>[[<ins class="diffchange diffchange-inline">Kamera</ins>]] [[<ins class="diffchange diffchange-inline">Frustum</ins>]] <ins class="diffchange diffchange-inline">welche aus 6 Ebenen </ins>(<ins class="diffchange diffchange-inline">Near, Far, Left, Right, Top und Bottom) besteht.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">== benutzer definierte Clipping Planes ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Die benutzer definierten Clipping Planes werden im Modelspace angegeben, das heißt sie werden beim Erstellen </ins>mit <ins class="diffchange diffchange-inline">der aktuellen (inversen) Modelview [[Matrix]] multipliziert. Das clippen an den Benutzer definierten Clipping Planes muss aus diesem Grund auch vor der Multiplikation der </ins>[[<ins class="diffchange diffchange-inline">glVertex|Vertices</ins>]] <ins class="diffchange diffchange-inline">mit der Projection </ins>[[<ins class="diffchange diffchange-inline">Matrix]] erfolgen.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">== </ins>Frustum <ins class="diffchange diffchange-inline">clipping ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Hingegen zu der weit verbreiteten Theorie des kanonischen Sichtkörpers, wo die gesamte Szene in einen standardisierten Quader (x=[-1|1</ins>]<ins class="diffchange diffchange-inline">, y=[-1|1] und z=[0|1</ins>]) <ins class="diffchange diffchange-inline">gebracht wird</ins>, <ins class="diffchange diffchange-inline">sieht die Praxis </ins>in <ins class="diffchange diffchange-inline">OpenGL (wohl primär aus performance Gründen) anders aus. Hier gilt ein [[glVertex|Vertex]] als sichtbar wenn folgende Bedienungen erfüllt </ins>werden<ins class="diffchange diffchange-inline">:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">-w <= x <= w</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">-w <= y <= w</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">-w </ins><<ins class="diffchange diffchange-inline">= z </ins><<ins class="diffchange diffchange-inline">= w</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Hier sollte man noch wissen, dass in OpenGL direkt nach dem Clippen der </ins>(<ins class="diffchange diffchange-inline">x,y,z</ins>) <ins class="diffchange diffchange-inline">Teil des [[glVertex|Vertices]] durch w dividiert wird um bei der perspektivischen Projektion den Tiefeneffekt zu erzielen. Würde diese Division vor dem [[Frustum]] Clipping statt finden, so wäre die Z-Componente einer Kante nicht mehr linear </ins>und die <ins class="diffchange diffchange-inline">Schnittpunktberechnung mit der </ins>Clipping <ins class="diffchange diffchange-inline">Plane würde zu einem etwas komplexerem Problem anwachsen.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">== Parallel Projektion ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Parallele Projektion wird üblicherweise für Darstellung von 2D Grafiken verwendet.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Annahme: w Komponente eines [[glVertex|Vertices]] ist immer 1.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Bei der Paralellprojektion sind nach der Projektion alle sichtbaren [[glVertex|Vertices]] im Bereich </ins>(<ins class="diffchange diffchange-inline">[-1|1],[-1|1],[-1|1],1</ins>). <ins class="diffchange diffchange-inline">Hier wird also nicht viel mehr gemacht als den sichtbaren Bereich auf einen Standard-Würfel zu scalen und die Theorie des Kanonischen Sichtkörpers wird hier über Umwege auch in der Praxis durchgeführt. Da die W-Komponente immer 1 ist</ins>, <ins class="diffchange diffchange-inline">wird der </ins>[[<ins class="diffchange diffchange-inline">glVertex</ins>|<ins class="diffchange diffchange-inline">Vertex</ins>]] <ins class="diffchange diffchange-inline">durch die Division durch W nicht mehr beeinflusst.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">== Perspektivische Projektion ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Perspektivische Projektion wird üblicherweise für die Darstellung </ins>von <ins class="diffchange diffchange-inline">3D Szenen verwendet.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Hier sind die Anforderungen schon etwas höher. Zum einen dürfen hier die Bedienungen -w <= z <= w nicht zutreffen wenn der Punkt ausserhalb der [[Frustum]] lieget und zum anderen muss z nach der Division durch w einen Wert im Bereich </ins>[<ins class="diffchange diffchange-inline">-1|1] erhalten. Um dies zu gewährleisten bringt die Projection [[Matrix]] die sichtbaren Koordinaten auf folgende Bereiche:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">*x und y = [-far|far] (wenn die Punkte auf der Far Plane liegen, ansonnsten ein entsprechend kleinerer Bereich bis hin zu [-near|near] auf der Near Plane)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">*z = </ins>[<ins class="diffchange diffchange-inline">-near|far</ins>]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">*w = [near|far</ins>] (<ins class="diffchange diffchange-inline">= vorheriger negativer z Wert)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Die Projection [[Matrix]] transformiert die [[Frustum]] also in eine standard-[[Frustum]] die oben genannte Eigenschaften besitzt.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Hier ist auch schön zu sehen was passiert wenn nun z durch w dividert wird: z/w = [-1|1]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Zudem erklärt diese Division auch die charakteristische, nicht lineare Z-Buffer Einteilung.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">== Clipping Vorgang ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Hier geht es darum, das 3eck an einer Ebene abzuschneiden, wodurch aus einem 3eck plötzlich 2 werden können. Es gibt </ins>nur <ins class="diffchange diffchange-inline">3 Fälle zu beachten wenn das 3eck die Ebene schneidet:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">#Punkt 1 innerhalb, Punkt 2 und 3 ausserhalb => 1 3eck</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">#Punkt 1 innerhalb, Punkt 2 genau auf der Ebene und Punkt 3 ausserhalb => 1 3eck</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">#Punkt 1 und Punkt 2 innerhalb, Punkt 3 ausserhalb => 2 3ecke</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Speziell bei der [[Frustum]] kann es vorkommen, das ein 3eck am Schluss in bis zu 5 kleinere 3ecke zerlegt wird wenn es beispielsweise in einer Ecke des sichtbaren Bereiches ist</ins>. <ins class="diffchange diffchange-inline">Da jedoch jede Ebene getrennt behandelt werden kann stellen solche Spezialfälle kein Problem für den Algorithmus dar</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>==OpenGL Funktionen==</div></td><td class='diff-marker'> </td><td style="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;"><div>==OpenGL Funktionen==</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">[[glOrtho]] definiert durch eine parallele Projektion durch Near, Far, Left, Right, Top und Bottom Wert.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">[[glFrustum]] definiert eine perspektivische Projektion, ebenfalls durch Near, Far, Left, Right, Top und Bottom Wert nur das hier Left, Right, Top und Bottom für die Near Plane angegeben werden. Für die Far Plane ergeben sie sich dadurch automatisch.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Der Funktion [[gluPerspective]] werden mit dem 3. und 4. Parameter die Entfernungen der beiden Ebenen übergeben.</div></td><td class='diff-marker'> </td><td style="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;"><div>Der Funktion [[gluPerspective]] werden mit dem 3. und 4. Parameter die Entfernungen der beiden Ebenen übergeben.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Zusammen mit den ersten beiden Parametern ([[FOV|Field of View]] und [[Aspect Ratio|Seitenverhältnis]]) erzeugt gluPerspective <del class="diffchange diffchange-inline">ein </del>[[Frustum]].</div></td><td class='diff-marker'>+</td><td style="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;"><div>Zusammen mit den ersten beiden Parametern ([[FOV|Field of View]] und [[Aspect Ratio|Seitenverhältnis]]) erzeugt gluPerspective <ins class="diffchange diffchange-inline">eine </ins>[[Frustum]]<ins class="diffchange diffchange-inline">.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">[[gluPerspective]] verwendet [[glFrustum]] und ist somit nur eine etwas Anwenderfreundlicherere Variante von [[glFrustum]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="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;"><div><ins class="diffchange diffchange-inline">Mit der Funktion [[glClipPlane]] können benutzerdefinierte Clipping Planes erstellt werden</ins>.</div></td></tr>
</table>
Lyr
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=2450&oldid=prev
Flash: /* OpenGL Funktionen */
2004-09-15T17:48:07Z
<p><span dir="auto"><span class="autocomment">OpenGL Funktionen</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='de'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Nächstältere Version</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Version vom 15. September 2004, 17:48 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l3" >Zeile 3:</td>
<td colspan="2" class="diff-lineno">Zeile 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>==OpenGL Funktionen==</div></td><td class='diff-marker'> </td><td style="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;"><div>==OpenGL Funktionen==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>Der Funktion [[gluPerspective]] werden mit dem 3. und 4. Parameter die Entfernungen der beiden Ebenen übergeben.</div></td><td class='diff-marker'> </td><td style="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;"><div>Der Funktion [[gluPerspective]] werden mit dem 3. und 4. Parameter die Entfernungen der beiden Ebenen übergeben.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>Zusammen mit den ersten beiden Parametern ([[FOV|Field of View]] und [[Aspect Ratio|Seitenverhältnis]]) erzeugt gluPerspective ein Frustum.</div></td><td class='diff-marker'>+</td><td style="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;"><div>Zusammen mit den ersten beiden Parametern ([[FOV|Field of View]] und [[Aspect Ratio|Seitenverhältnis]]) erzeugt gluPerspective ein <ins class="diffchange diffchange-inline">[[</ins>Frustum<ins class="diffchange diffchange-inline">]]</ins>.</div></td></tr>
</table>
Flash
https://wiki.delphigl.com/index.php?title=Clipping_Plane&diff=2360&oldid=prev
Doj: erste Version
2004-09-15T15:51:07Z
<p>erste Version</p>
<p><b>Neue Seite</b></p><div>Die beiden Clipping Planes werden vom [[OpenGL]] [[Kamera]] Modell benutzt um (zusammen mit dem [[Kamera]] [[Frustum]]) den Bereich zu bestimmen, in welchem Objekte gezeichnet werden. Es wird dabei die <i>Near Clipping Plane</i> (nähere/vordere Schnittebene) und die <i>Far Clipping Place</i> (entfernte/hintere Schnittebene) benutzt. Nur Objekte, welche sich innerhalb dieser beiden [[Ebene|Ebenen]] befinden werden von [[OpenGL]] gezeichnet (natürlich nur solange sie nicht von anderen Objekten verdeckt sind o.ä).<br />
<br />
==OpenGL Funktionen==<br />
Der Funktion [[gluPerspective]] werden mit dem 3. und 4. Parameter die Entfernungen der beiden Ebenen übergeben.<br />
Zusammen mit den ersten beiden Parametern ([[FOV|Field of View]] und [[Aspect Ratio|Seitenverhältnis]]) erzeugt gluPerspective ein Frustum.</div>
Doj