<?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=Skeptiker</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=Skeptiker"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php/Spezial:Beitr%C3%A4ge/Skeptiker"/>
		<updated>2026-04-20T19:49:45Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Team&amp;diff=25452</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Team&amp;diff=25452"/>
				<updated>2012-01-11T14:36:34Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Impressum Link war tot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Vorwort =&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite befindet sich eine Auflistung der Personen, die momentan aktiv daran arbeiten, dass DGL Euch wie gewohnt im Netz mit Informationen versorgt. Bitte beachtet, dass die meisten der Personen nur einen begrenzten Vorrat an Zeit haben. Überlegt daher bitte sorgsam, an wen Ihr Euch wendet.&lt;br /&gt;
&lt;br /&gt;
Im unteren Teil dieser Seite sind die verschiedenen Bereiche von DGL und deren Betreuer aufgelistet. Bitte wendet auch an den passenden Ansprechpartner.&lt;br /&gt;
&lt;br /&gt;
Diese Seite ersetzt nicht das '''[http://www.delphigl.com/impressum.php IMPRESSUM]'''.&lt;br /&gt;
&lt;br /&gt;
= Das Team im Ganzen =&lt;br /&gt;
In diesen Abschnitt ist aufgelistet '''wer''' bei [[DelphiGL]] Verantwortung für einen Teil übernommen hat, und '''was''' genau er macht.&lt;br /&gt;
== Moderatoren ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}} width=&amp;quot;80%&amp;quot;&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Forumsname&lt;br /&gt;
!width=&amp;quot;30%&amp;quot;|Email&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;|Aufgabenbereich&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Phobeus|Phobeus]] &lt;br /&gt;
|{{eMail|Phobeus|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Technische Pflege des Wikis (Wartung/Updates)&lt;br /&gt;
*Betreuung der Hardware&lt;br /&gt;
*Freischalten von Usern für das Forum&lt;br /&gt;
*Freischalten von Usern für das Wiki&lt;br /&gt;
*''News eintragen''&lt;br /&gt;
*''allgemeine inhaltliche Kontrolle''&lt;br /&gt;
*&amp;quot;der Boss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Flash|Flash]] &lt;br /&gt;
|{{eMail|Flash|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Inhaltliche Pflege/Koordination des Wikis&lt;br /&gt;
*Community-Aktionen&lt;br /&gt;
*Tutorial Lektor&lt;br /&gt;
*DGL-Poll pflegen&lt;br /&gt;
*News eintragen&lt;br /&gt;
*allgemeine inhaltliche Kontrolle im Forum&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Frase|Frase]] &lt;br /&gt;
|{{eMail|Frase|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Technische Unterstützung für Phobeus&lt;br /&gt;
*Tutorial Lektor&lt;br /&gt;
*News eintragen&lt;br /&gt;
*allgemeine inhaltliche Kontrolle im Forum&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Delphic|Delphic]] &lt;br /&gt;
|{{eMail|delphic|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Freischalten von Usern für das Forum&lt;br /&gt;
*News eintragen&lt;br /&gt;
*allgemeine inhaltliche Kontrolle&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Flo|Flo]]&lt;br /&gt;
|{{eMail|Flo|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
*DGL-Wiki-Bot Manager&lt;br /&gt;
*Freischalten von Usern für das Wiki&lt;br /&gt;
*Tutorial Lektor&lt;br /&gt;
*News eintragen&lt;br /&gt;
*allgemeine inhaltliche Kontrolle&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:I0n0s|i0n0s]] &lt;br /&gt;
|{{eMail|i0n0s|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
* DGLSDK&lt;br /&gt;
* Freischalten von Usern für das Forum&lt;br /&gt;
* Freischalten von Usern für das Wiki &lt;br /&gt;
* Tutorial Lektor&lt;br /&gt;
* News eintragen&lt;br /&gt;
* allgemeine inhaltliche Kontrolle&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Sascha Willems|Sascha Willems]] &lt;br /&gt;
|{{eMail|webmaster|delphigl.de}}&lt;br /&gt;
|&lt;br /&gt;
*News eintragen&lt;br /&gt;
*allgemeine inhaltliche Kontrolle&lt;br /&gt;
*Freischalten von Usern für das Wiki &lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Lord_Horazont|Lord Horazont]] &lt;br /&gt;
|{{eMail|lord_horazont|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
*SVN/WebSVN Betreuung&lt;br /&gt;
*News eintragen&lt;br /&gt;
*allgemeine inhaltliche Kontrolle&lt;br /&gt;
*Freischalten von Usern für das Forum&lt;br /&gt;
*Freischalten von Usern für das Wiki&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Gruppen =&lt;br /&gt;
In diesem Teil findet ihr detailierte Informationen, wer für welchen Bereich zuständig ist.&lt;br /&gt;
== DGLSDK ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}} width=&amp;quot;80%&amp;quot;&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Forumsname&lt;br /&gt;
!width=&amp;quot;30%&amp;quot;|Email&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;|Aufgabenbereich&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:I0n0s|i0n0s]] &lt;br /&gt;
|{{eMail|i0n0s|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DGLOpenGL.pas ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}} width=&amp;quot;80%&amp;quot;&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Forumsname&lt;br /&gt;
!width=&amp;quot;30%&amp;quot;|Email&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;|Aufgabenbereich&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Sascha Willems|Sascha Willems]] &lt;br /&gt;
|{{eMail|webmaster|delphigl.de}}&lt;br /&gt;
|&lt;br /&gt;
*Weiterentwicklung, Debugging&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webseite ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}} width=&amp;quot;80%&amp;quot;&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Forumsname&lt;br /&gt;
!width=&amp;quot;30%&amp;quot;|Email&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;|Aufgabenbereich&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Phobeus|Phobeus]] &lt;br /&gt;
|{{eMail|Phobeus|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Technische Pflege der Seite (Wartung/Updates)&lt;br /&gt;
*Coding (Integrieren von Neuerungen)&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Lord_Horazont|Lord Horazont]]&lt;br /&gt;
|{{eMail|lord_horazont|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
*PHP&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Flash|Flash]] &lt;br /&gt;
|{{eMail|Flash|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*DGL-Poll pflegen&lt;br /&gt;
|-&lt;br /&gt;
|Alle Anderen &lt;br /&gt;
|(siehe oben)&lt;br /&gt;
|&lt;br /&gt;
*News&lt;br /&gt;
*Sorgen für angemessene Umgangsformen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}} width=&amp;quot;80%&amp;quot;&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Forumsname&lt;br /&gt;
!width=&amp;quot;30%&amp;quot;|Email&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;|Aufgabenbereich&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Flash|Flash]] &lt;br /&gt;
|{{eMail|Flash|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Inhaltliche Pflege des Wikis&lt;br /&gt;
*Koordinierung&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Phobeus|Phobeus]] &lt;br /&gt;
|{{eMail|Phobeus|delphigl.com}}&lt;br /&gt;
|&lt;br /&gt;
*Technische Pflege des Wikis (Wartung/Updates)&lt;br /&gt;
*Betreuung der Hardware&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:I0n0s|i0n0s]] &lt;br /&gt;
|{{eMail|i0n0s|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
*Filesektion&lt;br /&gt;
|-&lt;br /&gt;
|[[Benutzer:Lord_Horazont|Lord Horazont]]&lt;br /&gt;
|{{eMail|lord_horazont|DelphiGL.com}}&lt;br /&gt;
|&lt;br /&gt;
*Filesektion (SVN Betreuung)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Diskussion:VBO_ohne_glInterleavedArrays&amp;diff=24798</id>
		<title>Diskussion:VBO ohne glInterleavedArrays</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Diskussion:VBO_ohne_glInterleavedArrays&amp;diff=24798"/>
				<updated>2010-03-25T23:13:01Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Die Seite wurde neu angelegt: „Ich bin jetzt ein wenig verwirrt, ich hatte hier (http://delphigl.com/forum/viewtopic.php?f=2&amp;amp;t=8880) gefragt, ob VBOs die einzige Möglichkeit seien in OpenGL 3.…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ich bin jetzt ein wenig verwirrt, ich hatte hier (http://delphigl.com/forum/viewtopic.php?f=2&amp;amp;t=8880) gefragt, ob VBOs die einzige Möglichkeit seien in OpenGL 3.x geringe Geometriedaten an die Grafikkarte zu schicken, die Antwort war, dass es auch über Vertex Arrays geht. Somit wäre die Aussage das VBOs die einzige Möglichkeit sind falsch. --[[Benutzer:Skeptiker|Skeptiker]] 00:13, 26. Mär. 2010 (CET)&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Diskussion:shader_blur2&amp;diff=24382</id>
		<title>Diskussion:shader blur2</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Diskussion:shader_blur2&amp;diff=24382"/>
				<updated>2009-12-23T23:43:51Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da an dem anderen Blur Shader scheinbar seit Ewigkeiten nichtsmehr gemacht wird hab ich einfach mal diesen hier erstellt.&lt;br /&gt;
Fragen, Anregungen, Verbesserungsvorschläge? --[[Benutzer:Skeptiker|Skeptiker]] 22:25, 22. Dez. 2009 (CET)&lt;br /&gt;
:Der Shader ist sehr gut, bei meinem Vorschlag [http://www.delphigl.com/forum/viewtopic.php?f=20&amp;amp;p=76150 in diesem Thread] habe ich nämlich nicht berücksichtigt, dass die Convolution-Operation kommutativ und assoziativ ist. Der Gauss-Filter ist deshalb nämlich separierbar. Wenn man Rundungsfehler vernachlässigt spielt es beim Ergebnis keine Rolle, ob man einen 2D-Gauss anwendet oder die Operation zweimal mit einem horizontalen bzw. vertikalen 1D-Gauss durchführt. Die zweite Variante spart aber eine große Menge an Texturzugriffen. In diesem Fall 7*7=49 Zugriffe beim 2D-Gauss gegen 2*7=14 Texturzugriffe beim zweimaligen 1D-Gauss. Das macht um so mehr aus, je größer der Filter ist. Eigentlich sollte ich solche Dinge besser wissen.&amp;lt;br /&amp;gt;Ok, was zu meckern habe ich natürlich auch ;)&lt;br /&gt;
:* Du musst die Ränder der Textur in irgendeiner Form korrekt behandeln. Das kann beispielsweise dadurch geschehen das man &amp;lt;tt&amp;gt;GL_TEXTURE_WRAP_*&amp;lt;/tt&amp;gt; auf &amp;lt;tt&amp;gt;GL_CLAMP_TO_EDGE&amp;lt;/tt&amp;gt; oder &amp;lt;tt&amp;gt;GL_CLAMP_TO_BORDER&amp;lt;/tt&amp;gt; setzt. Sollte man vielleicht erwähnen.&lt;br /&gt;
:* Das Array gaussFilter sollte &amp;lt;tt&amp;gt;const&amp;lt;/tt&amp;gt; sein, ich bin mir nicht sicher ob der Shader-Compiler so schlau ist selbst zu bemerken, dass er nur einmal Speicher reservieren muss.&lt;br /&gt;
:* Ansonsten kann man, wie du schon selbst sagst, an der Fallunterscheidung natürlich noch etwas feilen, aber dann wäre der Shader wahrscheinlich nicht mehr so leicht zu lesen.&lt;br /&gt;
:--[[Benutzer:Coolcat|Coolcat]] 11:06, 23. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Sollte es nicht &amp;lt;tt&amp;gt;float(i - 3)&amp;lt;/tt&amp;gt; sein? Der Index i läuft von 0 bis 6, damit läuft i-4 von -4 bis 2. Oder habe ich gerade nen Knoten drin? --[[Benutzer:Coolcat|Coolcat]] 15:56, 23. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
:Du hast mit allem recht ;-). Ich mach mich nachher ran und füge das noch mit in die Beschreibung ein. Und jau, es sollte durchaus i - 3 und nicht i - 4 heißen ;-). --[[Benutzer:Skeptiker|Skeptiker]] 16:40, 23. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Ok, meine optimierte Variante die ich für UC übernommen habe sieht nun wie folgt aus. Ich habe die Fallunterscheidung entfernt und durch die Uniform &amp;lt;tt&amp;gt;uShift&amp;lt;/tt&amp;gt; ersetzt. Da die GPU Vektoraddition im Schlaf beherrscht sollte das die beste Lösung sein. Insbesondere ist die Texturgröße darin gleich integriert. Für einen horizontalen Filter setzt man also &amp;lt;tt&amp;gt;uShift&amp;lt;/tt&amp;gt; auf &amp;lt;tt&amp;gt;vec2(1.0/textureWidth, 0.0)&amp;lt;/tt&amp;gt;. Um bei gleicher Geschwindigkeit den Filter zu verstärken kann auch so etwas wie &amp;lt;tt&amp;gt;1.6/textureWidth&amp;lt;/tt&amp;gt; versuchen. Auf diese Weise sind natürlich auch diagonale Filter möglich. Außerdem habe ich die Gauss-Funktion (im Array) vergrößert und stärker abgeschnitten. Texel die nur zu einem 64stel in die Berechnung eingehen lohnen den Aufwand nicht wirklich.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;uniform sampler2D uScene;&lt;br /&gt;
uniform vec2 uShift;&lt;br /&gt;
&lt;br /&gt;
varying vec2 vTexCoord;&lt;br /&gt;
&lt;br /&gt;
const int gaussRadius = 11;&lt;br /&gt;
const float gaussFilter[gaussRadius] = float[gaussRadius](&lt;br /&gt;
	0.0402,0.0623,0.0877,0.1120,0.1297,0.1362,0.1297,0.1120,0.0877,0.0623,0.0402&lt;br /&gt;
);&lt;br /&gt;
 &lt;br /&gt;
void main() {&lt;br /&gt;
	vec2 texCoord = vTexCoord - float(int(gaussRadius/2)) * uShift;&lt;br /&gt;
	vec3 color = vec3(0.0, 0.0, 0.0); &lt;br /&gt;
	for (int i=0; i&amp;lt;gaussRadius; ++i) { &lt;br /&gt;
		color += gaussFilter[i] * texture2D(uScene, texCoord).xyz;&lt;br /&gt;
		texCoord += uShift;&lt;br /&gt;
	}&lt;br /&gt;
	gl_FragColor = vec4(color,1.0);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
: --[[Benutzer:Coolcat|Coolcat]] 19:18, 23. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
:Sieht gut aus, habs für mich auch direkt mal so übernommen. Wäre vermutlich auch Sinnvoll, wenn du die Version mit in den Artikel schreibst, damit es nicht auf der Diskussionsseite untergeht (oder den alten Shader gleich komplett ersetzt - wie auch immer es sinnvoller ist). --[[Benutzer:Skeptiker|Skeptiker]] 00:43, 24. Dez. 2009 (CET)&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=shader_blur2&amp;diff=24381</id>
		<title>shader blur2</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_blur2&amp;diff=24381"/>
				<updated>2009-12-23T23:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Verhalten an Rändern eingefügt, Array konstant gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Blur=&lt;br /&gt;
Zurück zur [[Shadersammlung]]&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
!width=60%|Beschreibung&lt;br /&gt;
!width=20%|Autor&lt;br /&gt;
!width=20%|Version&lt;br /&gt;
|-&lt;br /&gt;
|Post-Processing-Shader zum verwischen der Szene.&lt;br /&gt;
|Skeptiker&lt;br /&gt;
|1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bilder==&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:Shader_blur_seerose.png|framed|Vorher]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Shader_blur_seerose_blured.png|framed|Nachher]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Shader verwischt die Szene.&lt;br /&gt;
&lt;br /&gt;
''textureWidth'' gibt die Breite der Textur an.&amp;lt;br&amp;gt;&lt;br /&gt;
''textureHeight'' gibt die Höhe der Textur an.&amp;lt;br&amp;gt;&lt;br /&gt;
''horizontal'' true wenn horizontal verwischt werden soll, false wenn vertikal verwischt werden soll.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''texture0'' muss in der Regel nicht explizit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Der Shader wurde bewusst einfach gehalten, mit einigen kniffen kann man hier mit Sicherheit mehr Performance rausholen.&lt;br /&gt;
&lt;br /&gt;
Da der Shader für jedes Texel der Textur die unmittelbaren nachbar Texel abtastet muss das Verhalten an den Rändern der Textur definiert werden, hier empfiehlt sich die Einstellung GL_CLAMP_TO_EDGE oder GL_CLAMP_TO_BORDER.&lt;br /&gt;
&lt;br /&gt;
==Besondere Vorraussetzungen==&lt;br /&gt;
Es handelt sich um einen Post-Processing-Shader, die Szene muss daher vorher in eine Textur gerendert werden. Anschließend muss diese Textur gebunden werden und als Fullscreen-Quad mit diesem Shader gerendert werden. Hier bietet sich ein FrameBufferObject an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
Vertex Shader&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
#version 120&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
&lt;br /&gt;
	gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;&lt;br /&gt;
	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fragment Shader&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
#version 120&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D texture0;&lt;br /&gt;
uniform int textureWidth;&lt;br /&gt;
uniform int textureHeight;&lt;br /&gt;
uniform bool horizontal;&lt;br /&gt;
&lt;br /&gt;
const float gaussFilter[7] = float[7](&lt;br /&gt;
	0.015625,&lt;br /&gt;
	0.09375,&lt;br /&gt;
	0.234375,&lt;br /&gt;
	0.3125,&lt;br /&gt;
	0.234375,&lt;br /&gt;
	0.09375,&lt;br /&gt;
	0.015625&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
&lt;br /&gt;
	vec4 color = vec4(0.0, 0.0, 0.0, 0.0);&lt;br /&gt;
	&lt;br /&gt;
	for (int i = 0; i &amp;lt; 7; i++) {&lt;br /&gt;
		&lt;br /&gt;
		vec2 texCoord;&lt;br /&gt;
		&lt;br /&gt;
		if (horizontal) {&lt;br /&gt;
			&lt;br /&gt;
			texCoord = vec2(gl_TexCoord[0].x + float(i - 3) / float(textureWidth), gl_TexCoord[0].y);&lt;br /&gt;
		} else {&lt;br /&gt;
			&lt;br /&gt;
			texCoord = vec2(gl_TexCoord[0].x, gl_TexCoord[0].y + float(i - 3) / float(textureHeight));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		color += texture2D(texture0, texCoord) * gaussFilter[i];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	gl_FragColor = color;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=shader_blur2&amp;diff=24370</id>
		<title>shader blur2</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_blur2&amp;diff=24370"/>
				<updated>2009-12-23T15:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Blur=&lt;br /&gt;
Zurück zur [[Shadersammlung]]&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
!width=60%|Beschreibung&lt;br /&gt;
!width=20%|Autor&lt;br /&gt;
!width=20%|Version&lt;br /&gt;
|-&lt;br /&gt;
|Post-Processing-Shader zum verwischen der Szene.&lt;br /&gt;
|Skeptiker&lt;br /&gt;
|1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bilder==&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:Shader_blur_seerose.png|framed|Vorher]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Shader_blur_seerose_blured.png|framed|Nachher]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Shader verwischt die Szene.&lt;br /&gt;
&lt;br /&gt;
''textureWidth'' gibt die Breite der Textur an.&amp;lt;br&amp;gt;&lt;br /&gt;
''textureHeight'' gibt die Höhe der Textur an.&amp;lt;br&amp;gt;&lt;br /&gt;
''horizontal'' true wenn horizontal verwischt werden soll, false wenn vertikal verwischt werden soll.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''texture0'' muss in der Regel nicht explizit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Der Shader wurde bewusst einfach gehalten, mit einigen kniffen kann man hier mit Sicherheit mehr Performance rausholen.&lt;br /&gt;
&lt;br /&gt;
==Besondere Vorraussetzungen==&lt;br /&gt;
Es handelt sich um einen Post-Processing-Shader, die Szene muss daher vorher in eine Textur gerendert werden. Anschließend muss diese Textur gebunden werden und als Fullscreen-Quad mit diesem Shader gerendert werden. Hier bietet sich ein FrameBufferObject an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
Vertex Shader&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
#version 120&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
&lt;br /&gt;
	gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;&lt;br /&gt;
	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fragment Shader&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
#version 120&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D texture0;&lt;br /&gt;
uniform int textureWidth;&lt;br /&gt;
uniform int textureHeight;&lt;br /&gt;
uniform bool horizontal;&lt;br /&gt;
&lt;br /&gt;
float gaussFilter[7] = float[7](&lt;br /&gt;
	0.015625,&lt;br /&gt;
	0.09375,&lt;br /&gt;
	0.234375,&lt;br /&gt;
	0.3125,&lt;br /&gt;
	0.234375,&lt;br /&gt;
	0.09375,&lt;br /&gt;
	0.015625&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
&lt;br /&gt;
	vec4 color = vec4(0.0, 0.0, 0.0, 0.0);&lt;br /&gt;
	&lt;br /&gt;
	for (int i = 0; i &amp;lt; 7; i++) {&lt;br /&gt;
		&lt;br /&gt;
		vec2 texCoord;&lt;br /&gt;
		&lt;br /&gt;
		if (horizontal) {&lt;br /&gt;
			&lt;br /&gt;
			texCoord = vec2(gl_TexCoord[0].x + float(i - 3) / float(textureWidth), gl_TexCoord[0].y);&lt;br /&gt;
		} else {&lt;br /&gt;
			&lt;br /&gt;
			texCoord = vec2(gl_TexCoord[0].x, gl_TexCoord[0].y + float(i - 3) / float(textureHeight));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		color += texture2D(texture0, texCoord) * gaussFilter[i];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	gl_FragColor = color;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Diskussion:shader_blur2&amp;diff=24369</id>
		<title>Diskussion:shader blur2</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Diskussion:shader_blur2&amp;diff=24369"/>
				<updated>2009-12-23T15:40:53Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da an dem anderen Blur Shader scheinbar seit Ewigkeiten nichtsmehr gemacht wird hab ich einfach mal diesen hier erstellt.&lt;br /&gt;
Fragen, Anregungen, Verbesserungsvorschläge? --[[Benutzer:Skeptiker|Skeptiker]] 22:25, 22. Dez. 2009 (CET)&lt;br /&gt;
:Der Shader ist sehr gut, bei meinem Vorschlag [http://www.delphigl.com/forum/viewtopic.php?f=20&amp;amp;p=76150 in diesem Thread] habe ich nämlich nicht berücksichtigt, dass die Convolution-Operation kommutativ und assoziativ ist. Der Gauss-Filter ist deshalb nämlich separierbar. Wenn man Rundungsfehler vernachlässigt spielt es beim Ergebnis keine Rolle, ob man einen 2D-Gauss anwendet oder die Operation zweimal mit einem horizontalen bzw. vertikalen 1D-Gauss durchführt. Die zweite Variante spart aber eine große Menge an Texturzugriffen. In diesem Fall 7*7=49 Zugriffe beim 2D-Gauss gegen 2*7=14 Texturzugriffe beim zweimaligen 1D-Gauss. Das macht um so mehr aus, je größer der Filter ist. Eigentlich sollte ich solche Dinge besser wissen.&amp;lt;br /&amp;gt;Ok, was zu meckern habe ich natürlich auch ;)&lt;br /&gt;
:* Du musst die Ränder der Textur in irgendeiner Form korrekt behandeln. Das kann beispielsweise dadurch geschehen das man &amp;lt;tt&amp;gt;GL_TEXTURE_WRAP_*&amp;lt;/tt&amp;gt; auf &amp;lt;tt&amp;gt;GL_CLAMP_TO_EDGE&amp;lt;/tt&amp;gt; oder &amp;lt;tt&amp;gt;GL_CLAMP_TO_BORDER&amp;lt;/tt&amp;gt; setzt. Sollte man vielleicht erwähnen.&lt;br /&gt;
:* Das Array gaussFilter sollte &amp;lt;tt&amp;gt;const&amp;lt;/tt&amp;gt; sein, ich bin mir nicht sicher ob der Shader-Compiler so schlau ist selbst zu bemerken, dass er nur einmal Speicher reservieren muss.&lt;br /&gt;
:* Ansonsten kann man, wie du schon selbst sagst, an der Fallunterscheidung natürlich noch etwas feilen, aber dann wäre der Shader wahrscheinlich nicht mehr so leicht zu lesen.&lt;br /&gt;
:--[[Benutzer:Coolcat|Coolcat]] 11:06, 23. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Sollte es nicht &amp;lt;tt&amp;gt;float(i - 3)&amp;lt;/tt&amp;gt; sein? Der Index i läuft von 0 bis 6, damit läuft i-4 von -4 bis 2. Oder habe ich gerade nen Knoten drin? --[[Benutzer:Coolcat|Coolcat]] 15:56, 23. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
:Du hast mit allem recht ;-). Ich mach mich nachher ran und füge das noch mit in die Beschreibung ein. Und jau, es sollte durchaus i - 3 und nicht i - 4 heißen ;-). --[[Benutzer:Skeptiker|Skeptiker]] 16:40, 23. Dez. 2009 (CET)&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Diskussion:shader_blur2&amp;diff=24365</id>
		<title>Diskussion:shader blur2</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Diskussion:shader_blur2&amp;diff=24365"/>
				<updated>2009-12-22T21:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Die Seite wurde neu angelegt: „Da an dem anderen Blur Shader scheinbar seit Ewigkeiten nichtsmehr gemacht wird hab ich einfach mal diesen hier erstellt. Fragen, Anregungen, Verbesserungsvorschl…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Da an dem anderen Blur Shader scheinbar seit Ewigkeiten nichtsmehr gemacht wird hab ich einfach mal diesen hier erstellt.&lt;br /&gt;
Fragen, Anregungen, Verbesserungsvorschläge? --[[Benutzer:Skeptiker|Skeptiker]] 22:25, 22. Dez. 2009 (CET)&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=shader_blur2&amp;diff=24364</id>
		<title>shader blur2</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_blur2&amp;diff=24364"/>
				<updated>2009-12-22T21:24:03Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Die Seite wurde neu angelegt: „=Blur= Zurück zur Shadersammlung {|{{Prettytable_B1}} width=100% !width=60%|Beschreibung !width=20%|Autor !width=20%|Version |- |Post-Processing-Shader zum v…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Blur=&lt;br /&gt;
Zurück zur [[Shadersammlung]]&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
!width=60%|Beschreibung&lt;br /&gt;
!width=20%|Autor&lt;br /&gt;
!width=20%|Version&lt;br /&gt;
|-&lt;br /&gt;
|Post-Processing-Shader zum verwischen der Szene.&lt;br /&gt;
|Skeptiker&lt;br /&gt;
|1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bilder==&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:Shader_blur_seerose.png|framed|Vorher]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Shader_blur_seerose_blured.png|framed|Nachher]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Shader verwischt die Szene.&lt;br /&gt;
&lt;br /&gt;
''textureWidth'' gibt die Breite der Textur an.&amp;lt;br&amp;gt;&lt;br /&gt;
''textureHeight'' gibt die Höhe der Textur an.&amp;lt;br&amp;gt;&lt;br /&gt;
''horizontal'' true wenn horizontal verwischt werden soll, false wenn vertikal verwischt werden soll.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''texture0'' muss in der Regel nicht explizit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Der Shader wurde bewusst einfach gehalten, mit einigen kniffen kann man hier mit Sicherheit mehr Performance rausholen.&lt;br /&gt;
&lt;br /&gt;
==Besondere Vorraussetzungen==&lt;br /&gt;
Es handelt sich um einen Post-Processing-Shader, die Szene muss daher vorher in eine Textur gerendert werden. Anschließend muss diese Textur gebunden werden und als Fullscreen-Quad mit diesem Shader gerendert werden. Hier bietet sich ein FrameBufferObject an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
Vertex Shader&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
#version 120&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
&lt;br /&gt;
	gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;&lt;br /&gt;
	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fragment Shader&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
#version 120&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D texture0;&lt;br /&gt;
uniform int textureWidth;&lt;br /&gt;
uniform int textureHeight;&lt;br /&gt;
uniform bool horizontal;&lt;br /&gt;
&lt;br /&gt;
float gaussFilter[7] = float[7](&lt;br /&gt;
	0.015625,&lt;br /&gt;
	0.09375,&lt;br /&gt;
	0.234375,&lt;br /&gt;
	0.3125,&lt;br /&gt;
	0.234375,&lt;br /&gt;
	0.09375,&lt;br /&gt;
	0.015625&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
&lt;br /&gt;
	vec4 color = vec4(0.0, 0.0, 0.0, 0.0);&lt;br /&gt;
	&lt;br /&gt;
	for (int i = 0; i &amp;lt; 7; i++) {&lt;br /&gt;
		&lt;br /&gt;
		vec2 texCoord;&lt;br /&gt;
		&lt;br /&gt;
		if (horizontal) {&lt;br /&gt;
			&lt;br /&gt;
			texCoord = vec2(gl_TexCoord[0].x + float(i - 4) / float(textureWidth), gl_TexCoord[0].y);&lt;br /&gt;
		} else {&lt;br /&gt;
			&lt;br /&gt;
			texCoord = vec2(gl_TexCoord[0].x, gl_TexCoord[0].y + float(i - 4) / float(textureHeight));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		color += texture2D(texture0, texCoord) * gaussFilter[i];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	gl_FragColor = color;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Shader_blur_seerose_blured.png&amp;diff=24363</id>
		<title>Datei:Shader blur seerose blured.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Shader_blur_seerose_blured.png&amp;diff=24363"/>
				<updated>2009-12-22T21:23:37Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Zeigt eine verwischte Seerose.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zeigt eine verwischte Seerose.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Shader_blur_seerose.png&amp;diff=24362</id>
		<title>Datei:Shader blur seerose.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Shader_blur_seerose.png&amp;diff=24362"/>
				<updated>2009-12-22T21:22:28Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Zeigt eine nicht verwischte Seerose.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zeigt eine nicht verwischte Seerose.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Kugel&amp;diff=23844</id>
		<title>Kugel</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Kugel&amp;diff=23844"/>
				<updated>2009-07-12T20:13:00Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Link korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variante 1==&lt;br /&gt;
Der nachfolgende Code ist ein Port von [http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/sphere_cylinder/index.html http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/sphere_cylinder/index.html]. &lt;br /&gt;
&lt;br /&gt;
Neben den Vertexpositionen werden die Normalen und Texturkoordinaten berechnet.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|TVector3f ist ein einfaches Feld mit 3 Floats. (array[0..2] of float)}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;procedure CreateSphere(c: TVector3f; r: Single; n: Integer);&lt;br /&gt;
const&lt;br /&gt;
  TWOPI = PI*2;&lt;br /&gt;
  PID2 = PI/2;&lt;br /&gt;
var&lt;br /&gt;
  i,j: Integer;&lt;br /&gt;
  theta1,theta2,theta3: Single;&lt;br /&gt;
  e,p:TVector3f;&lt;br /&gt;
begin&lt;br /&gt;
  if (r &amp;lt; 0) then r := -r;&lt;br /&gt;
  if (n &amp;lt; 0) then n := -n;&lt;br /&gt;
  if (n &amp;lt; 4) or (r &amp;lt;= 0) then&lt;br /&gt;
  begin&lt;br /&gt;
    glBegin(GL_POINTS);&lt;br /&gt;
      glVertex3f(c[0],c[1],c[2]);&lt;br /&gt;
    glEnd;&lt;br /&gt;
    exit;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  for j:=0 to n div 2 do&lt;br /&gt;
  begin&lt;br /&gt;
    theta1 := j * TWOPI / n - PID2;&lt;br /&gt;
    theta2 := (j + 1) * TWOPI / n - PID2;&lt;br /&gt;
&lt;br /&gt;
    glBegin(GL_QUAD_STRIP);&lt;br /&gt;
    for i:=0 to n do&lt;br /&gt;
    begin&lt;br /&gt;
      theta3 := i * TWOPI / n;&lt;br /&gt;
&lt;br /&gt;
      e[0] := cos(theta2) * cos(theta3);&lt;br /&gt;
      e[1] := sin(theta2);&lt;br /&gt;
      e[2] := cos(theta2) * sin(theta3);&lt;br /&gt;
      p[0] := c[0] + r * e[0];&lt;br /&gt;
      p[1] := c[1] + r * e[1];&lt;br /&gt;
      p[2] := c[2] + r * e[2];&lt;br /&gt;
&lt;br /&gt;
      glNormal3f(e[0],e[1],e[2]);&lt;br /&gt;
      glTexCoord2f(i/n,2*(j+1)/n);&lt;br /&gt;
      glVertex3f(p[0],p[1],p[2]);&lt;br /&gt;
&lt;br /&gt;
      e[0] := cos(theta1) * cos(theta3);&lt;br /&gt;
      e[1] := sin(theta1);&lt;br /&gt;
      e[2] := cos(theta1) * sin(theta3);&lt;br /&gt;
      p[0] := c[0] + r * e[0];&lt;br /&gt;
      p[1] := c[1] + r * e[1];&lt;br /&gt;
      p[2] := c[2] + r * e[2];&lt;br /&gt;
&lt;br /&gt;
      glNormal3f(e[0],e[1],e[2]);&lt;br /&gt;
      glTexCoord2f(i/n,2*j/n);&lt;br /&gt;
      glVertex3f(p[0],p[1],p[2]);&lt;br /&gt;
    end;&lt;br /&gt;
   glEnd;&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variante 2==&lt;br /&gt;
'''Der nachfolgende Code ist selbst geschrieben (MatReno)'''&lt;br /&gt;
&lt;br /&gt;
Er ermöglicht das Zeichnen einer Kugel, oder beliebigen Halbkugel, mit&lt;br /&gt;
Texturkoordinaten und Normalen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Benötigte Typen===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
TVector2f : Array [0..1] of Single;&lt;br /&gt;
TVector3f : Array [0..2] of Single;&lt;br /&gt;
TVector4i : Array [0..3] of Integer;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Zusätzlich benötigte Methoden===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Function VectorAdd(const vector: TVector3f; Value: Single): TVector3f; &lt;br /&gt;
Begin&lt;br /&gt;
  Result[0] := vector[0] + Value;&lt;br /&gt;
  Result[1] := vector[1] + Value;&lt;br /&gt;
  Result[2] := vector[2] + Value;&lt;br /&gt;
End;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Function VectorMult(const vector: TVector3f; Value: Single): TVector3f;&lt;br /&gt;
Begin&lt;br /&gt;
  Result[0] := vector[0] * Value;&lt;br /&gt;
  Result[1] := vector[1] * Value;&lt;br /&gt;
  Result[2] := vector[2] * Value;&lt;br /&gt;
End;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Function ToVector2f(x, y: Single): TVector2f;&lt;br /&gt;
Begin&lt;br /&gt;
  Result[0] := x;&lt;br /&gt;
  Result[1] := y;&lt;br /&gt;
End;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Function ToVector3f(x, y, z: Single): TVector3f;&lt;br /&gt;
Begin&lt;br /&gt;
  Result[0] := x;&lt;br /&gt;
  Result[1] := y;&lt;br /&gt;
  Result[2] := z;&lt;br /&gt;
End;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Function ToVector4i(x, y, z, w: Integer): TVector4i;&lt;br /&gt;
Begin&lt;br /&gt;
  Result[0] := x;&lt;br /&gt;
  Result[1] := y;&lt;br /&gt;
  Result[2] := z;&lt;br /&gt;
  Result[3] := w;&lt;br /&gt;
End;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Parametererklärung und Prozedur===&lt;br /&gt;
&lt;br /&gt;
radius: Radius der Kugel in OGL-Units&lt;br /&gt;
 &lt;br /&gt;
n: Genauigkeit&lt;br /&gt;
&lt;br /&gt;
typ: Art (siehe Procedure Kommentar)&lt;br /&gt;
&lt;br /&gt;
inverted:&lt;br /&gt;
&lt;br /&gt;
= false -&amp;gt; FrontFace aussen&lt;br /&gt;
&lt;br /&gt;
= true  -&amp;gt; FrontFace innen&lt;br /&gt;
&lt;br /&gt;
voffset: Vektor (X, Y, Z) um den die Kugel verschoben wird&lt;br /&gt;
&lt;br /&gt;
toffset: Vektor (U, V) um den die Textur verschoben wird&lt;br /&gt;
&lt;br /&gt;
tscale: Textur-skalierung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Procedure DrawSphereObject(radius: Single; n: word; &lt;br /&gt;
                           typ: byte; inverted: boolean; &lt;br /&gt;
                           voffset: TVector3f; toffset, tscale: TVector2f);&lt;br /&gt;
Var alpha   : TVector2f;  // i*beta around x axis&lt;br /&gt;
    SinAlpha: TVector2f;  // sin(alpha)&lt;br /&gt;
    CosAlpha: TVector2f;  // cos(alpha)&lt;br /&gt;
    beta    : Single;     // DegToRad(360° / n)&lt;br /&gt;
    delta   : Single;     // j*beta around z axis&lt;br /&gt;
    SinDelta: Single;     // sin(delta)&lt;br /&gt;
    CosDelta: Single;     // cos(delta)&lt;br /&gt;
    h, q    : word;       // half, quarter&lt;br /&gt;
    v       : TVector3f;  // vector for normal and vertex&lt;br /&gt;
    border  : TVector4i;  // for-loop borders&lt;br /&gt;
    i, j    : Integer;&lt;br /&gt;
    k       : Byte;&lt;br /&gt;
Begin&lt;br /&gt;
  radius := abs(radius);&lt;br /&gt;
&lt;br /&gt;
  If (n &amp;lt; 4) Or (Odd(n)) Or (radius = 0) Then Exit;&lt;br /&gt;
&lt;br /&gt;
  h := n div 2;&lt;br /&gt;
  q := n div 4;&lt;br /&gt;
  If (Odd(h)) Then inc(q);&lt;br /&gt;
&lt;br /&gt;
  Case typ of&lt;br /&gt;
    0: border := ToVector4i(  -h,    h-1, -q, q);  // sphere&lt;br /&gt;
    1: border := ToVector4i(  -h,    h-1, -q, 0);  // hemisphere x-&lt;br /&gt;
    2: border := ToVector4i(  -h,    h-1,  0, q);  // hemisphere x+&lt;br /&gt;
    3: border := ToVector4i(-h-q, -h+q-1, -q, q);  // hemisphere y-&lt;br /&gt;
    4: border := ToVector4i(  -q,    q-1, -q, q);  // hemisphere y+&lt;br /&gt;
    5: border := ToVector4i(  -h,     -1, -q, q);  // hemisphere z-&lt;br /&gt;
    6: border := ToVector4i(   0,    h-1, -q, q);  // hemisphere z+&lt;br /&gt;
    else Exit;&lt;br /&gt;
  End;&lt;br /&gt;
&lt;br /&gt;
  beta := 2*PI / n;&lt;br /&gt;
&lt;br /&gt;
    For i:=border[0] to border[1] do Begin&lt;br /&gt;
      alpha := ToVector2f(i*beta, (i+1)*beta);&lt;br /&gt;
&lt;br /&gt;
      SinAlpha := ToVector2f(sin(alpha[0]), sin(alpha[1]));&lt;br /&gt;
      CosAlpha := ToVector2f(cos(alpha[0]), cos(alpha[1]));&lt;br /&gt;
&lt;br /&gt;
      glBegin(GL_TRIANGLE_STRIP);&lt;br /&gt;
      For j:=border[2] to border[3] do Begin&lt;br /&gt;
        delta := j*beta;&lt;br /&gt;
&lt;br /&gt;
        SinDelta := sin(delta);&lt;br /&gt;
        CosDelta := cos(delta);&lt;br /&gt;
&lt;br /&gt;
        If (inverted) Then&lt;br /&gt;
          For k:=1 downto 0 do Begin&lt;br /&gt;
            v := ToVector3f(-SinDelta, -CosAlpha[k]*CosDelta, -SinAlpha[k]*CosDelta);&lt;br /&gt;
            glNormal3fv(@v);&lt;br /&gt;
            v := VectorAdd(VectorMult(v, -radius), voffset);&lt;br /&gt;
            glTexCoord2f((j/n + 0.25)*tscale[0] + toffset[0], ((i+k)/n)*tscale[1] + toffset[1]);&lt;br /&gt;
            glvertex3fv(@v);&lt;br /&gt;
          End;&lt;br /&gt;
&lt;br /&gt;
        If (not inverted) Then&lt;br /&gt;
          For k:=0 to 1 do Begin&lt;br /&gt;
            v := ToVector3f(SinDelta, CosAlpha[k]*CosDelta, SinAlpha[k]*CosDelta);&lt;br /&gt;
            glNormal3fv(@v);&lt;br /&gt;
            v := VectorAdd(VectorMult(v,  radius), voffset);&lt;br /&gt;
            glTexCoord2f((j/n + 0.25)*tscale[0] + toffset[0], ((i+k)/n)*tscale[1] + toffset[1]);&lt;br /&gt;
            glvertex3fv(@v);&lt;br /&gt;
          End&lt;br /&gt;
      End;&lt;br /&gt;
      glEnd;&lt;br /&gt;
   End;&lt;br /&gt;
End;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Beispielaufruf===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Const&lt;br /&gt;
ONE_VECTOR_2f  : TVector2f = (1, 1);&lt;br /&gt;
NULL_VECTOR_2f : TVector2f = (0, 0);&lt;br /&gt;
NULL_VECTOR_3f : TVector3f = (0, 0, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um eine Kugel zu rendern muss man z.B. folgendes aufrufen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
DrawSphereObject(5, &lt;br /&gt;
                 32, &lt;br /&gt;
                 0, &lt;br /&gt;
                 false, &lt;br /&gt;
                 NULL_VECTOR_3f, &lt;br /&gt;
                 NULL_VECTOR_2f, &lt;br /&gt;
                 ONE_VECTOR_2f);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternative ==&lt;br /&gt;
&lt;br /&gt;
Als Alternative zu selbstgeschrieben Code bieten sich die [[Quadrik|Quadriken]] an, mit denen sich mit verhältnissmäßig wenigen Aufrufen verschiedene Formen erzeugen lassen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Technik_oder_Algorithmus]] [[Kategorie:Anleitung]]&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Diskussion:gluQuadricOrientation&amp;diff=23676</id>
		<title>Diskussion:gluQuadricOrientation</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Diskussion:gluQuadricOrientation&amp;diff=23676"/>
				<updated>2009-05-24T14:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sind die Bilder okay? Kann der Hinweis auf Verdeutlichung durch Bilder entfernt werden?&lt;br /&gt;
--[[Benutzer:Skeptiker|Skeptiker]] 12:23, 24. Mai 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ich hätte da ne andere Idee.&lt;br /&gt;
Mach eine Quadric die mittels einer Clipping Plane aufgeschnitten ist. So dass man innen und Außenseite gleichzeitig sehen kann. (wie bei [[glClipPlane#Beispiel]])&lt;br /&gt;
Dann kann man sehen, was der Unterschied ist.&lt;br /&gt;
Manche wollen je eine Kugel auch von innen nutzen. z.B. als Skydome.&lt;br /&gt;
Auch interessant ist die Frage, ob sich Backfaceculling auf das Ergebnis dann auswirkt.&lt;br /&gt;
Vieleicht einen 4er Satz machen. 2x mit BFCulling und 2x ohne. Natürlich nur, wenn es einen Einfluss hat. --[[Benutzer:Flash|Flash]] 13:38, 24. Mai 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ich hab mal versucht deine Vorschläge umzusetzen, ist wohl leider nicht das schönste Beispiel, aber es sollte seinen Zweck erfüllen. Für Verbesserungsvorschläge bin ich natürlich offen :). Wieder die Frage: Reichen die Bilde um den Hinweis zu entfernen? --[[Benutzer:Skeptiker|Skeptiker]] 14:46, 24. Mai 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=gluQuadricOrientation&amp;diff=23675</id>
		<title>gluQuadricOrientation</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=gluQuadricOrientation&amp;diff=23675"/>
				<updated>2009-05-24T14:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bildwunsch|Bild welches den Unterschied verdeutlicht.}}&lt;br /&gt;
= gluQuadricOrientation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''gluQuadricOrientation''' - gibt an, wie die [[Normalen]] für ein Quadrik-Objekte berechnet werden sollen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' gluQuadricOrientation(''quadObject'': PGLUquadric; ''orientation'': TGLEnum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
[[Bild:Gluquadricorientation_outside.png|right|thumb|300px|Vergleich der Kugeln mit deaktiviertem (links) und aktiviertem (rechts) Backface Culling. Die Kugeln wurden durch aktivieren einer benutzerdefinierten Clippingplane aufgeschnitten. Die Orientierung wurde auf GLU_OUTSIDE gesetzt.]]&lt;br /&gt;
[[Bild:Gluquadricorientation_inside.png|right|thumb|300px|Vergleich der Kugeln mit deaktiviertem (links) und aktiviertem (rechts) Backface Culling. Die Kugeln wurden durch aktivieren einer benutzerdefinierten Clippingplane aufgeschnitten. Die Orientierung wurde auf GLU_INSIDE gesetzt.]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''quadObject''&lt;br /&gt;
| Gibt das Quadrik-Objekt an (erstellt mit [[gluNewQuadric]])&lt;br /&gt;
|-&lt;br /&gt;
! ''orientation''&lt;br /&gt;
| Gibt an in welche Richtung die Normalen der Quadric zeigen sollen. &amp;lt;br&amp;gt;&lt;br /&gt;
Akzeptiert werden '''GLU_OUTSIDE''' und '''GLU_INSIDE'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
&lt;br /&gt;
'''gluQuadricOrientation''' gibt an, in welche Richtung die Normalen des [[Quadrik]]-Objekt ''quadObject'' zeigen sollen. ''orientation'' kann dabei folgende Werte zugewiesen bekommen:&lt;br /&gt;
&lt;br /&gt;
'''GLU_OUTSIDE'''&lt;br /&gt;
:Die Normalen zeigen nach aussen. (Weg vom inneren)&lt;br /&gt;
&lt;br /&gt;
'''GLU_INSIDE'''&lt;br /&gt;
:Die Normalen zeigen nach innen.&lt;br /&gt;
&lt;br /&gt;
Standard ist '''GLU_OUTSIDE'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Was Innen- und was Aussenseite ist, hängt vom übergebenen Quadrik-Objekt ab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[gluNewQuadric]], [[gluQuadricDrawStyle]], [[gluQuadricNormals]], [[gluQuadricTexture]]&lt;br /&gt;
&lt;br /&gt;
Hintergrundwissen: [[Normalen]], [[Quadrik]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GLU|QuadricOrientation]]&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Gluquadricorientation_inside.png&amp;diff=23674</id>
		<title>Datei:Gluquadricorientation inside.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Gluquadricorientation_inside.png&amp;diff=23674"/>
				<updated>2009-05-24T14:39:15Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: gluQuadricOrientation auf GL_INSIDE. Vergleich Backfaceculling Aktiv/Inaktiv.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gluQuadricOrientation auf GL_INSIDE. Vergleich Backfaceculling Aktiv/Inaktiv.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Gluquadricorientation_outside.png&amp;diff=23673</id>
		<title>Datei:Gluquadricorientation outside.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Gluquadricorientation_outside.png&amp;diff=23673"/>
				<updated>2009-05-24T14:39:13Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: gluQuadricOrientation auf GL_OUTSIDE. Vergleich Backfaceculling Aktiv/Inaktiv.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gluQuadricOrientation auf GL_OUTSIDE. Vergleich Backfaceculling Aktiv/Inaktiv.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=gluQuadricTexture&amp;diff=23670</id>
		<title>gluQuadricTexture</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=gluQuadricTexture&amp;diff=23670"/>
				<updated>2009-05-24T12:35:33Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= gluQuadricTexture =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
[[Bild:Glquadrictexture_false.png|right|thumb|300px|Keine Berechnung der Texturkoordinaten durch gluQuadricTexture.]]&lt;br /&gt;
[[Bild:Glquadrictexture_true.png|right|thumb|300px|Berechnung der Texturkoordinaten durch gluQuadricTexture.]]&lt;br /&gt;
&lt;br /&gt;
'''gluQuadricTexture''' - gibt an, ob für ein Quadrik-Objekte Texturkoordinaten erzeugt werden sollen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' gluQuadricTexture(''quadObject'': PGLUquadric; ''textureCoords'': TGLboolean);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''quadObject''&lt;br /&gt;
| Gibt das Quadrik-Objekt an (erstellt mit [[gluNewQuadric]])&lt;br /&gt;
|-&lt;br /&gt;
! ''textureCoords''&lt;br /&gt;
| Gibt an ob Texturkoordinaten erstellt werden sollen oder nicht.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''gluQuadricTexture''' bestimmt, ob für das [[Quadrik]]-Objekt ''quadObject'' Texturekoordinaten generiert werden sollen oder nicht.&lt;br /&gt;
&lt;br /&gt;
Wenn ''textureCoords'' '''GL_TRUE''' übergeben wurde, werden Texturkoordinaten generiert. Wenn '''GL_FALSE''' übergeben wurde entsprechend nicht.&lt;br /&gt;
&lt;br /&gt;
Standardwert für ''textureCoords'' ist '''GL_FALSE'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Die Art und Weise wie die Texturkoordinaten erzeugt werden, hängt von der übergebenen Quadric ab.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[gluNewQuadric]], [[gluQuadricDrawStyle]], [[gluQuadricNormals]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GLU|QuadricTexture]]&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Glquadrictexture_true.png&amp;diff=23669</id>
		<title>Datei:Glquadrictexture true.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Glquadrictexture_true.png&amp;diff=23669"/>
				<updated>2009-05-24T12:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: gluQuadricTexture auf GL_TRUE, Berechnung der Texturkoordinaten.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gluQuadricTexture auf GL_TRUE, Berechnung der Texturkoordinaten.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Glquadrictexture_false.png&amp;diff=23668</id>
		<title>Datei:Glquadrictexture false.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Glquadrictexture_false.png&amp;diff=23668"/>
				<updated>2009-05-24T12:30:49Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: gluQuadricTexture auf GL_FALSE, keine Berechnung der Texturkoordinaten.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gluQuadricTexture auf GL_FALSE, keine Berechnung der Texturkoordinaten.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Diskussion:gluQuadricOrientation&amp;diff=23667</id>
		<title>Diskussion:gluQuadricOrientation</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Diskussion:gluQuadricOrientation&amp;diff=23667"/>
				<updated>2009-05-24T12:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Die Seite wurde neu angelegt: „Sind die Bilder okay? Kann der Hinweis auf Verdeutlichung durch Bilder entfernt werden? --~~~~“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sind die Bilder okay? Kann der Hinweis auf Verdeutlichung durch Bilder entfernt werden?&lt;br /&gt;
--[[Benutzer:Skeptiker|Skeptiker]] 12:23, 24. Mai 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=gluQuadricOrientation&amp;diff=23666</id>
		<title>gluQuadricOrientation</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=gluQuadricOrientation&amp;diff=23666"/>
				<updated>2009-05-24T12:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bildwunsch|Bild welches den Unterschied verdeutlicht.}}&lt;br /&gt;
= gluQuadricOrientation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''gluQuadricOrientation''' - gibt an, wie die [[Normalen]] für ein Quadrik-Objekte berechnet werden sollen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' gluQuadricOrientation(''quadObject'': PGLUquadric; ''orientation'': TGLEnum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
[[Bild:Glu_inside.png|right|thumb|300px|Lichtverhalten durch setzen von GLU_INSIDE, die Normalen zeigen zum Mittelpunkt.]]&lt;br /&gt;
[[Bild:Glu_outside.png|right|thumb|300px|Lichtverhalten durch setzen von GLU_OUTSIDE, die Normalen zeigen vom Mittelpunkt weg.]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''quadObject''&lt;br /&gt;
| Gibt das Quadrik-Objekt an (erstellt mit [[gluNewQuadric]])&lt;br /&gt;
|-&lt;br /&gt;
! ''orientation''&lt;br /&gt;
| Gibt an in welche Richtung die Normalen der Quadric zeigen sollen. &amp;lt;br&amp;gt;&lt;br /&gt;
Akzeptiert werden '''GLU_OUTSIDE''' und '''GLU_INSIDE'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
&lt;br /&gt;
'''gluQuadricOrientation''' gibt an, in welche Richtung die Normalen des [[Quadrik]]-Objekt ''quadObject'' zeigen sollen. ''orientation'' kann dabei folgende Werte zugewiesen bekommen:&lt;br /&gt;
&lt;br /&gt;
'''GLU_OUTSIDE'''&lt;br /&gt;
:Die Normalen zeigen nach aussen. (Weg vom inneren)&lt;br /&gt;
&lt;br /&gt;
'''GLU_INSIDE'''&lt;br /&gt;
:Die Normalen zeigen nach innen.&lt;br /&gt;
&lt;br /&gt;
Standard ist '''GLU_OUTSIDE'''.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Was Innen- und was Aussenseite ist, hängt vom übergebenen Quadrik-Objekt ab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[gluNewQuadric]], [[gluQuadricDrawStyle]], [[gluQuadricNormals]], [[gluQuadricTexture]]&lt;br /&gt;
&lt;br /&gt;
Hintergrundwissen: [[Normalen]], [[Quadrik]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GLU|QuadricOrientation]]&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Glu_outside.png&amp;diff=23665</id>
		<title>Datei:Glu outside.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Glu_outside.png&amp;diff=23665"/>
				<updated>2009-05-24T12:14:58Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Verhalten des Lichts bei Normalenberechnung durch gluQuadricOrientation auf GLU_OUTSIDE.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Verhalten des Lichts bei Normalenberechnung durch gluQuadricOrientation auf GLU_OUTSIDE.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:Glu_inside.png&amp;diff=23664</id>
		<title>Datei:Glu inside.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:Glu_inside.png&amp;diff=23664"/>
				<updated>2009-05-24T12:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: Verhalten des Lichts bei Normalenberechnung durch gluQuadricOrientation auf GLU_INSIDE.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Verhalten des Lichts bei Normalenberechnung durch gluQuadricOrientation auf GLU_INSIDE.&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Flat_Shading&amp;diff=23200</id>
		<title>Flat Shading</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Flat_Shading&amp;diff=23200"/>
				<updated>2009-03-23T22:57:25Z</updated>
		
		<summary type="html">&lt;p&gt;Skeptiker: /* Flat Shading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In OpenGL uterscheidet man 2 verschiedene Methoden um die Farben von Flächen zu berechnen:&lt;br /&gt;
&lt;br /&gt;
==Flat Shading==&lt;br /&gt;
Flat Shading ist die schnellere aber im Ergebnis auch unspektakulärere Methode. Als Farbe für die gesamte Fläche, wird die Farbe des letzten [[Vertex]] der Fläche benutzt. Alle anderen Farbinformationen der anderen Vertices werden ingnoriert. Dadurch entsteht eine gleichmäßig gefärbte Fläche.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
| glShadeModel(GL_FLAT); &lt;br /&gt;
 glBegin(GL_QUADS);&lt;br /&gt;
   glColor3f(1, 0, 0); glVertex3f(0, 0, 0);&lt;br /&gt;
   glColor3f(0, 1, 0); glVertex3f(1, 0, 0);&lt;br /&gt;
   glColor3f(0, 0, 1); glVertex3f(1, 1, 0);&lt;br /&gt;
   glColor3f(1, 1, 0); glVertex3f(0, 1, 0);&lt;br /&gt;
 glEnd;&lt;br /&gt;
|[[Bild:GlShadeModel_FLAT.jpg|center]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Smooth Shading==&lt;br /&gt;
Smooth Shading erzeugt einen Farbverlauf zwischen den Farbinformationen der Eckpunkte über die gesamte Fläche. Jeder Farbwert geht in die Berechnung ein. Zwischen Vertices wird die Farbe durch lineare Interpolation bestimmt. Dieses Vorgehen erfordert allerdings mehr Zeit als bei der Flat Shading Methode nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
| glShadeModel(GL_SMOOTH); &lt;br /&gt;
 glBegin(GL_QUADS);&lt;br /&gt;
   glColor3f(1, 0, 0); glVertex3f(0, 0, 0);&lt;br /&gt;
   glColor3f(0, 1, 0); glVertex3f(1, 0, 0);&lt;br /&gt;
   glColor3f(0, 0, 1); glVertex3f(1, 1, 0);&lt;br /&gt;
   glColor3f(1, 1, 0); glVertex3f(0, 1, 0);&lt;br /&gt;
 glEnd;&lt;br /&gt;
|[[Bild:GlShadeModel_SMOOTH.jpg|center]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe Auch==&lt;br /&gt;
[[glShadeModel]], [[Feste_Funktionspipeline#Flat_Shading]]&lt;/div&gt;</summary>
		<author><name>Skeptiker</name></author>	</entry>

	</feed>