Bachelor + Master Publishing
811 Bachelorarbeiten, 533 Masterarbeiten, 10.103 Diplomarbeiten

Shader mit GLSL

Eine Einführung in die OpenGL Shading Language

Shader mit GLSL
Über dieses Buch
  • Art: Diplomarbeit
  • Autor: Heiko Ihde
  • Abgabedatum: Februar 2009
  • Umfang: 129 Seiten
  • Dateigröße: 1,7 MB
  • Note: 1,3
  • Institution / Hochschule: Beuth Hochschule für Technik Berlin Deutschland
  • ISBN (eBook): 978-3-8366-2871-6
  • Sprache: Deutsch
  • Prämierung:
  • Arbeit zitieren: Ihde, Heiko Februar 2009: Shader mit GLSL, Hamburg: Diplomica Verlag
  • Schlagworte: Shader, OpenGL, GLSL, 3D Grafik, Texturing

Diplomarbeit von Heiko Ihde

Einleitung:

Diese Arbeit ist das Ergebnis von dreimonatiger, intensiver Auseinandersetzung mit dem Thema Shader und der OpenGL Shading Language. Sie befasst sich im Groben mit der Erstellung von Shadern mit GLSL und den dafür nötigen Vorbereitungen. Der Autor hat sich während der Erstellung vom blutigen Anfänger zum begeisterten Shader Programmierer entwickelt.

Die Arbeit ist so gestaltet, dass ein Leser mit Grundkenntnissen der Informatik und Computergrafik das Prinzip von Shadern ohne Probleme erlernt. Sichtbare Ergebnisse sollen zum Ausprobieren und Experimentieren ermutigen. Beginnend mit den notwendigen Vorbereitungen werden die wichtigsten Funktionen der GLSL anhand von Beispielen erklärt.

Selbst wer vorher noch nie etwas mit Shadern zu tun hatte, soll nach dem Lesen dieser Arbeit in der Lage sein Shader zu lesen, zu schreiben und diese in OpenGL-Anwendungen zu integrieren.

Inhaltsverzeichnis:

