<?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=Occlusion_Query</id>
		<title>Occlusion Query - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=Occlusion_Query"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;action=history"/>
		<updated>2026-04-29T19:06:06Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in DGL Wiki</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=25492&amp;oldid=prev</id>
		<title>Kastenfrosch2: /* Beispielhafte Benutzung in OpenGL */  Falschen Variablennamen umbenannt</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=25492&amp;oldid=prev"/>
				<updated>2012-03-06T08:12:45Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispielhafte Benutzung in OpenGL: &lt;/span&gt;  Falschen Variablennamen umbenannt&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 6. März 2012, 08:12 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-l39&quot; &gt;Zeile 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 39:&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;//Warten bis die Pixelanzahl über die (Hardware-)Grafikschnittstelle bis zu unserem Programm vorgedrungen ist&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;//Warten bis die Pixelanzahl über die (Hardware-)Grafikschnittstelle bis zu unserem Programm vorgedrungen 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;repeat&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;repeat&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;&amp;#160;&amp;#160; glGetQueryObjectuiv(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;OGLQuery&lt;/del&gt;, GL_QUERY_RESULT_AVAILABLE, @QueryState)&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;&amp;#160;&amp;#160; glGetQueryObjectuiv(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;QueryID&lt;/ins&gt;, GL_QUERY_RESULT_AVAILABLE, @QueryState)&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;until Querystate = GL_TRUE;&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;until Querystate = GL_TRUE;&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;/table&gt;</summary>
		<author><name>Kastenfrosch2</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=22891&amp;oldid=prev</id>
		<title>DGLBot: Der Ausdruck ''&lt;pascal&gt;(.*?)&lt;/pascal&gt;'' wurde ersetzt mit ''&lt;source lang=&quot;pascal&quot;&gt;$1&lt;/source&gt;''.</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=22891&amp;oldid=prev"/>
				<updated>2009-03-10T18:06:46Z</updated>
		
		<summary type="html">&lt;p&gt;Der Ausdruck &amp;#039;&amp;#039;&amp;lt;pascal&amp;gt;(.*?)&amp;lt;/pascal&amp;gt;&amp;#039;&amp;#039; wurde ersetzt mit &amp;#039;&amp;#039;&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;$1&amp;lt;/source&amp;gt;&amp;#039;&amp;#039;.&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 10. März 2009, 18:06 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-l18&quot; &gt;Zeile 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 18:&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;=== Beispielhafte Benutzung in OpenGL ===&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;=== Beispielhafte Benutzung in OpenGL ===&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;&amp;lt;pascal&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;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;source lang=&amp;quot;&lt;/ins&gt;pascal&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;&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;var&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;var&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;&amp;#160;&amp;#160; QueryID: Cardinal;&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;&amp;#160;&amp;#160; QueryID: Cardinal;&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-l47&quot; &gt;Zeile 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 47:&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;//6. Das Queryobjekt freigeben, wenn es nicht mehr benötigt wird&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;//6. Das Queryobjekt freigeben, wenn es nicht mehr benötigt 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;div&gt;glDeleteQueries(1, @QueryID);&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;glDeleteQueries(1, @QueryID);&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;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pascal&lt;/del&gt;&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;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;source&lt;/ins&gt;&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;/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;== Wichtige Besonderheiten ==&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;== Wichtige Besonderheiten ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DGLBot</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=21804&amp;oldid=prev</id>
		<title>Igel457: /* Sichtbarkeitserkennung für Objekte */</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=21804&amp;oldid=prev"/>
				<updated>2008-06-03T20:25:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Sichtbarkeitserkennung für Objekte&lt;/span&gt;&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 3. Juni 2008, 20:25 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-l5&quot; &gt;Zeile 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 5:&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;Mögliche Anwendungen für diese Technik sind:&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;Mögliche Anwendungen für diese Technik 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;div&gt;===Sichtbarkeitserkennung für Objekte===&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;===Sichtbarkeitserkennung für Objekte===&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 niedrig aufgelöste (tesselierte) Variante der Szene (zum Beispiel jeweils nur die Bounding Boxen) wird in ein kleines, nicht sichtbares [[Vertexbuffer Objekt&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|VBO&lt;/del&gt;]] gerendert. Sind dort Pixel eines Objektes sichtbar, so kann auch das hochauflösende Objekt gerendert werden. Somit wird Leistung eingespart.&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 niedrig aufgelöste (tesselierte) Variante der Szene (zum Beispiel jeweils nur die Bounding Boxen) wird in ein kleines, nicht sichtbares [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;VBO|&lt;/ins&gt;Vertexbuffer Objekt]] gerendert. Sind dort Pixel eines Objektes sichtbar, so kann auch das hochauflösende Objekt gerendert werden. Somit wird Leistung eingespart.&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;===Lensflare Effekte===&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;===Lensflare Effekte===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Igel457</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=21802&amp;oldid=prev</id>
		<title>Igel457: Die Seite wurde neu angelegt: == Was sind ein Occlusion Queries? == Hinter dem Begriff &quot;Occlusion Query&quot; (zu deutsch etwa &quot;Sichbarkeits Abfrage&quot;) versteht man eine Technik, mit deren Hilfe sich die ...</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Occlusion_Query&amp;diff=21802&amp;oldid=prev"/>
				<updated>2008-06-03T20:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: == Was sind ein Occlusion Queries? == Hinter dem Begriff &amp;quot;Occlusion Query&amp;quot; (zu deutsch etwa &amp;quot;Sichbarkeits Abfrage&amp;quot;) versteht man eine Technik, mit deren Hilfe sich die ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Was sind ein Occlusion Queries? ==&lt;br /&gt;
