\contentsline {chapter}{\numberline {1}OpenGL}{4}
\contentsline {section}{\numberline {1.1}Einf\"uhrung}{4}
\contentsline {section}{\numberline {1.2}Architektur}{4}
\contentsline {section}{\numberline {1.3}Pipeline Schritte}{4}
\contentsline {section}{\numberline {1.4}Zust\"ande und der Kontext}{5}
\contentsline {section}{\numberline {1.5}Bibliotheken}{6}
\contentsline {subsection}{\numberline {1.5.1}GLU}{6}
\contentsline {subsection}{\numberline {1.5.2}GLut}{7}
\contentsline {subsection}{\numberline {1.5.3}GLew}{7}
\contentsline {section}{\numberline {1.6}Extensions}{7}
\contentsline {section}{\numberline {1.7}Praxis: Initialisierung mit GLut}{8}
\contentsline {chapter}{\numberline {2}Shader in OpenGL}{12}
\contentsline {section}{\numberline {2.1}ARB Programs}{12}
\contentsline {section}{\numberline {2.2}Cg - C for Graphics}{13}
\contentsline {section}{\numberline {2.3}GLSL - OpenGL Shader Language}{13}
\contentsline {chapter}{\numberline {3}ARB Program Shader}{14}
\contentsline {section}{\numberline {3.1}Praxis: Extensions mit GLew}{14}
\contentsline {section}{\numberline {3.2}Praxis: Laden von Shadern}{14}
\contentsline {section}{\numberline {3.3}ARB Vertex Programs}{15}
\contentsline {section}{\numberline {3.4}ARB Fragment Programs}{16}
\contentsline {section}{\numberline {3.5}Praxis: Binden von Shadern}{17}
\contentsline {chapter}{\numberline {4}GLSL}{18}
\contentsline {section}{\numberline {4.1}GLSL Vertex Shader}{18}
\contentsline {section}{\numberline {4.2}GLSL Fragment Shader}{19}
\contentsline {section}{\numberline {4.3}Datentypen und Variablen}{19}
\contentsline {subsection}{\numberline {4.3.1}Datentypen}{19}
\contentsline {subsection}{\numberline {4.3.2}Variablen}{20}
\contentsline {section}{\numberline {4.4}Praxis: Linken von GLSL Programmen}{21}
\contentsline {section}{\numberline {4.5}Binden von GLSL Shadern}{22}
\contentsline {section}{\numberline {4.6}Kommunikation Applikation und Shader}{23}
\contentsline {section}{\numberline {4.7}Praxis: Kommunikation Applikation und Shader}{24}
\contentsline {chapter}{\numberline {5}Shader}{25}
\contentsline {section}{\numberline {5.1}Monocolor Shader}{25}
\contentsline {subsection}{\numberline {5.1.1}ARB Program Monocolor Shader}{25}
\contentsline {subsection}{\numberline {5.1.2}GLSL Monocolor Shader}{26}
\contentsline {section}{\numberline {5.2}Flat Shader}{27}
\contentsline {subsection}{\numberline {5.2.1}ARB Program Flat Shader}{28}
\contentsline {subsection}{\numberline {5.2.2}GLSL Flat Shader}{28}
\contentsline {section}{\numberline {5.3}Flag Shader}{29}
\contentsline {subsection}{\numberline {5.3.1}GLSL Flag Shader}{29}
\contentsline {section}{\numberline {5.4}Toon Shader}{30}
\contentsline {subsection}{\numberline {5.4.1}GLSL Toon Shader}{30}
\contentsline {section}{\numberline {5.5}Flagge, die 2.}{33}
\contentsline {subsection}{\numberline {5.5.1}GLSL Flag Shader mit Normalen}{33}
\contentsline {section}{\numberline {5.6}Lighting}{34}
\contentsline {subsection}{\numberline {5.6.1}GLSL per Pixel Lighting}{34}
\contentsline {section}{\numberline {5.7}zurueck zur Flagge}{36}
\contentsline {subsection}{\numberline {5.7.1}GLSL Flag Shader mit per Pixel lighting}{36}
\contentsline {section}{\numberline {5.8}wehende Flagge}{38}
\contentsline {subsection}{\numberline {5.8.1}GLSL waving flag Shader}{39}
\contentsline {chapter}{\numberline {6}Vergleich OpenGL und Direct3D}{40}
