OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst...

43
OpenGL - Teil 4 - Shader in OpenGL - Bernhard Bittorf und Andy Reimann

Transcript of OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst...

Page 1: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Teil 4- Shader in OpenGL -

Bernhard Bittorf und Andy Reimann

OpenGL - Was sind Shaderkleine Programme die auf der GPU laufenkoumlnnen auf verschiedenen Ebenen (Stages) laufen

verarbeiten Vertexdaten oder Pixeldatenproduzieren Vertexdaten oder Pixeldaten

machen die Fixed-Functionality-Pipeline (FFP) zu einer Programable Pipeline (PP)Wir entscheiden wie Pixeldaten und Vertexdaten auszusehen haben nicht mehr OpenGL

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

Outputfinale Vertexposition im Clipspace (Fensterkoordinaten)

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 2x - Die Pipeline

Outputfinale Vertexfarbe

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 2: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Was sind Shaderkleine Programme die auf der GPU laufenkoumlnnen auf verschiedenen Ebenen (Stages) laufen

verarbeiten Vertexdaten oder Pixeldatenproduzieren Vertexdaten oder Pixeldaten

machen die Fixed-Functionality-Pipeline (FFP) zu einer Programable Pipeline (PP)Wir entscheiden wie Pixeldaten und Vertexdaten auszusehen haben nicht mehr OpenGL

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

Outputfinale Vertexposition im Clipspace (Fensterkoordinaten)

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 2x - Die Pipeline

Outputfinale Vertexfarbe

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 3: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

Outputfinale Vertexposition im Clipspace (Fensterkoordinaten)

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 2x - Die Pipeline

Outputfinale Vertexfarbe

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 4: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 2x - Die Pipeline

OpenGL 2x - Die Pipeline

Outputfinale Vertexposition im Clipspace (Fensterkoordinaten)

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 2x - Die Pipeline

Outputfinale Vertexfarbe

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 5: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 2x - Die Pipeline

Outputfinale Vertexposition im Clipspace (Fensterkoordinaten)

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 2x - Die Pipeline

Outputfinale Vertexfarbe

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 6: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 2x - Die Pipeline

Outputfinale Vertexfarbe

InputFarbe Texkoords Normale Vertexposition Texturen Matrizen

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 7: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 8: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 9: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 3x - Die Pipeline

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 10: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 3x - Die Pipeline

OutputDuplizierte Primitive mit selbst bestimmten Positionen Farben TexCoords

InputPositionen Farben TexCoords eines Primitivs (Triangle Line Point) aus Vertex Shader Stage

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 11: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 3x - Die Pipeline

LimitationenVordefinierte Anzahl an zu erzeugenden PrimitivenSpeicherverbrauch auch wenn Primitive nicht erzeugt werdennur fuumlr kleine Nachbesserungen an Vertexdaten nicht fuumlr High-Change-Algorithmen

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 12: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 13: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 14: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 15: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 16: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 17: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 18: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

Informationenwird fuumlr jedes Vertex durchlaufenEinziger (neuer) Primitivdrawmode ist GL_PATCHberechnet LOD pro Patch

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 19: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

Informationenneue fixed function stageder eigentliche Tesseliererverwendet Tesselierungslevel um einen Patch in eine Menge von neuen Primitiven zu zerlegenJedem Vertex wird eine [u v] oder eine [u v w] Koordinate zugewiesen

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 20: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL 4x - Die Pipeline

Informationenberechnet Position fuumlr jedes Vertex erzeugt in dem Tesselation Control ShaderKontrolliert das Tesselierungs-Patternkann Orientierung (cw oder ccw) entscheidenkann Primitivmode entscheiden (Points Lines Triangles)

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 21: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - Was ist das dennThe OpenGL Shading Language erste Herstellerunabhaumlngige Shader Spracheeingefuumlhrt in OpenGL 20 (September 2004)an C angelehnterweitert um viele build-in Variablen und Datentypen wie vec2 vec3 vec4 mat4 sampler auf GPU Berechnungen hochoptimiert

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 22: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 23: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - Ein erstes BeispielEinfachster Vertexshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_Position = gl_Vertex gl_ModelViewProjectionMatrix gl_Position ist die von GLSL-Vertexshadern vordefinierte Variable die immer beschrieben werden muss

Einfachster Fragmentshader vordefinierter Einsprungspunkt ist immer main()void main() Transformieren des einkommenden gl_Vertex gl_FragColor = gl_Color gl_FragColor ist die von GLSL-Fragmentshadern vordefinierte Variable die immer beschrieben werden muss

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 24: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - uniforms attributes and varyingsuniform float my_uniform_varattribute vec3 my_attribute_varvarying mat4 my_varying_varvoid main()

uniforms und attributes koumlnnen vom C++ Program gesetzt werdenalle sind in allen Shader-Stages aus verwendbaruniforms sind sogenannte Per-Shader Variablenattributes sind sogenannte Per-Vertex Variablenvaryings sind Shader interne Variablen (werden im Vertexshader gesetzt und im Fragmentshader verwendet)

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 25: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 26: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - varyings

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 27: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL - varyings

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 28: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Einen Shader ladenLighthouse 3D bietet ein vollstaumlndiges Tutorial zum Laden und Testen eines Shaders mit Kompilierfehleranzeige (auf GPU Ebene nicht ganz einfach) Lighthouse 3D GLSL Shader Tutorial

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 29: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - GLSL ReferenzenThe Orange Book (alle schnell in die Bibo ))

GLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v150 rev9 Spec und OpenGL 32 und GLSL 150 Quick reference GuideGLSL v400 rev8 Spec und OpenGL 40 und GLSL 400 Quick reference GuideDas neue OpenGL 41 und GLSL 410 Quick reference Guide

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 30: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Die neue AufgabeImplementieren Sie mindestens 3 Shader aus der folgenden Liste

Farbshader (zB Sepia)ToonshadingBlinn-PhongMinnaert-ShadingPartikelShadow MappingBump MappingBlur oder Radial BlurFogPulsating Objects Flags WavesHDRBloom Shader

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 31: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Sepia Shader

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 32: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Toon Shader

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 33: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Blinn-Phong Shader

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 34: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Minnaert Shader

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 35: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Partikel

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 36: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Shadow Mapping (Hier mit GLSL)

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 37: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Bump (Normal-) Mapping

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 38: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - (Radial-)Blur Shader

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 39: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Fog Shader

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 40: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - Wave Shader

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 41: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - HDR Shader (disabled)

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 42: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

OpenGL - HDR Shader (enabled)

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+

Page 43: OpenGL - Beleg 4 - uni-weimar.de...OpenGL 3.x - Die Pipeline Output Duplizierte Primitive mit selbst bestimmten Positionen, Farben, TexCoords Input Positionen, Farben, TexCoords eines

Ressources - LinklisteShader allgemeinhttpnightspawncomfilesgltutpaperpdfhttpwwwnvidiacomcontentGTC-2010pdfs2227_GTC2010pdfhttpfabiensanglardnet

GLSL ReferencesLighthouse 3D - GLSL Shader Management with OpenGLNEHE GLSL IntroductionThe GLSL Orange BookDGL Shadersammlung

Geometry ShadersGeometry Shader Tutorial - Hello WorldEin weiteres gutes Geometry Shader Tutorial

Tesselation ShadersTriangle Tesselation with OpenGL 40+Terrain Tesselation with OpenGL 40+