Hinter dem Begriff &amp;quot;Occlusion Query&amp;quot; (zu deutsch etwa &amp;quot;Sichbarkeits Abfrage&amp;quot;) versteht man eine Technik, mit deren Hilfe sich die Anzahl der Pixel, die den Z-Buffer Test bestehen, auslesen lässt.&lt;br /&gt;
&lt;br /&gt;
== Mögliche Anwendungsgebiete ==&lt;br /&gt;
Mögliche Anwendungen für diese Technik sind:&lt;br /&gt;
===Sichtbarkeitserkennung für Objekte===&lt;br /&gt;
Eine niedrig aufgelöste (tesselierte) Variante der Szene (zum Beispiel jeweils nur die Bounding Boxen) wird in ein kleines, nicht sichtbares [[Vertexbuffer Objekt|VBO]] gerendert. Sind dort Pixel eines Objektes sichtbar, so kann auch das hochauflösende Objekt gerendert werden. Somit wird Leistung eingespart.&lt;br /&gt;
&lt;br /&gt;
===Lensflare Effekte===&lt;br /&gt;
Die Intensität eines Lensflare-Effektes sollte abnehmen, je mehr von der Lichtquelle verdeckt ist. Über Occlusion Culling lässt herausfinden, wie viele Pixel der Lichtquelle überhaupt sichtbar sind. Somit kann der Effekt abgeschwächt werden.&lt;br /&gt;
&lt;br /&gt;
===Kollisionskontrolle===&lt;br /&gt;
In Kombination mit dem Stencilbuffer und Occlusion Queries kann man herausfinden, ob zwei Objekte miteinander Kollidieren. Vor allem in 2D-Spielen findet diese Technik Verwendung. Dazu wird das erste Objekt gezeichnet und der Stencilwert bei geglücktem Z-Buffer Test von null auf eins erhöht. Als nächstes Zeichnet man das zweite Objekt. Jedoch werden über den Stencilbuffer nur dort Pixel gesetzt, wo der Stencilwert eins beträgt. Wird bei diesem Vorgang mehr als ein Pixel gezeichnet, so kollidieren die beiden Objekte.&lt;br /&gt;
&lt;br /&gt;
== Wie funktionieren Occlusion Queries? ==&lt;br /&gt;
Eine Occlusion Query kann man sich wie eine Art Stoppuhr vorstellen: Man Schaltet die Stoppuhr ein, drückt auf Start, zeichnet etwas, drückt auf Stopp und ließt die Anzahl der Pixel, die den Z-Buffertest bestanden haben, ab. Schließlich, wenn die Stoppuhr nicht mehr benötigt wird schaltet man sie wieder ab.&lt;br /&gt;
Seit OpenGL-Version 1.5 gehören Occlusion Queries zur Standard OpenGL Definition. Das bedeutet, dass dafür keine Extensions benötigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispielhafte Benutzung in OpenGL ===&lt;br /&gt;
&amp;lt;pascal&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  QueryID: Cardinal;&lt;br /&gt;
  QueryState: Cardinal;&lt;br /&gt;
  PixelCount: Cardinal;&lt;br /&gt;
