<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.delphigl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Arno</id>
		<title>DGL Wiki - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Arno"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php/Spezial:Beitr%C3%A4ge/Arno"/>
		<updated>2026-04-19T17:41:59Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glFrustum&amp;diff=10987</id>
		<title>glFrustum</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glFrustum&amp;diff=10987"/>
				<updated>2005-10-01T12:48:48Z</updated>
		
		<summary type="html">&lt;p&gt;Arno: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glFrustum =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glFrustum''' - Multipliziert die aktuelle Matrix mit einer perspektivischen Matrix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glFrustum'''(''left'', ''right'', ''bottom'', ''top'', ''zNear'', ''zFar'' : glDouble);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&amp;lt;table border=1 rules=all&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''left'', ''right''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt die Koordinaten für die linke bzw. rechte (vertikale) Schnittfläche an.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''bottom'', ''top''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt die Koordinaten für die untere bzw. obere (horizontale) Schnittfläche an.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''zNear'', ''zFar''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt den Abstand zur Nah- bzw. Weit-Tiefenschnittfläche an. Beide Entfernungen müssen positiv sein.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glFrustum''' beschreibt eine perspektivische Matrix, die eine perspektivische Projektion herstellt. Die aktuelle Matrix (siehe [[glMatrixMode]]) wird mit dieser Matrix multipliziert, und dieses Ergebnis ersetzt die aktuelle Matrix, als ob [[glMultMatrix]] mit folgender Matrix aufgerufen worden wäre :&lt;br /&gt;
&lt;br /&gt;
[[bild:glFrustum_Matrix.png|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Es gilt:''' &amp;lt;br&amp;gt;&lt;br /&gt;
''f'' = ''zFar'' &amp;lt;br&amp;gt;&lt;br /&gt;
''n'' = ''zNear''&amp;lt;br&amp;gt;&lt;br /&gt;
''l'' = ''left''&amp;lt;br&amp;gt;&lt;br /&gt;
''r'' = ''right''&amp;lt;br&amp;gt;&lt;br /&gt;
''t'' = ''top''&amp;lt;br&amp;gt;&lt;br /&gt;
''b'' = ''bottom''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Normalerweise ist der Matrizenmodus '''GL_PROJECTION''', (Links, Unten, -Z-Fern) und (Rechts, Oben, -Z-Nah) beschreiben die Punkte auf der Nah-Schnittfläche, die auf die linkere untere, und obere rechte Ecke des Fensters gelegt werden, unter Annahme dass das Auge bei  (0,0,0) liegt. - Z-Fern gibt dabei die Position der Fern-Schnittfläche an. Sowohl Z-Fern als auch Z-Nah müssen positiv sein.&lt;br /&gt;
&lt;br /&gt;
Mittels [[glPushMatrix]] und [[glPopMatrix]] kann man Matrizen auf dem Stack sichern bzw. wieder zurücknehmen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Die Genauigkeit des Tiefenpuffers hängt von den in Z-Nah und Z-Fern angegebenen Werte ab. Je größer der Ratio von Z-Fern zu Z-Nah ist, desto niedriger wird der Tiefenpuffeer aufgelöst. &lt;br /&gt;
&lt;br /&gt;
Wenn &lt;br /&gt;
&lt;br /&gt;
 r = Z-Nah / Z-Fern&lt;br /&gt;
&lt;br /&gt;
dann gehen ~ log 2*r Bits an Tiefenpuffergenauigkeit verloren.&amp;lt;br /&amp;gt;&lt;br /&gt;
Z-Fern darf nicht Null sein, weil die Division durch 0 nicht definiert ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
Z-Nah darf nicht Null sein, weil sonst ''r'' Null wird und dann ist log 2*r nicht definiert.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''zNear'' oder ''zFar'' nicht positiv sind.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glFrustum''' zwischen einem [[glBegin]] und dem zugehörigen [[glEnd]] aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit dem Token '''GL_MATRIX_MODE'''.&amp;lt;br&amp;gt;&lt;br /&gt;
[[glGet]] mit dem Token '''GL_MODELVIEW_MATRIX'''.&amp;lt;br&amp;gt;&lt;br /&gt;
[[glGet]] mit dem Token '''GL_PROJECTION_MATRIX'''.&amp;lt;br&amp;gt;&lt;br /&gt;
[[glGet]] mit dem Token '''GL_TEXTURE_MATRIX'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glOrtho]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]], [[glViewport]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|Frustum]]&lt;/div&gt;</summary>
		<author><name>Arno</name></author>	</entry>

	</feed>