<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=shader_normal_debug_330</id>
		<title>shader normal debug 330 - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=shader_normal_debug_330"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_normal_debug_330&amp;action=history"/>
		<updated>2026-04-30T00:38:46Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in DGL Wiki</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=shader_normal_debug_330&amp;diff=26303&amp;oldid=prev</id>
		<title>Lord horazont am 11. April 2015 um 14:25 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_normal_debug_330&amp;diff=26303&amp;oldid=prev"/>
				<updated>2015-04-11T14:25:12Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 11. April 2015, 14:25 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Zeile 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Nützlicher Shader um die Normalen eines Modells anzuzeigen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Nützlicher Shader um die Normalen eines Modells anzuzeigen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Lord Horazont&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Lord Horazont&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, auf Basis von [[shader normal debug]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|1.0&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|1.0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lord horazont</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=shader_normal_debug_330&amp;diff=26302&amp;oldid=prev</id>
		<title>Lord horazont: Die Seite wurde neu angelegt: „=Normalen Debugging mit OpenGL 3.3 Core= Zurück zur Shadersammlung {|{{Prettytable_B1}} width=100% !width=60%|Beschreibung !width=20%|Autor !width=20%|Ver…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=shader_normal_debug_330&amp;diff=26302&amp;oldid=prev"/>
				<updated>2015-04-11T14:24:54Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „=Normalen Debugging mit OpenGL 3.3 Core= Zurück zur &lt;a href=&quot;/index.php/Shadersammlung&quot; title=&quot;Shadersammlung&quot;&gt;Shadersammlung&lt;/a&gt; {|{{Prettytable_B1}} width=100% !width=60%|Beschreibung !width=20%|Autor !width=20%|Ver…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Normalen Debugging mit OpenGL 3.3 Core=&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;
|Nützlicher Shader um die Normalen eines Modells anzuzeigen.&lt;br /&gt;
|Lord Horazont&lt;br /&gt;
|1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bilder==&lt;br /&gt;
{|&lt;br /&gt;
|[[Datei:normal_debug_shader_330.png|framed|Terrain mit angezeigten Normalen]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Shader nutzt einen Geometry Shader (OpenGL 3.3 Core) um die Normalen eines Modells anzuzeigen. Dazu wird das Modell einmal normal gerendert und dann nochmal mit dem Geometrieshader und einem spezialisierten Fragmentshader. &lt;br /&gt;
&lt;br /&gt;
==Besondere Vorraussetzungen==&lt;br /&gt;
OpenGL 3.30 Core&lt;br /&gt;
&lt;br /&gt;
Die Länge der anzuzeigenden Normalen wird über die Uniform-Variable ''normal_length'' gesteuert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
Vom Vertex Shader wird angenommen, dass er die Normale als ``out vec3 normal;`` übergibt.&lt;br /&gt;
&lt;br /&gt;
Geometry Shader:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;#version 330 core&lt;br /&gt;
&lt;br /&gt;
layout(triangles) in;&lt;br /&gt;
layout(line_strip, max_vertices=6) out;&lt;br /&gt;
&lt;br /&gt;
// (projection * view * model) matrix&lt;br /&gt;
uniform mat4 proj_view_model;&lt;br /&gt;
&lt;br /&gt;
// length of the normal (object space)&lt;br /&gt;
uniform float normal_length;&lt;br /&gt;
&lt;br /&gt;
in vec3 normal;&lt;br /&gt;
&lt;br /&gt;
out NDData {&lt;br /&gt;
    vec3 normal;&lt;br /&gt;
} nd_out;&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
   for (int i = 0; i &amp;lt; 3; i++) {&lt;br /&gt;
       gl_Position = gl_in[i].gl_Position;&lt;br /&gt;
       nd_out.normal = normal;&lt;br /&gt;
       EmitVertex();&lt;br /&gt;
       gl_Position = gl_in[i].gl_Position +&lt;br /&gt;
           proj_view_model * vec4(normal * normal_length, 0.f);&lt;br /&gt;
       nd_out.normal = normal;&lt;br /&gt;
       EmitVertex();&lt;br /&gt;
       EndPrimitive();&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;#version 330 core&lt;br /&gt;
&lt;br /&gt;
in NDData {&lt;br /&gt;
    vec3 normal;&lt;br /&gt;
} nd_in;&lt;br /&gt;
&lt;br /&gt;
out vec4 color;&lt;br /&gt;
&lt;br /&gt;
void main() {&lt;br /&gt;
    color = vec4(normalize(nd_in.normal) * 0.5 + 0.5, 1);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lord horazont</name></author>	</entry>

	</feed>