&lt;br /&gt;
//1. Ein OpenGL-Queryobjekt erstellen&lt;br /&gt;
glGenQueries(1, @QueryID);&lt;br /&gt;
&lt;br /&gt;
//2. Die Abfrage starten&lt;br /&gt;
glBeginQuery(GL_SAMPLES_PASSED, @QueryID);&lt;br /&gt;
&lt;br /&gt;
//3. Irgendetwas zeichnen&lt;br /&gt;
&lt;br /&gt;
//4. Die Abfrage anhalten&lt;br /&gt;
glEndQuery(GL_SAMPLES_PASSED);&lt;br /&gt;
&lt;br /&gt;
//5. Die Pixelanzahl abhohlen&lt;br /&gt;
&lt;br /&gt;
//Warten bis die Pixelanzahl über die (Hardware-)Grafikschnittstelle bis zu unserem Programm vorgedrungen ist&lt;br /&gt;
repeat&lt;br /&gt;
  glGetQueryObjectuiv(OGLQuery, GL_QUERY_RESULT_AVAILABLE, @QueryState)&lt;br /&gt;
until Querystate = GL_TRUE;&lt;br /&gt;
&lt;br /&gt;
//Das Ergebnis aufschreiben&lt;br /&gt;
glGetQueryObjectuiv(QueryID, GL_QUERY_RESULT, @PixelCount);&lt;br /&gt;
&lt;br /&gt;
//6. Das Queryobjekt freigeben, wenn es nicht mehr benötigt wird&lt;br /&gt;
glDeleteQueries(1, @QueryID);&lt;br /&gt;
&amp;lt;/pascal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wichtige Besonderheiten ==&lt;br /&gt;
Interessant ist Schritt Nummer 5: Die Pixelanzahl liegt unserem Anwendungsprogramm nicht direkt vor, sie muss sich erst ihren Weg von der GPU zur CPU bahnen. Darauf müssen wir warten. In diesem Schritt kann also recht viel Zeit vergehen. Daher sind einige Optimierungsmaßnahmen sinnvoll:&lt;br /&gt;
&lt;br /&gt;
Zwischen dem Anhalten der Abfrage und dem Abholen des Ergebnisses können weiterhin Objekte gezeichnet werden und weiter Occlusion Queries stattfinden. Möchte man also für eine Reihe von Objekten eine Sichtbarkeitskontrolle durchführen, so liegt es nahe für jedes Objekt ein OpenGL-Query-Objekt zu erzeugen und alle Sichbarkeitstests vor dem abholen des Ergebnisses durchzuführen. Schließlich können in der Zeit des Test, die Ergebnisse schon unsere Anwendung (bzw. OpenGL) erreichen. Dann müssen wir nicht mehr darauf warten.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist es wichtig, sich klar zu machen, dass die Occlusion Queries nicht die gezeichneten Pixel, sondern die Pixel, die den Z-Buffer Test bestehen zählen. Ist der Z-Buffer abgeschaltet gibt es keinen Z-Buffer Test, der dann logischerweise auch nicht bestanden werden kann. Daraus folgt: Es werden keine Pixel gezählt, obwohl wir vielleicht unsere Szene sehen.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glBeginQuery]], [[glDeleteQueries]], [[glEndQuery]], [[glGetQuery]], [[glGetQueryObject]], [[glIsQuery]], [[Tutorial NVOcclusionQuery]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
http://www.gamedev.net/reference/programming/features/occlusionculling/ (Auch wenn es DirectX ist, das Konzept ist das selbe)&lt;br /&gt;
http://kometbomb.net/2007/07/11/hardware-accelerated-2d-collision-detection-in-opengl/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Technik_oder_Algorithmus]]&lt;/div&gt;</summary>
		<author><name>Igel457</name></author>	</entry>

	</feed>