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

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=21211&amp;oldid=prev</id>
		<title>Flash: /* Der Trampelpfad */</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=21211&amp;oldid=prev"/>
				<updated>2008-03-13T14:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Der Trampelpfad&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 13. März 2008, 14:55 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Zeile 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Der Trampelpfad==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Der Trampelpfad==&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;Fangen wir ganz grob an. Was ist OpenGL? - [[OpenGL]] ist eine API welche die Schnittstelle zur Grafikhardware darstellt. Weiterhin ist OpenGL als Statemachine konzipiert. D.h. die GL kann verschiedene &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Stadien &lt;/del&gt;einnehmen und ihr aktueller Status beeinflusst ihre Ausgabe. Auch wenn dies jetzt sehr wage und vielleicht auch seltsam klingt, ist dies nichts besonders &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kompliziertes&lt;/del&gt;. Ein Beispiel: Die aktuelle Farbe kann mit [[glColor]] gesetzt werden. Ändert man die Farbe, ändert sich der &amp;quot;Farbzustand&amp;quot; der GL und bleibt solange aktuell, bis eine neue Farbe zugewiesen wurde. OpenGL wechselt also '''niemals''' von alleine in irgend einen Zustand zurück. Die Farbe ist nur ein, sehr einfacher Zustand. OpenGL verfügt noch über viel mehr Zustände z.B. ob Texturen verwendet werden sollen, oder ob die Beleuchtung aktiviert ist. Viele der Zustände von OpenGL kann man mit [[glEnable]] und [[glDisable]] aktivieren bzw. deaktivieren. Soviel zur API. Doch wie funktioniert OpenGL?&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;Fangen wir ganz grob an. Was ist OpenGL? - [[OpenGL]] ist eine API welche die Schnittstelle zur Grafikhardware darstellt. Weiterhin ist OpenGL als Statemachine konzipiert. D.h. die GL kann verschiedene &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Zustände (engl. State) &lt;/ins&gt;einnehmen und ihr aktueller Status beeinflusst ihre Ausgabe. Auch wenn dies jetzt sehr wage und vielleicht auch seltsam klingt, ist dies nichts besonders &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Kompliziertes&lt;/ins&gt;. Ein Beispiel: Die aktuelle Farbe kann mit [[glColor]] gesetzt werden. Ändert man die Farbe, ändert sich der &amp;quot;Farbzustand&amp;quot; der GL und bleibt solange aktuell, bis eine neue Farbe zugewiesen wurde. OpenGL wechselt also '''niemals''' von alleine in irgend einen Zustand zurück. Die Farbe ist nur ein, sehr einfacher Zustand. OpenGL verfügt noch über viel mehr Zustände z.B. ob &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Textur|&lt;/ins&gt;Texturen&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;verwendet werden sollen, oder ob die &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Beleuchtung&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;aktiviert ist. Viele der Zustände von OpenGL kann man mit [[glEnable]] und [[glDisable]] aktivieren bzw. deaktivieren. Soviel zur API. Doch wie funktioniert OpenGL?&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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthält und meist mittles [[Doppelpufferung]] betrieben wird. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Im zurseite &lt;/del&gt;stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat.&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;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthält und meist mittles [[Doppelpufferung]] betrieben wird. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Die Aufgabe des Framebuffers ist die Daten die auf dem Bildschirm ausgegeben werden sollen zwischen zu speichern und dann mit einem mal auszugeben (flushen). Dem Framebuffer zur Seite &lt;/ins&gt;stehen &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/ins&gt;der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Er enthält die Entfernung zum Betrachter. Damit kann man sicherstellen, dass Objekte sich gegenseitig korrekt verdecken.)&lt;/ins&gt;, &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/ins&gt;der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/ins&gt;der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/ins&gt;Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Sie alle dienem dem Zwischenspeichern von Werten die dann bei Bedarf abgefragt werden können&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&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;&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;Die Puffer werden entweder über die [[Feste Funktionspipeline|feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&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;Die Puffer werden entweder über die [[Feste Funktionspipeline|feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flash</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=20170&amp;oldid=prev</id>
		<title>Flash: /* Der Trampelpfad */ Links ergänzt</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=20170&amp;oldid=prev"/>
				<updated>2007-01-31T15:40:04Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Der Trampelpfad: &lt;/span&gt; Links ergänzt&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 31. Januar 2007, 15:40 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-l8&quot; &gt;Zeile 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 8:&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;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthält und meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat.&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;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthält und meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat.&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;&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;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Puffer werden entweder über die [[feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Puffer werden entweder über die [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Feste Funktionspipeline|&lt;/ins&gt;feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&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;Seit einigen Jahren verfügen Grafikkarten über programmierbare Renderingpipelines. Damit kann man bei der Verarbeitung der Vertexinformationen vom vorgegebenen festen Weg abweichen und erhält mitunter sehr interessante Ergebnisse. Shader sind noch recht neu und es ist noch nicht abzusehen, was man (die entsprechende Hardware vorrausgesetzt) noch alles mit ihnen machen kann. Bislang werden Shader vorallem zur Bearbeitug von Materialien/Oberflächen eingesetzt. Z.B. um [[Bumpmapping]] zu realisieren.&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;Seit einigen Jahren verfügen Grafikkarten über programmierbare Renderingpipelines. Damit kann man bei der Verarbeitung der Vertexinformationen vom vorgegebenen festen Weg abweichen und erhält mitunter sehr interessante Ergebnisse. Shader sind noch recht neu und es ist noch nicht abzusehen, was man (die entsprechende Hardware vorrausgesetzt) noch alles mit ihnen machen kann. Bislang werden Shader vorallem zur Bearbeitug von Materialien/Oberflächen eingesetzt. Z.B. um [[Bumpmapping]] zu realisieren.&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-l35&quot; &gt;Zeile 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 35:&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;# Nebelberechung (siehe [[glFog]])&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;# Nebelberechung (siehe [[glFog]])&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;# [[Antialiasing]]&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;# [[Antialiasing]]&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;# [[Scissor Test]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Feste_Funktionspipeline#Scissor_Test|&lt;/ins&gt;Scissor Test]]&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;# [[Alpha Test]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Feste_Funktionspipeline#Alpha_Test|&lt;/ins&gt;Alpha Test]]&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;# [[Stencil Test]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Feste_Funktionspipeline#Stencil_Test|&lt;/ins&gt;Stencil Test]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Tiefentest]]&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;# [[Tiefentest]]&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;# [[Blenden]]&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;# [[Blenden]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flash</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=12598&amp;oldid=prev</id>
		<title>Flash: /* Der Trampelpfad */</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=12598&amp;oldid=prev"/>
				<updated>2005-07-23T15:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Der Trampelpfad&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 23. Juli 2005, 15:17 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-l6&quot; &gt;Zeile 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 6:&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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;enthältund &lt;/del&gt;meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat.&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;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;enthält und &lt;/ins&gt;meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat.&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;&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;&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;Die Puffer werden entweder über die [[feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&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;Die Puffer werden entweder über die [[feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flash</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=8865&amp;oldid=prev</id>
		<title>Flo am 26. April 2005 um 13:00 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=8865&amp;oldid=prev"/>
				<updated>2005-04-26T13:00:36Z</updated>
		
		<summary type="html">&lt;p&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 26. April 2005, 13:00 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-l48&quot; &gt;Zeile 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 48:&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;Soweit zum Hintergrund von OpenGL. '''[[Trampelpfade|Hier gehts zurück zu den Trampelpfaden.]]'''&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;Soweit zum Hintergrund von OpenGL. '''[[Trampelpfade|Hier gehts zurück zu den Trampelpfaden.]]'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:Trampelpfad]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flo</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=7447&amp;oldid=prev</id>
		<title>134.109.4.169: /* Der Trampelpfad */</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=7447&amp;oldid=prev"/>
				<updated>2005-04-04T11:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Der Trampelpfad&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 4. April 2005, 11:24 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-l6&quot; &gt;Zeile 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 6:&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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer.Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthältund meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben.&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;Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer. Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthältund meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Jeder Eintrag in einem Puffer gehört dann zu dem Pixel welches die selben Koordinaten auf dem Renderkontext hat&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&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;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Puffer &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;werdenentweder &lt;/del&gt;über die [[feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Puffer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;werden entweder &lt;/ins&gt;über die [[feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&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;Seit einigen Jahren verfügen Grafikkarten über programmierbare Renderingpipelines. Damit kann man bei der Verarbeitung der Vertexinformationen vom vorgegebenen festen Weg abweichen und erhält mitunter sehr interessante Ergebnisse. Shader sind noch recht neu und es ist noch nicht abzusehen, was man (die entsprechende Hardware vorrausgesetzt) noch alles mit ihnen machen kann. Bislang werden Shader vorallem zur Bearbeitug von Materialien/Oberflächen eingesetzt. Z.B. um [[Bumpmapping]] zu realisieren.&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;Seit einigen Jahren verfügen Grafikkarten über programmierbare Renderingpipelines. Damit kann man bei der Verarbeitung der Vertexinformationen vom vorgegebenen festen Weg abweichen und erhält mitunter sehr interessante Ergebnisse. Shader sind noch recht neu und es ist noch nicht abzusehen, was man (die entsprechende Hardware vorrausgesetzt) noch alles mit ihnen machen kann. Bislang werden Shader vorallem zur Bearbeitug von Materialien/Oberflächen eingesetzt. Z.B. um [[Bumpmapping]] zu realisieren.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>134.109.4.169</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=5404&amp;oldid=prev</id>
		<title>Flash: Nun endlich doch fertig.</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Technikpfad&amp;diff=5404&amp;oldid=prev"/>
				<updated>2005-02-17T15:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Nun endlich doch fertig.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Einleitung== &lt;br /&gt;
Willkommen auf dem Technikpfad! Wenn Sie wissen wollen, wie OpenGL funktioniert und wie die Räder ineinandergreifen sind Sie hier genau richtig. &lt;br /&gt;
&lt;br /&gt;
==Der Trampelpfad==&lt;br /&gt;
Fangen wir ganz grob an. Was ist OpenGL? - [[OpenGL]] ist eine API welche die Schnittstelle zur Grafikhardware darstellt. Weiterhin ist OpenGL als Statemachine konzipiert. D.h. die GL kann verschiedene Stadien einnehmen und ihr aktueller Status beeinflusst ihre Ausgabe. Auch wenn dies jetzt sehr wage und vielleicht auch seltsam klingt, ist dies nichts besonders kompliziertes. Ein Beispiel: Die aktuelle Farbe kann mit [[glColor]] gesetzt werden. Ändert man die Farbe, ändert sich der &amp;quot;Farbzustand&amp;quot; der GL und bleibt solange aktuell, bis eine neue Farbe zugewiesen wurde. OpenGL wechselt also '''niemals''' von alleine in irgend einen Zustand zurück. Die Farbe ist nur ein, sehr einfacher Zustand. OpenGL verfügt noch über viel mehr Zustände z.B. ob Texturen verwendet werden sollen, oder ob die Beleuchtung aktiviert ist. Viele der Zustände von OpenGL kann man mit [[glEnable]] und [[glDisable]] aktivieren bzw. deaktivieren. Soviel zur API. Doch wie funktioniert OpenGL?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Betrachten wir zuerst die [[Hintergrundwissen#Puffer|Puffer]]. OpenGL verfügt über verschiedene Puffer.Der wichtigste ist ganz klar der [[Framebuffer]] der die auszugebenden Bildinformationen enthältund meist mittles [[Doppelpufferung]] betrieben wird. Im zurseite stehen der [[Tiefenpuffer]] der bei der Bildentstehung wichtig ist, der [[Schablonenpuffer|Stencilbuffer]], mit dessen Hilfe man Teile der Ausgabe vor Zugriffen schützen kann, der [[Farbpuffer]] (eigentlich die '''Farbpuffer''' da im RGBA Modus für jede Farbe ein Puffer vorhanden ist.) und Spezialpuffer wie der [[Feedbackpuffer]] oder der [[Selektionpuffer]]. Die meisten Puffer kann man sich als 2 dimensionales Feld vorstellen, welche genau die Ausmaße der Zeichenfläche haben.&lt;br /&gt;
 &lt;br /&gt;
Die Puffer werdenentweder über die [[feste Funktionspipeline]] (Renderingpipeline) oder mittels [[Shader]] befüllt. (Zu den Shadern wird es an dieser Stelle nur wenige Informationen geben. Wer mehr wissen will sollte sich den '''[[Beleuchtungspfad]]''' ansehen.)&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren verfügen Grafikkarten über programmierbare Renderingpipelines. Damit kann man bei der Verarbeitung der Vertexinformationen vom vorgegebenen festen Weg abweichen und erhält mitunter sehr interessante Ergebnisse. Shader sind noch recht neu und es ist noch nicht abzusehen, was man (die entsprechende Hardware vorrausgesetzt) noch alles mit ihnen machen kann. Bislang werden Shader vorallem zur Bearbeitug von Materialien/Oberflächen eingesetzt. Z.B. um [[Bumpmapping]] zu realisieren.&lt;br /&gt;
&lt;br /&gt;
Der festen Funkktionspipeline sollte etwas mehr Zeit gewidmet werden. (Wer den entsprechenden Artikel bereits gelesen hat, wird hier sein Wissen nocheinmal nachprüfen können.)&lt;br /&gt;
&lt;br /&gt;
Die Renderingpipeline besteht aus zwei Teilen (und kann deshalb auch durch 2 Shadertypen, Pixel- und Fragmentshader, ersetzt werden).&lt;br /&gt;
&lt;br /&gt;
Der erste Teil, die sogenannte '''Vertex-Pipeline''' hat ihren Namen von den Ausgangsinformationen. Sie erhält die [[Vertex]]informationen und generiert daraus [[Fragment]]e.&lt;br /&gt;
Dabei müssen verschiedene Stationen durchlaufen werden. Diese wären:&lt;br /&gt;
# Multiplikation mit der [[Matrix#GL_MODELVIEW|Modelviewmatrix]] um Augenkoordinaten zu erhalten.&lt;br /&gt;
# Erstellen der Primitive und einfärben dieser. ([[glShadeModel|Flat-Shading]] Dabei [[Tesselierung|tesselieren]] (genauer: triangulieren) aller Polygone die nicht in Dreiecksform vorliegen.&lt;br /&gt;
# [[Clipping]] an benutzerdefinierten [[Clipping Plane]]s.&lt;br /&gt;
# Multiplikation mit der aktuellen Projektionsmatrix (siehe [[Matrix]]) um die aktuelle Kamerasicht zu erhalten.&lt;br /&gt;
# Clipping bezüglich der Kamera.&lt;br /&gt;
# Projektionsberechnung (Division durch w) um die eigentliche Ausgabe zu erhalten.&lt;br /&gt;
# Multiplikation mit der [[Viewport]] Matrix. (Damit erhält man den Teil der Ausgabe, der tatsächlich sichtbar sein soll. Das &amp;quot;Sichtfenster&amp;quot;.)&lt;br /&gt;
# Anpassen der Tiefenwerte.&lt;br /&gt;
# [[Backface Culling|Culling]] von nicht benötigten Polygonen.&lt;br /&gt;
# Anpassen an den [[glPolygonMode|Polygonmode]].&lt;br /&gt;
# [[Rasterisierung]] um Fragmente zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Mit den nun im [[Framebuffer]] liegenden Fragmenten werden weitere Operationen durchgeführt. Diese sind Bestandteil der sogenannten &amp;quot;Fragment Pipeline&amp;quot;.&lt;br /&gt;
Folgende Operationen werden/können durchgeführt werden:&lt;br /&gt;
# [[Texelberechnung]] und Anwenden der [[Texel]].&lt;br /&gt;
# Nebelberechung (siehe [[glFog]])&lt;br /&gt;
# [[Antialiasing]]&lt;br /&gt;
# [[Scissor Test]]&lt;br /&gt;
# [[Alpha Test]]&lt;br /&gt;
# [[Stencil Test]]&lt;br /&gt;
# [[Tiefentest]]&lt;br /&gt;
# [[Blenden]]&lt;br /&gt;
# [[Dithering]]&lt;br /&gt;
# logische Operationen (siehe [[glLogicOp]])&lt;br /&gt;
# Masking von Puffern. (Verhindern von Schreibzugriffen auf bestimmte Teile von einzelnen Puffern. siehe z.B. [[glColorMask]], [[glDepthMask]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend stehen die Bildinformationen im Framebuffer zu Verfügung und müssen nur noch durch z.B. [[SwapBuffers]] auf den Bildschirm gebracht werden.&lt;br /&gt;
&lt;br /&gt;
Soweit zum Hintergrund von OpenGL. '''[[Trampelpfade|Hier gehts zurück zu den Trampelpfaden.]]'''&lt;/div&gt;</summary>
		<author><name>Flash</name></author>	</entry>

	</feed>