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

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=gluPerspective&amp;diff=24974</id>
		<title>gluPerspective</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=gluPerspective&amp;diff=24974"/>
				<updated>2010-10-06T17:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: einen Tippfehler korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= gluPerspective =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''gluPerspective''' - Erstellt eine perspektivische Projektionsmatrix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''gluPerspective'''(''fovy'', ''aspect'', ''zNear'', ''zFar'' : ''glDouble'');&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;
! ''fovy''&lt;br /&gt;
| Gibt das Betrachtungsfeld (FOV) in Grad, entlang der Y-Achse, an.&lt;br /&gt;
|-&lt;br /&gt;
! ''aspect''&lt;br /&gt;
| Gibt den Aspektratio, der das Betrachtungsfeld entlang der X-Achse setzt. Der Aspektratio ist das Verhältnis von Breite zu Höhe.&lt;br /&gt;
|-&lt;br /&gt;
! ''zNear''&lt;br /&gt;
| Entfernung vom Betrachter zur nahen Z-Schnittfläche (muss positiv sein).&lt;br /&gt;
|-&lt;br /&gt;
! ''zFar''&lt;br /&gt;
| Entfernung vom Betrachter zur fernen Z-Schnittfläche (muss positiv sein).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''gluPerspective''' beschreibt ein Betrachtungssichtfeld (Frustum) ins Weltkoordinatensystem hinein. Meistens setzt man den Aspektratio dabei gleich dem Aspektratio des zugewiesenen Viewports. &lt;br /&gt;
Die von '''gluPerspective''' erstellte Matrix wird mit der aktuellen Matrix multipliziert, so als ob man [[glMultMatrix]] mit der generierten Matrix aufgerufen hätte. Um die perspektivische Matrix zu setzen, sollte man zuerst [[glLoadIdentity]] und dann '''gluPerspective''' aufrufen.&lt;br /&gt;
&lt;br /&gt;
Für ''f'' = cotangent(fovy/2), sieht die erstellte Matrix so aus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt; [[Bild:GluPerspective.png]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anwendung===&lt;br /&gt;
'''gluPerspective''' wird nur gebraucht wenn eine perspektivische Projektion benutzt werden soll. (siehe auch [[glOrtho]])&lt;br /&gt;
*Wo gehört '''gluPerspective''' hin?:&lt;br /&gt;
: In die Initialisierung des Forumulars um überhaupt eine Projektion zu erhalten.&lt;br /&gt;
: In die Behandlung des OnResize-Events, da die Projektion an die neuen Fenstermaße angepasst werden sollte.&lt;br /&gt;
: In den Render-Code wenn sich innerhalb des Renderdurchgangs die Projektion ändert.&lt;br /&gt;
&lt;br /&gt;
*Wo gehört '''gluPerspective''' nicht hin?:&lt;br /&gt;
: In den Render-Code wenn sich die Projektion während des Rendervorgangs nicht ändert.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Die Genauigkeit des Tiefenpuffer wird von den in ''zNear'' und ''zFar'' angegebenen Werten beeinflusst. Je größer das Verhältnis von  ''zFar'' zu ''zNear'', je ineffektiver kann der Tiefenpuffer zwischen nah beieinander liegenden Oberflächen unterscheiden.&lt;br /&gt;
Wenn ''r'' = ''zFar'' / ''zNear'', dann gehen ungefähr log(2)r Bits an Tiefenpuffergenauigkeit verloren. Da ''r'' gegen Unendlich strebt wenn ''zNear'' gegen 0 strebt, darf ''zNear'' niemals gleich 0 gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glFrustum]], [[glLoadIdentity]], [[glMultMatrix]], [[gluOrtho2D]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GLU|Perspective]]&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Shadersammlung&amp;diff=24737</id>
		<title>Shadersammlung</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Shadersammlung&amp;diff=24737"/>
				<updated>2010-03-11T14:39:04Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Was sind Shader?==&lt;br /&gt;
Die traditionelle [[Feste_Funktionspipeline|Funktionspipeline]] der OpenGL ist sehr beschränkt, neuere [[Algorithmus|Algorithmen]] erfordern eine viel höhere Flexibilität. [[Shader]] sind kleine Programme die es erlauben Teile der Funktionspipeline völlig frei zu programmieren. Dies bietet völlig neue Möglichkeiten. Auf der einen Seite sind Shader für Einsteiger eine gewisse Hürde, auf der anderen Seite können sie viele Dinge aber auch enorm vereinfachen. Aus diesem Grund wurde in OpenGL 3.1 sowie OpenGL ES 2.0 die feste Funktionspipeline entfernt, so dass Shader dort verpflichtend sind.&lt;br /&gt;
&lt;br /&gt;
Der Artikel [[Shader]] gibt einen ausführlichen Überblick zum Thema sowie eine [[Shader#Wie_geht_es_nun_weiter.3F|Linksammlung]] für den Einstieg.&lt;br /&gt;
&lt;br /&gt;
==Shader hinzufügen==&lt;br /&gt;
Die Shadersammlung braucht deine Hilfe um zu wachsen. Wenn du einen Shader bereitstellen könntest wäre dies ein toller Dienst für die Community.&lt;br /&gt;
&lt;br /&gt;
Wer einen Shader zur Shadersammlung hinzufügen möchte, findet am Ende dieses Seite eine [[#Vorlage|Vorlage]].&lt;br /&gt;
&lt;br /&gt;
==Schwierigkeitsgrad==&lt;br /&gt;
Es ist nicht leicht einen Schwierigkeitsgrad für Shader anzugeben, trotzdem haben wir dies einmal versucht. Der Schwierigkeitsgrad kann zumindest für Einsteiger einen groben Hinweis geben was man sich vielleicht mal anschauen könnte.&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;margin-left:50px;&amp;quot;&lt;br /&gt;
| {{TableHead}} | {{ShaderLevel|1}}&lt;br /&gt;
| Der Shader ist für Einsteiger geeignet. Um den Shader herum wird keine zusätzliche Infrastruktur benötigt.&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}} | {{ShaderLevel|2}}&lt;br /&gt;
| Der Shader ist für Einsteiger geeignet, benötigt aber etwas zusätzliche Infrastruktur. Etwa benötigt ein Post-Processing-Shader ein [[FBO|FrameBufferObject]], für [[Bumpmapping]] wird eine [[Normalmap]] benötigt.&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}} | {{ShaderLevel|3}}&lt;br /&gt;
| Mittlerer Schwierigkeitsgrad. Der Shader ist etwas komplizierter und/oder benötigt viel zusätzliche Infrastruktur.&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}} | {{ShaderLevel|4}}&lt;br /&gt;
| Hoher Schwierigkeitsgrad. Der Shader ist kompliziert und/oder verwendet intensiv Extensions.&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}} | {{ShaderLevel|5}}&lt;br /&gt;
| Extremer Schwierigkeitsgrad...alles was es sonst noch gibt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GLSL-Shader==&lt;br /&gt;
Die hier gelisteten Shader sind in Kategorien aufgeteilt. Weitere Kategorien dürfen bei Bedarf einfach ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
===Beleuchtung und Texturen===&lt;br /&gt;
Diese Kategorie umfasst alles vom einfachen Fixed-Function-Pipeline-Ersatz über PerPixel-Licht und Bumpmapping bis zu ShadowMaps. Der Shader-Einsteiger wird in dieser Kategorie sicherlich fündig.&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
| {{TableHead}}  | [[shader_verysimple|Verysimple]] von [[Benutzer:damadmax|damadmax]] {{ShaderLevel|1}}&lt;br /&gt;
| {{Table150R2}} style=&amp;quot;text-align:center;&amp;quot; | (kein Bild vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Ein einfacher Shader, welcher eine Textur an Vertices bindet. Dieser Shader baut damit das Standardverhalten der festen Pipeline nach. {{ShaderLink|shader_verysimple}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_PerPixelLighting|Per Pixel-Beleuchtung]] von [[Benutzer:Ireyon|Ireyon]] {{ShaderLevel|1}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_ppl.png|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Shader, der Per Pixel beleuchtet. {{ShaderLink|shader_PerPixelLighting}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_PerPixel_Lighting2|Per Pixel-Beleuchtung2]] von [[Benutzer:Olee|Olee]] {{ShaderLevel|1}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:PPLShader.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Beleuchtet Flächen nach Pixeln anstatt wie OpenGl-Licht je Vertex. Erlaubt unendlich weit entferntes Licht und beachtet [[glFog]]. {{ShaderLink|shader_PerPixel_Lighting2}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_Bumpmapping|BumpmappingShader]] von [[Benutzer:Bergmann89|Bergmann89]] {{ShaderLevel|2}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Bumpmapping.JPG|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | BumpmappingShader auf der Basis des [[shader_PerPixelLighting|Per Pixel-Beleuchtung]]-Shaders {{ShaderLink|shader_Bumpmapping}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_ConeVolumeShadow|Kegelvolumen-Schatten ]] von [[Benutzer:Coolcat|Coolcat]] {{ShaderLevel|3}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_ConeVolumeShadow2.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Spezialshader für realistische Schatten einer Kugellichtquelle. Kugellichtquellen erzeugen im Gegensatz zu den üblichen Punktlichtquellen weiche Schatten. Dieser Ansatz ist im Vergleich extrem schnell, da er nur eine Erweiterung des gewöhnlichen Per-Pixel-Lighting darstellt. Allerdings funktioniert dieser Shader nur dann, wenn es sich bei sämtlichen Schatten werfenden Objekten in der Szene um Kugeln handelt. {{ShaderLink|shader_ConeVolumeShadow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Post-Processing===&lt;br /&gt;
Post-Processing-Shader zeichnen sich dadurch aus, dass sie auf die gesamte Szene angewendet werden &amp;lt;u&amp;gt;nachdem&amp;lt;/u&amp;gt; diese bereits gerendert wurde. Üblicherweise wird die Szene zuerst mit einem [[FBO|FramebufferObject]] (FBO) in eine Textur gerendert. Anschließend wird diese Textur auf ein bildschirmfüllendes Quad gespannt und mit dem Post-Processing-Shader gerendert.&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
| {{TableHead}}  | [[shader_sepia|Sepia-Shader]] von [[Benutzer:Markus|Markus]] {{ShaderLevel|2}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_sepia_nachher.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Post-Processing-Shader, welcher einen Sepia-Farbfilter auf die Szene anwendet. {{ShaderLink|shader_sepia}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_radial_blur|Radial Blur]] von [[Benutzer:Markus|Markus]] {{ShaderLevel|2}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_radial_blur_nachher.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Post-Processing-Shader, welcher die Szene ausgehend von einem beliebigen Punkt verwischt. {{ShaderLink|shader_radial_blur}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_blur2|Blur-Shader]] von [[Benutzer:Skeptiker|Skeptiker]] und [[Benutzer:Coolcat|Coolcat]] {{ShaderLevel|3}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Shader_blur_seerose_blured_small.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Post-Processing-Shader, welcher die Szene insgesamt verwischt. Dieser Shader kann beispielsweise genutzt werden um einen Glow-Effekt zu erreichen. {{ShaderLink|shader_blur2}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_Stereoscopy|Stereoskopie]] von [[Benutzer:Joni|Joni]] {{ShaderLevel|2}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_stereo_preview.png|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Sammlung von Post-Processing-Shadern, welche ein linkes und ein rechtes Bild als Stereogramm mit verschiedenen Methoden (verschiedene Anaglyphen, Zeilenverschachtelung, ...) anzeigen. {{ShaderLink|shader_Stereoscopy}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Geometrie===&lt;br /&gt;
Hier finden sich Shader die die Geometrie entweder komplett neu erzeugen oder stark verändern. Es muss nicht unbedingt Geometryshader oder Instancing sein, auch mit dem Vertexshader kann man schon viel anstellen. Ein klassisches Beispiel ist die Mesh-Animation.&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
| {{TableHead}}  | [[shader_Terrain_GPU4|Heightmap-Terrain]] von [[Benutzer:Coolcat|Coolcat]] {{ShaderLevel|3}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Terrain.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Shader für ein Heightmap-Terrain der ShaderModel 4.0 Features nutzt. Das Terrain wird zur Laufzeit fast vollständig aus der Heightmap generiert, was ordentlich Speicherplatz spart. Im Fragmentshader werden drei Texturlayer mit Hilfe einer Alphamap interpoliert {{ShaderLink|shader_Terrain_GPU4}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_gpu_shader4]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_Instancing|Instancing-Shader]] von [[Benutzer:Coolcat|Coolcat]] {{ShaderLevel|4}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_Instancing.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Dieser Shader zeigt die Benutzung von [[GL_ARB_draw_instanced]]. Ein häufiger Anwendungsfall ist das rendern vieler gleichartiger Objekte. Die Extension beschleunigt derartige Anwendungen, in dem die Anzahl der API-Aufrufe und die Menge redundanter Daten reduziert wird. {{ShaderLink|shader_Instancing}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_ARB_draw_instanced]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_gpu_shader4]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_texture_buffer_object]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_ARB_texture_float]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_tesselation|Tesselation-Shader]] von [[Benutzer:dj3hut1|dj3hut1]] {{ShaderLevel|4}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Tesselation_s.png|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Dieser Shader nutzt einen Geometry Shader um ein Dreieck zu tesselieren. {{ShaderLink|shader_tesselation}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_ARB_geometry_shader4]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_normal_debug|Normal Debugging-Shader]] von [[Benutzer:dj3hut1|dj3hut1]] {{ShaderLevel|4}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Normal_debug_s.png|113px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Nützlicher Shader um ohne viel Aufwand die Normalen eines Modells anzuzeigen. {{ShaderLink|shader_normal_debug}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_ARB_geometry_shader4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Partikel===&lt;br /&gt;
Natürlich kann man auch bei einem [[Partikelsystem]] Shader einsetzen. Mit etwas Geschick kann man die gesamte Berechnung sogar vollständig auf die Grafikkarte verlagern um die CPU zu entlasten.&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
| {{TableHead}}  | [[GLSL_Partikel_2|GPU Partikelsystem]] von [[Benutzer:Coolcat|Coolcat]] {{ShaderLevel|5}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Partikel-Gravitation.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Ein GPU-Partikelsystem welches insbesondere auf SM4 Features wie Geometryshader und Transform-Feedback setzt. So ist auch eine Partikel-Partikel-Interaktion mit über 200.000 Partikeln ist kein Problem. {{ShaderLink|GLSL_Partikel_2}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_geometry_shader4]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_NV_transform_feedback]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_gpu_shader4]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_texture_buffer_object]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_ARB_texture_float]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_texture_integer]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[GLSL_Partikel|GPU Partikelsystem für alte Hardware]] von [[Benutzer:Oc2k1|Oc2k1]] {{ShaderLevel|5}}&lt;br /&gt;
| {{Table150R2}} style=&amp;quot;text-align:center;&amp;quot; | (kein Bild vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Ebenfalls ein GPU-Partikelsystem, welches aber auf FramebufferObjects und Fragmentshader setzt. Damit sollte es auch auf älterer Hardware funktionieren. {{ShaderLink|GLSL_Partikel}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_ARB_texture_float]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sonstiges===&lt;br /&gt;
Hier kommt alles rein was sonst nirgendwo rein passt und eine neue Kategorie nicht lohnenswert ist.&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
| {{TableHead}}  | [[shader_game_of_life|Game of Life]] von [[Benutzer:dj3hut1|dj3hut1]] {{ShaderLevel|3}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Game_of_life_s.png|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Simuliert das altbekannte 'Game of Life' im Shader. {{ShaderLink|shader_game_of_life}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_Zufallsgenerator|Pseudozufallsgenerator]] von [[Benutzer:Coolcat|Coolcat]] {{ShaderLevel|4}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_Zufallsgenerator.png|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Generierung von Pseudozufallszahlen im Shader mit [[GL_EXT_gpu_shader4]]. Außerdem eine Beispielanwendung: Ein reproduzierbares pesudozufälliges Verwirbelfeld für ein GPU-Partikelsystem. {{ShaderLink|shader_Zufallsgenerator}}&lt;br /&gt;
&lt;br /&gt;
'''Extensions:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[GL_EXT_gpu_shader4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Non-GLSL-Shader==&lt;br /&gt;
In diesem Abschnitt findet ihr Shader die mit einer anderen Technik als GLSL geschrieben wurden.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable_B1}} width=100%&lt;br /&gt;
| {{TableHead}}  | [[shader_texturing(ARB)|Texturing (ARB)]] von [[Benutzer:dj3hut1|dj3hut1]] {{ShaderLevel|1}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Texarb_textured_s.png|166px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Demonstriert eine einfache Texturierung. {{ShaderLink|shader_texturing(ARB)}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_phong_per_pixel(ARB)|Phong per Pixel (ARB)]] von [[Benutzer:dj3hut1|dj3hut1]] {{ShaderLevel|1}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Phong_arb_s.png|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Per-Pixel-Beleuchtung. {{ShaderLink|shader_phong_per_pixel(ARB)}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_diffuse_bumpmapping(Cg)|Diffuse Bumpmapping (NVIDIA-Cg)]] von [[Benutzer:igel457|igel457]] {{ShaderLevel|2}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:shader_diffuse_bumpmapping_cg.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Wendet diffuses Bumpmapping auf eine beliebige Oberfläche an. {{ShaderLink|shader_diffuse_bumpmapping(Cg)}}&lt;br /&gt;
|-&lt;br /&gt;
| {{TableHead}}  | [[shader_surface_scattering(ARB)|Surface Scattering (ARB)]] von [[Benutzer:dj3hut1|dj3hut1]] {{ShaderLevel|3}}&lt;br /&gt;
| {{Table150R2}} | [[Bild:Scattering_s.jpg|150px|150px]]&lt;br /&gt;
|-&lt;br /&gt;
| {{TableCell}}  | Der Shader bestimmt die Distanz, die Licht durch ein Material zurücklegt. Auf diese Weise wird die Lichtdurchlässigkeit bestimmt. {{ShaderLink|shader_surface_scattering(ARB)}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Vorlage==&lt;br /&gt;
Die Shadersammlung braucht deine Hilfe um zu wachsen. Wenn du einen Shader bereitstellen könntest wäre dies ein toller Dienst für die Community.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte müssen gemacht werden um einen Shader einzutragen:&lt;br /&gt;
# Erstelle mit Hilfe der [[Shaderartikelvorlage]] einen neuen Artikel. Dazu den wiki-Code der Vorlage einfach kopieren und in den neuen Artikel einfügen. Der Artikelname sollte mit dem Präfix &amp;lt;tt&amp;gt;shader_&amp;lt;/tt&amp;gt; beginnen, z.B. &amp;lt;tt&amp;gt;shader_Wasser2d&amp;lt;/tt&amp;gt; für einen 2D Wassershader.&lt;br /&gt;
# Da Shader zu 90% optische Effekte bewirken, sollte (mindestens) ein aussagekräftiges Beispielbild im Shaderartikel hinterlegt werden. Eines der Bilder sollte dann auch hier in der Liste verlinkt werden.&lt;br /&gt;
# Füge deinen Shader in die Shadersammlung ein. Verwende dazu dieses Template:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; |-&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; | &amp;lt;nowiki&amp;gt;{{TableHead}}  | [[shader_Wasser2d|2D Wassershader]] von [[Benutzer:DeinName|DeinName]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; | &amp;lt;nowiki&amp;gt;{{Table150R2}} | [[Bild:Wassershader2D.jpg|150px|150px]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; |-&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; | &amp;lt;nowiki&amp;gt;{{TableCell}}&amp;lt;/nowiki&amp;gt;  | Einige Sätze zur Beschreibung des Shaders. &amp;lt;nowiki&amp;gt;{{ShaderLink|shader_Wasser2d}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;'''Extensions:'''&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;Liste von notwendigen Extensions.&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt; |-&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Keine Angst, es muss nicht alles auf Anhieb perfekt sein.&lt;br /&gt;
&lt;br /&gt;
Falls du Fragen oder Probleme mit der Vorlage hast, im [[DGL-Chat]] oder [http://www.delphigl.com/forum/ Forum] hilft man immer gerne.&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:shader_stereo_preview.png&amp;diff=24736</id>
		<title>Datei:shader stereo preview.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:shader_stereo_preview.png&amp;diff=24736"/>
				<updated>2010-03-11T14:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=shader_Stereoscopy&amp;diff=24735</id>
		<title>shader Stereoscopy</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_Stereoscopy&amp;diff=24735"/>
				<updated>2010-03-11T14:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: Die Seite wurde neu angelegt: „=Stereoskopischer Post-Processing-Shader= Zurück zur Shadersammlung {|{{Prettytable_B1}} width=100% !width=60%|Beschreibung !width=20%|Autor !width=20%|Versi…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stereoskopischer Post-Processing-Shader=&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 für Stereoskopie&lt;br /&gt;
|Joni&lt;br /&gt;
|1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bilder==&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:stereo_shader1.png|600px|verschiedene Stereoskopie-Verfahren]]&lt;br /&gt;
|}&lt;br /&gt;
''Oben: Half-Color Anaglyph; mitte: Horizontal Interlaced (funktioniert nur bei maximaler Bildauflösung); unten: Full-Color Anaglyph''&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Die hier vorgestellten Shader konvertieren mit verschiedenen Verfahren ein linkes und ein rechtes Eingabebild in ein stereoskopisches Bild. In dem folgenden Abschnitt werden die einzelnen Verfahren näher erläutert.&lt;br /&gt;
===Horizontal Interlaced===&lt;br /&gt;
Bei der zeilenverschachtelten Stereoskopie sind alle ungeraden Pixelzeilen für das linke Auge und alle geraden Pixelzeilen für das rechte Auge bestimmt. Verwendet wird dieses Verfahren u. A. von den Zalman- und den Hyundai-3D-Bildschirmen.&lt;br /&gt;
===Vertical Interlaced===&lt;br /&gt;
Analog zur zeilenverschachtelten Stereoskopie wird hier nach ungeraden und geraden Spalten sortiert. Verwendet wird dieses Verfahren u. A. für den Druck auf Linsenrasterkarten.&lt;br /&gt;
===Checkerboard===&lt;br /&gt;
Hier gehören jeweils die Pixel, die diagonal zueinander liegen, zu einem Auge. Die Aufteilung erinnert an ein Schachbrett, daher der Name. Verwendet wird das Verfahren u. A. von einigen Fernsehen von Samsung in Kombination mit einer Shutterbrille.&lt;br /&gt;
===Half-Color Anaglyphen===&lt;br /&gt;
Das Half-Color-Verfahren ist ein Anaglyphen-Verfahren für rot/cyan-Brillen, das im gegenüber dem True-Color-Anaglyphen-Verfahren, was auch im [[Tutorial_StereoSehen|Stereoskopie-Tutorial]] verwendet wird, einen nennenswerten Vorteil bei farbiger Szene hat. Bei dem True-Color-Verfahren wird für den roten Kanal des finalen Bildes der rote Kanal des linken Bildes genommen, was zu Konflikten bei roten Objekten in der Szene führt. Diese erscheinen dann auf dem linken Auge mit voller Helligkeit und auf dem rechten Auge schwarz. Das Half-Color-Verfahren verwendet daher für den roten Farbkanal des finalen Bildes nicht den roten Kanal des linken Bildes, sondern dessen Helligkeit, die wie bei Graustufen mit der folgenden Formel berechnet wird:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;luminance = 0.299*red + 0.587*green + 0.114*blue&amp;lt;/source&amp;gt;&lt;br /&gt;
Der Nachteil dieses Verfahrens ist, dass die Farben etwas verfälscht werden.&lt;br /&gt;
===Optimized Anaglyphen===&lt;br /&gt;
Dieses Verfahren ähnelt dem Half-Color-Verfahren, ignoriert aber bei dem linken Bild den Rotanteil vollständig und berechnet den finalen roten Kanal folgendermaßen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;red = 0.7*green + 0.3*blue&amp;lt;/source&amp;gt;&lt;br /&gt;
Dieses Verfahren erstellt noch etwas ruhigere Bilder als das Half-Color-Verfahren, verfälscht die Farben aber auch stärker. Zusätzlich kann bei dem Verfahren noch Gammakorrektur auf den roten Kanal angewandt werden. &lt;br /&gt;
{|&lt;br /&gt;
[[Bild:anaglyph_problem.png|center|Die oben beschriebenen Verfahren angewandt auf ein rotes Objekt]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Besondere Vorraussetzungen==&lt;br /&gt;
Um den Code sinnvoll zu benutzen, ist eine Anaglyphen-Brille oder ein stereoskopisches Gerät, das eins der o.g. Verfahren verwendet, nötig.&lt;br /&gt;
&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Für die Verwendung von Anaglyphen mit grün/magenta kann man die o.g. Verfahren entsprechend anpassen. Welches Verfahren sich dafür anbietet, ist zu testen, da der Autor keine solche Brille besitzt.&lt;br /&gt;
&lt;br /&gt;
Das neu aufgekommene, patentierte ColorCode-Verfahren sieht zwar gelb/blauen Anaglyphen ähnlich, ist jedoch anders und nicht zu gelb/blau-Anaglyphen kompatibel. Da das Color-Code-Verfahren patentiert und nicht öffentlich bekannt ist, besteht leider keine Möglichkeit, es hier zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Für Shutterbrillen, Doppelprojektoren etc. ist man in OpenGL auf eine Treiberlösung angewiesen. Details dazu gibt es im [[Tutorial_StereoSehen|Tutorial StereoSehen]].&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
Hier wird OpenGL 3.2 und GLSL-Version 1.5 verwendet, die Shader sollten jedoch problemlos mit jeder GLSL-Version funktionieren.&lt;br /&gt;
===Vertex Shader===&lt;br /&gt;
Da es sich um einen Post-Processing-Shader handelt, tut der Vertexshader nur das Nötigste: Er leitet Vertex- und Texturkoordinaten weiter.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 150&lt;br /&gt;
&lt;br /&gt;
in  vec3 in_Position;&lt;br /&gt;
in  vec2 in_TexCoord;&lt;br /&gt;
out vec2 ex_TexCoord;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
	gl_Position = vec4(in_Position, 1.0);&lt;br /&gt;
	ex_TexCoord = in_TexCoord;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
===Horizontal Interlaced===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 150&lt;br /&gt;
&lt;br /&gt;
precision highp float;&lt;br /&gt;
&lt;br /&gt;
in  vec3 ex_Color;&lt;br /&gt;
in  vec2 ex_TexCoord;&lt;br /&gt;
out vec4 out_Color;&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D left;  //Linkes Bild&lt;br /&gt;
uniform sampler2D right; //Rechtes Bild&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
  //Horizontal Interlaced&lt;br /&gt;
  if (mod(trunc(gl_FragCoord.y), 2.0) &amp;lt; 0.5)&lt;br /&gt;
    out_Color = texture2D(left, vec2(ex_TexCoord));&lt;br /&gt;
  else&lt;br /&gt;
    out_Color = texture2D(right, vec2(ex_TexCoord));&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
===Vertical Interlaced===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 150&lt;br /&gt;
&lt;br /&gt;
precision highp float;&lt;br /&gt;
&lt;br /&gt;
in  vec3 ex_Color;&lt;br /&gt;
in  vec2 ex_TexCoord;&lt;br /&gt;
out vec4 out_Color;&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D left;&lt;br /&gt;
uniform sampler2D right;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{ &lt;br /&gt;
  //Vertical Interlaced&lt;br /&gt;
  if (mod(trunc(gl_FragCoord.x), 2.0) &amp;lt; 0.5)&lt;br /&gt;
    out_Color = texture2D(left, vec2(ex_TexCoord));&lt;br /&gt;
  else&lt;br /&gt;
    out_Color = texture2D(right, vec2(ex_TexCoord));&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
===Checkerboard===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 150&lt;br /&gt;
&lt;br /&gt;
precision highp float;&lt;br /&gt;
&lt;br /&gt;
in  vec3 ex_Color;&lt;br /&gt;
in  vec2 ex_TexCoord;&lt;br /&gt;
out vec4 out_Color;&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D left;&lt;br /&gt;
uniform sampler2D right;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
//Checkerboard&lt;br /&gt;
  bool d1 = (mod(trunc(gl_FragCoord.x), 2.0) &amp;lt; 0.5);&lt;br /&gt;
  bool d2 = (mod(trunc(gl_FragCoord.y), 2.0) &amp;lt; 0.5);&lt;br /&gt;
  if (d1==d2)&lt;br /&gt;
    out_Color = texture2D(left, vec2(ex_TexCoord));&lt;br /&gt;
  else&lt;br /&gt;
    out_Color = texture2D(right, vec2(ex_TexCoord));&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
===Half-Color-Anaglyph===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 150&lt;br /&gt;
&lt;br /&gt;
precision highp float;&lt;br /&gt;
&lt;br /&gt;
in  vec3 ex_Color;&lt;br /&gt;
in  vec2 ex_TexCoord;&lt;br /&gt;
out vec4 out_Color;&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D left;&lt;br /&gt;
uniform sampler2D right;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
  //Half-Color Anaglyphen&lt;br /&gt;
  vec3 cleft = texture2D(left, vec2(ex_TexCoord)).xyz;&lt;br /&gt;
  vec3 cright = texture2D(right, vec2(ex_TexCoord)).xyz;&lt;br /&gt;
  out_Color.r = 0.299*cleft.r + 0.587*cleft.g + 0.114*cleft.b;  //Half-Color&lt;br /&gt;
  out_Color.g = cright.g;&lt;br /&gt;
  out_Color.b = cright.b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optimized-Anaglyph===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 150&lt;br /&gt;
&lt;br /&gt;
precision highp float;&lt;br /&gt;
&lt;br /&gt;
in  vec3 ex_Color;&lt;br /&gt;
in  vec2 ex_TexCoord;&lt;br /&gt;
out vec4 out_Color;&lt;br /&gt;
&lt;br /&gt;
uniform sampler2D left;&lt;br /&gt;
uniform sampler2D right;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
  //Half-Color Anaglyphen&lt;br /&gt;
  vec3 cleft = texture2D(left, vec2(ex_TexCoord)).xyz;&lt;br /&gt;
  vec3 cright = texture2D(right, vec2(ex_TexCoord)).xyz;&lt;br /&gt;
  out_Color.r = 0.7*cleft.g + 0.3*cleft.b;            //ohne Gammakorrektur&lt;br /&gt;
  out_Color.r = pow(0.7*cleft.g + 0.3*cleft.b, 1.5);  //mit Gammakorrektur&lt;br /&gt;
  out_Color.g = cright.g;&lt;br /&gt;
  out_Color.b = cright.b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
http://www.3dtv.at/knowhow/AnaglyphComparison_en.aspx&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
[[Tutorial_StereoSehen]]&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:anaglyph_problem.png&amp;diff=24734</id>
		<title>Datei:anaglyph problem.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:anaglyph_problem.png&amp;diff=24734"/>
				<updated>2010-03-11T14:04:56Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: hat eine neue Version von „Datei:anaglyph problem.png“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Verschiedene Anaglyphenmethoden bei einem roten Objekt&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:anaglyph_problem.png&amp;diff=24733</id>
		<title>Datei:anaglyph problem.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:anaglyph_problem.png&amp;diff=24733"/>
				<updated>2010-03-11T13:28:42Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: Verschiedene Anaglyphenmethoden bei einem roten Objekt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Verschiedene Anaglyphenmethoden bei einem roten Objekt&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:stereo_shader1.png&amp;diff=24732</id>
		<title>Datei:stereo shader1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:stereo_shader1.png&amp;diff=24732"/>
				<updated>2010-03-11T13:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Datei:stereo_shader1.jpg&amp;diff=24730</id>
		<title>Datei:stereo shader1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Datei:stereo_shader1.jpg&amp;diff=24730"/>
				<updated>2010-03-09T17:00:59Z</updated>
		
		<summary type="html">&lt;p&gt;Joni: Verschiedene stereoskopische Verfahren in einem Bild&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Verschiedene stereoskopische Verfahren in einem Bild&lt;/div&gt;</summary>
		<author><name>Joni</name></author>	</entry>

	</feed>