1. Einleitung 6
1.1 Begriffliche Voraussetzungen 6
1.1.1 Shader 6
1.1.2 Shader Objekt 7
1.1.3 Shader Programm 8
1.1.4 Fixed Functionality 8
1.1.5 Vertex 9
1.1.6 Edge 9
1.1.7 Face 9
1.1.8 Fragment 10
1.1.9 Vertex Shader 10
1.1.10 Geometry Shader 10
1.1.11 Fragment Shader 10
1.1.12 Object-Space 11
1.1.13 Eye-Space 12
1.1.14 Diffusemap / Colormap 12
1.1.15 Alphamap / Transparencymap 13
1.1.16 Bumpmap 13
1.1.17 Heightmap / Displacementmap 13
1.1.18 Normalmap 13
1.1.19 Specularitymap / Reflectivitymap 13
1.1.20 Luminositymap 14
1.1.21 Environmentmap / Reflectionmap 14
2. Gründe für Shader mit GLSL 15
2.1 Über Shader 15
2.2 Die Shadertypen 15
2.3 Die High Level Shading Languages 16
2.3.1 HLSL 17
2.3.2 Cg 17
2.3.3 GLSL 18
3. Shader in OpenGL 20
3.1 Die OpenGL Shading Language 20
3.1.1 Unterschiede zwischen Vertex und Fragment Shader 20
3.1.2 Unterschiede zu C/++ 21
3.1.3 Typecasting und Konstruktoren 21
3.1.4 Neue Datentypen 21
3.1.5 Zugriff auf Vektor-Komponenten 22
3.1.6 Die attribute, uniform und varying Qualifiers 22
3.2 Die OpenGL Shading Language API 23
4. Vier Schritte zum eigenen Shader 25
4.1 Die Objekte vorbereiten 25
4.1.1 Vorbereiten in Blender 25
4.1.2 Vorbereiten in OpenGL 29
4.2 Die Texturen vorbereiten 32
4.2.1 Diffusemap 33
4.2.2 Alphamap 38
4.2.3 Bumpmap 41
4.2.4 Normalmap 43
4.2.5 Huemap 44
4.2.6 Lightnessmap / Brightnessmap 48
4.2.7 Environmentmap 49
4.2.8 Kanten entfernen 54
4.2.9 CrazyBump 55
4.3 Die Shader einbinden 57
4.3.1 Shader erstellen und kompilieren 57
4.3.2 Shader verwenden 59
4.3.3 Werte übergeben 60
4.3.4 Texturen übergeben 61
4.3.5 Das Resultat 63
4.3.6 Die Shader in GLSLDemo einbinden 63
4.4 Die Shader programmieren 66
4.4.1 Farbe 67
4.4.2 Fragmente verwerfen 69
4.4.3 Direktionales Licht 69
4.4.4 Punktlicht 73
4.4.5 Drei Punktlichter 74
4.4.6 Drei Punktlichter (optimiert) 76
4.4.7 Glanz 78
4.4.8 Prozedurale Textur 2D 81
4.4.9 Prozedurale Textur 3D 84
4.4.10 Selektiv Fragmente verwerfen 86
4.4.11 Prozedurale Textur 3D (optimiert) 88
4.4.12 Einbinden von Textur-Maps 92
4.4.13 Nebel 94
4.4.14 Simulation der Fixed Functionality mit ShaderGen 96
4.4.15 Mehrfarb-Lack 97
4.4.16 Hue-Shifter 99
4.4.17 Displacement 104
4.4.18 Displacement Wasser 106
5. Fazit und Aussicht 109
6. Eigenständigkeitserklärung 110
7. Anhang 1: Literaturverzeichnis 111
8. Anhang 2: Verwendete Software 112
8.1 Programmierung 112
8.2 Grafik 112
8.3 Sonstiges 113
9 Anhang 4: GLSL Kurz-Referenz 114
9.1 Data types 114
9.2 Data type qualifiers 114
9.2.1 Global variable declarations 114
9.2.2 Function parameters 115
9.3 Vector components 116
9.4 Preprocessor 116
9.5 Vertex shader variables 116
9.5.1 Special Output Variables 116
9.5.2 Special input variables 117
9.5.3 Varying outputs 117
9.5.4 Attribute inputs 117
9.6 Fragment shader variables 117
9.6.1 Special Output Variables 117
9.6.2 Special input variables 118
9.6.3 Varying inputs 118
9.7 Built-in constants 118
9.8 Built-in uniforms 118
9.9 Built-in functions 121
9.9.1 Angle and Trigonometry Functions 121
9.9.2 Exponential Functions 122
9.9.3 Common Functions 122
9.9.4 Geometric Functions 123
9.9.5 Matrix Functions 123
9.9.6 Vector Relational Functions 124
9.9.7 Texture Lookup Functions 124
9.9.8 Texture Lookup Functions with LOD 129
9.9.9 Fragment Processing Functions 130
9.9.10 Noise Functions 130
10. Stichwortverzeichnis 131

Eine Textprobe schicken wir Ihnen gerne unter Angabe der Studiennummer 12871 zu.

Arbeit zitieren:
Ihde, Heiko Februar 2009: Shader mit GLSL, Hamburg: Diplomica Verlag

Schlagworte:
Shader, OpenGL, GLSL, 3D Grafik, Texturing

Entdecken Sie mehr zum Thema

diplom.de
Bachelor + Master Publishing

Hermannstal 119 k
22119 Hamburg

Fon: +49 (0) 40 655992-0
Fax: +49 (0) 40 655992-22

Service-Telefon

Rufen Sie uns an:
+49 (0) 40 655992-0

Mo-Fr
09.00-16.00 Uhr

diplom.de in den Medien

Folgen Sie uns bei Twitter & werden Sie diplom.de-Fan bei Facebook!
Schreibtipps unserer Lektoren, Neuigkeiten aus dem Verlagsalltag und das Expertenwissen unserer Autoren als Tweet & Post!
Wir freuen uns auf Sie!

diplom.de BACHELOR + MASTER PUBLISHING

Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Magisterarbeiten, Dissertationen und andere Abschlussarbeiten aus allen Fachbereichen und Hochschulen können Sie bei uns als eBook sofort per Download beziehen oder sich auf CD oder als Buch zusenden lassen. Seit mehr als 15 Jahren ist diplom.de der seriöse, professionelle und erfolgreiche Partner für die Veröffentlichung wissenschaftlicher Abschlussarbeiten.

© Diplomica Verlag GmbH 1996-2011, AG Hamburg HRB 80293 - GF Björn Bedey, USt-IdNr.: DE214910002 - Verkehrsnummer: 12285 - Impressum
Index der Arbeiten - Index der Autoren