HLSL High-Level Shader Language

Größe: px
Ab Seite anzeigen:

Download "HLSL High-Level Shader Language"

Transkript

1 HLSL Einführung 1 HLSL High-Level Shader Language High-Level Shader Language ist eine relativ neue Programmiersprache für die Graphic Processing Unit (GPU). Mit HLSL ist das Programmieren von Shadern mit DirectX 9 um einiges einfacher geworden. Anders als in Assembler kann der Code nun in vertrauter C-Syntax geschrieben werden, der dann von D3DX, einer Hilfsbibliothek von DirectX, in die Maschinensprache übersetzt wird. Einordnung in der Direct3D Render-Pipeline Wie man in der nachfolgenden Darstellung gut erkennen kann, bilden Vertex- und Pixel-Shader eine Art alternativen Weg für die Vertices / Pixel. Dadurch hat der Programmierer totale Kontrolle über die Transformation und Beleuchtung der Vertices. Es ist sogar möglich, jeden einzelnen Pixel individuell zu gestalten. Abb. 1: Render-Pipeline

2 HLSL Einführung 2 Vertex-Shader Der Vertex-Shader liest Vertexdaten (lokaler Positionsvektor, Normalenvektor, ) aus den gefüllten Registern und transformiert diese. Ein Positionsvektor (meistens der projizierte Vertex) muss immer zurückgegeben werden. Es ist nicht möglich, einen Vertex zu entfernen oder hinzuzufügen. Wie man oben in der Darstellung erkennen kann, hat der Vertex-Shadern keinen Einfluss auf die nachfolgenden (Pixel-)Operationen. Die Tesselierungseinheiten werden dem Vertex-Shader mittels Vertex-Deklaration mitgeteilt respektive in ein Shader-Register geschrieben. Der Vertex- bzw. Pixel-Shader öffnet dann einfach diese Register und liest die benötigten Daten heraus. Die folgende Deklaration sorgt dafür, dass der Vertex-Shader den Positions- und Normalenvektor (in Object-Space) aller Vertices, die die Direct3D- Pipeline durchwandern, bekommt. IDirect3DVertexDeclaration9* g_lpvertexdecl; D3DVERTEXELEMENT9 VertexDeclElem[] = // Stream, Offset, Type, Method, Usage (Position des Vertex) 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, // 2D Texturkoordinaten angeben, Offset: 3 * 4 Bytes = 12 0, 12, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, D3DDECL_END() // Ende der Deklaration }; IDirect3DDevice9::CreateVertexDeclaration(DeclElem, &g_lpvertexdecl); IDirect3DDevice9::SetVertexDeclaration(g_lpVertexDecl); Pixel-Shader Der Pixel-Shader, wer hätte das gedacht, kümmert sich um die einzelnen Pixel, die durch vorhergehende Operationen noch nicht aus der Pipeline entfernt wurden. Die Rückgabewerte des Vertex-Shaders sind die Eingabewerte des Pixel-Shaders. Der Vertex-Shader gibt also sozusagen seine Ergebnisse weiter an den Pixel-Shader. Übergebene Positionsvektoren (Weltkoordinaten, lokale Koordinaten oder View-Space) werden zwischen den Vertices interpoliert, um den Pixel möglichst genau zu treffen. Diese Tatsache macht es dann auch möglich, eine wesentlich schönere Beleuchtung auf Pixel-Basis durchzuführen. Der Pixel-Shader beeinflusst im Gegensatz zum Vertex- Shader die nachfolgenden Pipeline-Stufen. Der Rückgabewert eines Pixel-Shaders ist immer die Endfarbe (float4-wert) des gerade bearbeiteten Pixels.

3 HLSL Einführung 3 Beleuchtung Ambiente Beleuchtung Die Lichtstrahlen fallen gleichmässig aus allen Richtungen auf das Objekt, so dass zu jedem Pixel, unabhängig von seiner Lage, ein konstanter Farbwert addiert werden kann. Dieser Wert sollte weder null (total dunkel) noch eins sein. Die Texelfarbe wird einfach aus einer Textur gelesen und dient als Farbgrundlage für das Objekt. Pixel Color = Texel Color A Color A Intensity Abb. 2: Ambient Lighting Diffuse Beleuchtung Bei der diffusen Beleuchtung hat die Lichtquelle eine Position im Raum. Die Lichtstrahlen fallen also aus einer gezielten Richtung auf das Objekt. Die Intensität, mit der die Lichtquelle das Objekt beeinflusst, ist abhängig vom Winkel zwischen Normalenvektor der Objektoberfläche und Richtungsvektor des Lichts. N L = N L cos α Wenn beide Vektoren normalisiert sind, kann die Formel wie folgt vereinfacht werden: N L = cos α Das Punktprodukt wird mit der Streufarbe (engl. diffuse color) multipliziert. Nun variiert die Lichtstärke in Abhängigkeit des Einfallswinkels α. Wird das Punktprodukt negativ, so wird anstatt des negativen Werts die Null verwendet, denn wenn der Winkel grösser als 90 wird, fällt ja kein Licht mehr auf die Objektfläche. Die Reflektion des Lichts ist jedoch unabhängig von der Position der Kamera. Pixel Color = Texel Color D Color D Intensity ( N L )

4 HLSL Einführung 4 Abb. 3: Diffuse Lighting (N dot L) Spekulare Beleuchtung Ein weiteres Beleuchtungselement ist das Glanzlicht. Die Intensität ist auch hier abhängig vom Einfallswinkel der Lichtstrahlen, aber zusätzlich auch noch vom Beobachterstandort. Damit lassen sich glänzende, polierte Oberflächen simulieren. Eine mögliche Formel für die spekulare Beleuchtung ist das Beleuchtungsmodell von Phong: Die Phong sche Formel verwendet den Betrachtungsvektor sowie den Reflektionsvektor des Lichts. Auch diese Vektoren müssen normalisiert vorliegen. R = 2 ( N L ) N L V = Eye Position Vertex Position V R = V R cos α ( V R ) n = ( cos α ) n Je höher der Exponent n, desto genauer ist die Reflektionslinse. Für metallische Objekte sollte man hier einen hohen Wert (z.b. 64) wählen. Die ganze Formel der Phong-Beleuchtung lautet: Pixel Color = S Color S Intensity ( V R ) n

5 HLSL Einführung 5 Abb. 4: Diffuse & Specular Lighting Kombination der Beleuchtungsmodelle Kombiniert man alle drei Beleuchtungsmodelle, so erhält man folgende Formel: Pixel Color = Texel Color ( A Color A Intensity + D Color D Intensity ( N L ) ) + S Color S Intensity ( V R ) n Das ganze in der Praxis: Die Vertex-Shader-Funktion transformiert lediglich dien Positionsvektor und speichert die Texturkoordinaten, den Normalenvektor und die Position in Weltkoordinaten in einer Struktur ab. Der Pixel-Shader sorgt danach für Per-Pixel-Lighting, also Beleuchtung auf Pixelbasis! // V E R T E X - S H A D E R VS_OUTPUT VSEffect( float4 Pos : POSITION, float3 Normal : NORMAL, float2 Tex : TEXCOORD0 ) VS_OUTPUT Out = (VS_OUTPUT)0; // Texturkoordinaten unverändert speichern Out.Tex = Tex; // zu Weltkoordinaten transformieren Out.WPos = mul( Pos, g_mviewprojection ); Out.Normal = mul( Normal, g_mworld ); // Weltkoordinaten weiter transformieren Out.Pos = mul( Out.WPos, g_mviewprojection ); } return Out; // P I X E L - S H A D E R float4 PSEffect( VS_OUTPUT In ) : COLOR // Basisfarbe aus Textur lesen float4 BaseColor = tex2d( BaseMapSampler, In.Tex ); float3 N = normalize( In.Normal ); float3 L = -normalize( g_lightdir ); // saturate sorgt dafür, dass der Wert nicht negativ wird float Angle = saturate( dot( N, L ) ); // Winkel α float3 R = normalize( 2 * Angle * N - L ); // Reflektionsvektor

6 HLSL Einführung 6 float3 V = normalize( g_eyepos - In.WPos ); // View-Vektor } // Farbe = Ambient + Diffus + Specular return BaseColor * ( g_ambientcolor * g_fambient + g_diffusecolor * g_fdiffuse * Angle ) + g_specularcolor * pow( saturate(dot( R, V )), 8 ); Hinweis: Faktoren für die Intensität der einzelnen Komponenten wären eigentlich gar nicht nötig. Stattdessen kann man die Umgebungs- und Streufarbe etwas herunterskalieren; das Endergebnis ist in etwa dasselbe. Hemispherical Lighting Bei dieser Beleuchtungstechnik wird die Szene in zwei Hälften die obere und untere Hemisphäre unterteilt. Für jeden einzelnen Vertex wird geprüft, ob er mehr von der oberen oder unteren Hälfte sichtbar ist. Jeder der beiden Hemisphären wird eine Farbe zugeteilt (Sky Color und Ground Color). Nun wird die Vertexfarbe durch das Zusammenblenden dieser beiden Grundfarben in Abhängigkeit des Winkels zwischen Himmelvektor (Sky Vector) und Vertexnormalen ermittelt. Damit wirkt die Beleuchtung noch realistischer. Der folgende Code ist gegenüber der Formel in der DirectX SDK Doku vereinfacht: float LerpFactor = (dot(normal, g_skydir) + 1) / 2; // Boden und Himmelfarbe vermischen ResColor += lerp(g_ground, g_sky, LerpFactor); Abb. 5: Hemispherical Lighting Schattierungsterm Lässt man die Berechnung eines Schattierungsterms weg, dann wird die Objektfläche fälschlicherweise auch erhellt, wenn der Lichtvektor vom Objekt selbst verdeckt ist. Es gibt mehrere Möglichkeiten, diesen Schattierungsfaktor für die Streu- und Glanzfarbe zu berechnen. Hier eine Variante (Variablennamen beziehen sich auf das Codebeispiel von oben): float Shadow = saturate( 4 * Angle );

7 HLSL Einführung 7 Punktlichter Der bisherige Ansatz hat sich auf direktionale Lichter (Richtungslichter) beschränkt. Diese sind so weit entfernt, dass eine Berechnung des Lichtrichtungsvektors für jeden einzelnen Vertex resp. Pixel wegfällt. Im Gegensatz zu den Richtungslichtern spielt bei Punktlichtern die Distanz zur Lichtquelle eine bedeutende Rolle. Objekte in unmittelbarer Entfernung werden natürlich stärker beleuchtet als jene, die weit entfernt sind. Der Abschwächungsfaktor kann mit einer der folgenden Formeln berechnet werden: Attenuation = 1 ( x / r ) 2 + ( y / r ) 2 + ( z / r ) 2 Attenuation = Intensity / ( L L ) Attenuation = Intensity / ( const + linear * distance + quadratic * distance 2 ) Alle drei Formeln verwenden natürlich die Distanz zwischen Vertex / Pixel und Lichtquelle. Bei der Berechnung der Distanz muss die Wurzel natürlich nicht gezogen werden. Die dritte Formel entspricht der von Direct3D. Schlussendlich spielt es keine Rolle, welchen Term man verwendet. Wichtig ist aber, dass nur die Streu- und Glanzfarbe mit dem Abschwächungsfaktor multipliziert werden. Environment Mapping Environment Mapping ist eine Technik, mit der unter anderem spiegelnde Oberflächen simuliert werden können (Reflection). In einer sog. Cube-Map ( Würfeltextur ) sind sechs Texturen untergebracht, welche die Szene um das Objekt von allen sechs Seiten (rechts, links, oben, unten, vorne, hinten) beinhalten. Im Vertex- oder Pixel-Shader muss dann nur noch der Reflektionsvektor berechnet werden. α α Normalenvektor Die Berechnung des Reflektionsvektors R läuft eigentlich gleich wie bei der diffusen Beleuchtung. float3 N = normalize(normal); float3 EyeVec = normalize(camerapos VertexPos); float3 ReflVec = reflect(eyevec, N); Die Funktion reflect aus der HLSL Bibliothek tut folgendes: EyeVec - 2 * dot(eyevec, N) * N Damit haben wir den Reflektionsvektor und können nun die Texelfarbe aus der Cube-Map extrahieren: float4 ReflColor = texcube(environmentsampler, ReflVec); Es gibt auch noch die Möglichkeit, Objekte so darzustellen, dass die Objekte dahinter leicht verzerrt erscheinen, als ob man durch ein rundes Glas hindurchschauen würde. Diese Technik ebenfalls Bestandteil von Environment Mapping nennt sich Refraction. Wie bei Reflection muss auch hier ein

8 HLSL Einführung 8 Vektor berechnet werden, um anschliessend wieder die Farbe aus der Textur lesen zu können. Der Term zur Berechnung dieses Vektors ist hier aber wesentlich komplizierter. Doch auch dafür existiert bereits eine vordefinierte Funktion in der DirectX Bibliothek namens reflect. Diese erwartet drei Parameter: Sichtvektor (Betrachterposition zu Vertex), Normalenvektor, etaratio. Mit dem letzten Parameter kann die Verzerrungsstärke angegeben werden. Empfehlenswert sind Werte zwischen 0.7 (sehr stark verzerrt) und 1.0 (keine Verzerrung). Hier die Formel nach Snell s Law: float cosi = dot(-i, N); float cost2 = 1.0f - etaratio * etaratio * (1.0f - cosi * cosi); float3 T = etaratio * I + ((etaratio * cosi - sqrt(abs(cost2))) * N); ReflVec = T * (float3)(cost2 > 0) Abb. 6: Environment Mapping Reflection (links) und Refraction (rechts) Normal Mapping Normal Maps sind Texturen, die verwendet werden können, um Wölbungen und Grübchen auf Oberflächen vorzutäuschen. Der grosse Vorteil dabei ist, dass man mit Normal Mapping (auch unter dem Begriff Bump Mapping bekannt) einen hohen Detailgrad erreichen kann, was sonst nur mit tausenden von zusätzlichen Triangles möglich wäre. In einer Normal Map sind, wie der Name schon sagt, die Normalenvektoren gespeichert, die anstelle der Oberflächennormalen für die Lichtberechnung verwendet werden. Jeder Texel repräsentiert eine Normale, wobei die einzelnen Farbkanäle der x-, y- und z-achse des Vektors entsprechen. Um den Lichtvektor, der üblicherweise in Weltkoordinaten vorliegt, mit der Normalen aus der Textur vergleichen zu können, muss die Lichtrichtung auch in Texturkoordinaten (engl. texture space) transformiert werden. Der Lichtvektor wird einmal pro Objekt mit der inversen Weltmatrize in Object-Space gebracht und dann mit der so genannten Tangent-Matrix transformiert. Jeder Vertex hat quasi einen Normalenvektor, eine Tangente und eine Binormale. Diese drei Vektoren liegen in lokalen Koordinaten (Object-Space) vor. Mit diesen drei Achsenvektoren kann eine Matrix gebildet werden, mit der man Vektoren vom Object- in den Tangent-Space bringen kann.

9 HLSL Einführung 9 Abb. 7: Tangent-Space Beispielcode (Vertex- und Pixel-Shader): VS_OUTPUT VSNormalMapping(float4 Pos : POSITION, float2 Tex : TEXCOORD0, float3 Normal : NORMAL, float3 Tangent : TANGENT0) VS_OUTPUT Out = (VS_OUTPUT)0; float4 WorldPos = mul(pos, g_mworld); Out.Pos = mul(worldpos, g_mviewproj); Out.Tex = Tex * g_ftexnoise; float3 ViewVec = g_objspacecamerapos - Pos; float3 LightVec = g_objspacelightpos - Pos; // Licht- und View-Vektor in Tangent-Space transformieren float3 TempViewVec; Out.LightVec.x = dot(lightvec, cross(tangent, Normal)); Out.LightVec.y = dot(lightvec, Tangent); Out.LightVec.z = dot(lightvec, Normal); TempViewVec.x = dot(viewvec, cross(tangent, Normal)); TempViewVec.y = dot(viewvec, Tangent); TempViewVec.z = dot(viewvec, Normal); Out.HalfAngle = Out.LightVec + TempViewVec; } return Out; float4 PSNormalMapping(VS_OUTPUT In) : COLOR // Texture lookups (Normalenvektoren und Farben herauslesen) float4 TexColor = tex2d(basesampler, In.Tex); float3 Normal = tex2d(bumpsampler, In.Tex); // Normalenvektoren erstellen float3 Smooth = 0.5, 0.5, 1.0}; Normal = lerp(smooth, Normal, g_fbumpscale); Normal = normalize((normal * 2.0f) - 1.0f); float Att = saturate(g_flightradius / dot(in.lightvec, In.LightVec)); In.LightVec = normalize(in.lightvec); float3 HalfAngle = normalize(in.halfangle); float Angle = saturate(dot(normal, In.LightVec)); float4 NdotH = dot(normal, HalfAngle); float4 Specular = pow(saturate(ndoth), g_fspecpower); float Shadow = saturate(4 * Angle); } return (TexColor * g_ambient * g_fambient) + (Att * Shadow * ( (TexColor * g_diffuse * g_fdiffuse * Angle) + (g_specular * Specular * g_fspecular) ));

10 HLSL Einführung 10 Abb. 7: Normal Mapping in Action Displacement Mapping Diese Technik basiert auf der Veränderung der Geometriedaten in Echtzeit. Im Vertex-Shader werden aus einer so genannten Displacement Map, die im 8-bit Format vorliegt, die Graustufen extrahiert. Je heller der Texel, desto weiter wird der Vertex entlang seiner Normalen verschoben. So ist es möglich, die Oberfläche einer gewöhnlichen Kugel ohne grossen Aufwand geometrisch zu verformen. Sogar ein Terrain liesse sich mit dieser Technik realisieren! Displacement Mapping setzt das Shader-Model 3 voraus, denn erst seit dieser Version wird das lesen von Texturdaten (texture lookups) im Vertex- Shader unterstützt. Momentan ist dieser Shader nur auf wenigen Grafikkarten (ab der Geforce 6- Reihe) lauffähig. Trotzdem lohnt es sich, diese Technik einmal näher zu betrachten, denn Zukunftsorientierung ist sehr wichtig =). // V E R T E X - S H A D E R VS_OUTPUT VSEffect(float4 Pos : POSITION; float3 Normal : NORMAL; float2 Tex : TEXCOORD0) VS_OUTPUT Out = (VS_OUTPUT)0; Out.Tex = In.Tex; Out.WPos = mul(in.pos, g_mworld); Out.Normal = mul(in.normal, g_mworld); // Welttransformation float fdisplace = tex2dlod(displacesampler, float4(in.tex.x, In.Tex.y, 0, 0)); float3 DisplacePos = Out.WPos + float4(out.normal, 1.0) * fdisplace; Out.Wpos = DisplacePos; // abgeänderte Vertex-Position projizieren Out.Pos = mul(float4(displacepos, 1), g_mviewproj);

11 HLSL Einführung 11 } return Out; // P I X E L S H A D E R float4 PSEffect(VS_OUTPUT In) : COLOR // Basisfarbe aus Textur lesen und zurückliefern return tex2d(basemapsampler, In.Tex * g_ftexnoise); } Die korrekte Beleuchtung eines Objekts mit Displacement Mapping ist leider nicht ganz so simpel, denn wenn die Vertices verschoben werden, ändern sich die Normalenvektoren. Das heisst, man müsste die Normalen jedes Mal wieder neu berechnen. Für all jene, die nicht Inhaber von Geforce 6-Karten sind, gibt es eine alternative Möglichkeit, nämlich das so genannte Virtual Displacement Mapping. Virtual deshalb, weil die Geometrie nicht wirklich verformt wird. Mit dieser Technik erzielt man bessere Ergebnisse als mit Parallax Mapping, doch dafür ist die Umsetzung etwas komplizierter. Wer sich dafür interessiert, der sollte sich einmal das Skript View-Dependent Displacement Mapping von Nvidia ansehen. Parallax Mapping Ähnlich wie bei Bump Mapping wird auch hier Geometrie vorgetäuscht. Aus einer so genannten Height-Map werden, wie der Name schon sagt, die Höhendaten gelesen. Entlang des zweidimensionalen View-Vectors (Vertex-zu-Kamera-Vektor) werden dann die Texturkoordinaten, je nach Height-Map-Wert, leicht verschoben, sodass beim schrägen Betrachten Oberflächen dreidimensional ausschauen können. Abb. 8: Diese Wand besteht tatsächlich nur aus zwei Dreiecken

12 HLSL Einführung 12 Abb. 9: Parallax Bump Mapping (links), Bump Mapping (Mitte), N.L Beleuchtung (rechts) Ausblick Zum Thema Shader könnte man ein ganzes Buch schreiben. Dem Programmierer stehen jegliche Tore offen und er kann seiner Phantasie freien Lauf lassen. Einzig und allein die Hardware selbst definiert eine obere Schranke. Mit Shadern lässt sich, wie bereits angetönt, praktisch jeder Effekt erzielen, sei es jetzt Charakteranimation oder irgendeine Material- oder Wolkensimulation. Zum Schluss noch ein paar Appetithäppchen: Abb. 10: Pixel-Shader 2.0 Wood and Marble

13 HLSL Einführung 13 Quellenverzeichnis Literaturverzeichnis [ ] [ ] [ ] Brünger, Thomas (2004). Spiele-Programmierung Grafik-Engine. PC Games Hardware, , 150ff Abbildungsverzeichnis Abb.1-10: eigene Screenshots und Grafiken Copyright 2005 by Reto Da Forno Irrtümer vorbehalten

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU (7) Normal Mapping Vorlesung Computergraphik II S. Müller Dank an Stefan Rilling Einleitung Die Welt ist voller Details Viele Details treten in Form von Oberflächendetails auf S. Müller - 3 - Darstellung

Mehr

Softwareprojekt Spieleentwicklung

Softwareprojekt Spieleentwicklung Softwareprojekt Spieleentwicklung Prototyp I (2D) Prototyp II (3D) Softwareprojekt 12.04. 19.04. 26.04. 03.05. 31.05. Meilenstein I 28.06. Meilenstein II Prof. Holger Theisel, Tobias Günther, OvGU Magdeburg

Mehr

Seminar Game Development Game Computer Graphics. Einleitung

Seminar Game Development Game Computer Graphics. Einleitung Einleitung Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig

Mehr

Wima-Praktikum 2: Bildsynthese-Phong

Wima-Praktikum 2: Bildsynthese-Phong Wima-Praktikum 2: Bildsynthese-Phong Wima-Praktikum 2: Prof. Dr. Lebiedz, M. Sc. Radic 1 Inhaltsverzeichnis 1 Einleitung 3 2 Kurze Beschreibung der Aufgabenstellung und dem Phong- Modell 3 3 Modellierung

Mehr

Lokale Beleuchtungsmodelle

Lokale Beleuchtungsmodelle Lokale Beleuchtungsmodelle Oliver Deussen Lokale Modelle 1 Farbschattierung der Oberflächen abhängig von: Position, Orientierung und Charakteristik der Oberfläche Lichtquelle Vorgehensweise: 1. Modell

Mehr

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten

Mehr

Real-Time High-Dynamic Range Texture Mapping

Real-Time High-Dynamic Range Texture Mapping Real-Time High-Dynamic Range Texture Mapping Jonathen Cohen, Chris Tchou, Tim Hawkins and Paul Debevec Präsentiert von Daniel Wickeroth Einführung Worum geht s? Darstellung realistischer Szenen Innen -

Mehr

4.3 Beleuchtung und Schattierung

4.3 Beleuchtung und Schattierung 4.3 Beleuchtung und Schattierung Die Grundbestandteile des Renderprozesses Atmosphärische Streuung Emission Reflexion/ Transmission/ Emission Oberfläche 4-38 4.3 Beleuchtung und Schattierung Beleuchtung

Mehr

"rendern" = ein abstraktes geometrisches Modell sichtbar machen

rendern = ein abstraktes geometrisches Modell sichtbar machen 3. Grundlagen des Rendering "rendern" = ein abstraktes geometrisches Modell sichtbar machen Mehrere Schritte: Sichtbarkeitsberechnung Beleuchtungsrechnung Projektion Clipping (Abschneiden am Bildrand)

Mehr

Heute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9)

Heute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9) t.jung@fhtw-berlin.de Heute Programmierbare Hardware-Shader Thomas Jung Architektur moderner Grafikkarten Rendering von Polygonlisten mit DirectX9 Vertex- und Pixel(Fragment) shader Motivation Spiele kommen

Mehr

Überblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de

Überblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de Überblick Echtzeit-Rendering Uwe Domaratius dou@hrz.tu-chemnitz.de Gliederung 1. Einleitung 2. geometriebasierende Verbesserungen 3. Level-of-Detail 4. Culling 5. Texturen 6. bildbasiertes Rendering Was

Mehr

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung

Mehr

Thema: Hardware-Shader

Thema: Hardware-Shader Seminar Grafikprogrammierung Thema: Hardware-Shader Christian Bauer 03.07.08 Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick 1/19 Entwicklung (1) Früher: Berechnung

Mehr

RTT DeltaGen Suite. Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination. Copyright 2010 by Realtime Technology AG

RTT DeltaGen Suite. Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination. Copyright 2010 by Realtime Technology AG RTT DeltaGen Suite Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination Copyright 2010 by Realtime Technology AG Look Editor Der Look Editor zeigt die Eigenschaften des Looks des selektierten

Mehr

Jörn Loviscach Hochschule Bremen

Jörn Loviscach Hochschule Bremen Programmierbare Hardware-Shader Jörn Loviscach Hochschule Bremen Überblick Vertex- und Pixel-Shader Anwendungsbeispiele fx-dateien Anwendungsbeispiele Zusammenfassung Puffer Vertex- und Pixel-Shader Hardware-Renderpipeline

Mehr

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung Computergrafik 2010 Oliver Vornberger Kapitel 18: Beleuchtung 1 Ausgangslage am Ende der Viewing Pipeline liegt vor: P A Materialeigenschaften P B P C 2 Beleuchtungmodelle lokal: Objekt, Lichtquellen,

Mehr

Rendering: Lighting & Shading

Rendering: Lighting & Shading Hauptseminar How to make a Pixar Movie WS 2010 / 2011 Rendering: Lighting & Shading von Manuel Schmidt Gliederung: 1 Einführung 1.1 Rendering 1.2 Reflektionsmodelle 1.2.1. Diffuse Reflektion 1.2.2. Spieglende

Mehr

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de Rendering Grundlagen Version 1.0-2009-04-08 Allgemeine Unterschiede bei Renderern Scanline Rendering Raytrace Rendering Renderlayer Einsatz von Renderlayern Overrides Material Overrides Layer Presets Batch

Mehr

Modellierung von Reflexionseigenschaften verschiedener Stoffe für interaktives Echtzeit-Rendering

Modellierung von Reflexionseigenschaften verschiedener Stoffe für interaktives Echtzeit-Rendering HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK VISUAL COMPUTING Diplomarbeit Modellierung von Reflexionseigenschaften verschiedener Stoffe für interaktives Echtzeit-Rendering Bojko Heinrich 4.

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Computergraphik Grundlagen IX. Texturen und Schatten Prof. Stefan Schlechtweg Hochschule Anhalt Fachbereich Informatik Inhalt Lernziele 1. Texture Mapping 1. Texture Pipeline 2. Environment Mapping 3.

Mehr

Proseminar Computergraphik. Raytracing

Proseminar Computergraphik. Raytracing TECHNISCHE UNIVERSITÄT DRESDEN FAKULTÄT INFORMATIK INSTITUT FÜR SOFTWARE- UND MULTIMEDIATECHNIK PROFESSUR FÜR COMPUTERGRAPHIK UND VISUALISIERUNG PROF. DR. STEFAN GUMHOLD Proseminar Computergraphik Raytracing

Mehr

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen Universität Hamburg Fachbereich Informatik Arbeitsbereich Technische Aspekte Multimodaler Systeme Seminar Informatikanwendungen in Nanotechnologien Betreuer: Bernd Schütz Sommersemester 2014 Shadingalgorithmen

Mehr

Inhaltsverzeichnis. V Vorwort 17. V.1 An wen richtet sich dieses Buch? 18. V.2 Ansprüche an den Computer 18. V.4 Bildergalerie 19.

Inhaltsverzeichnis. V Vorwort 17. V.1 An wen richtet sich dieses Buch? 18. V.2 Ansprüche an den Computer 18. V.4 Bildergalerie 19. V Vorwort 17 V.1 An wen richtet sich dieses Buch? 18 V.2 Ansprüche an den Computer 18 V.3 Website 19 V.4 Bildergalerie 19 V.5 Über den Autor 20 1 Einführung 21 1.1 Installation 21 1.2 Projekttypen 22 1.3

Mehr

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen 3D-Rendering Ulf Döring, Markus Färber 07.03.2011 1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen Anzeigefläche (a) Worin besteht das Sichtbarkeitsproblem?

Mehr

Das Skalarprodukt zweier Vektoren

Das Skalarprodukt zweier Vektoren Beim Skalarprodukt zweier Vektoren werden die Vektoren so multipliziert, dass sich ein Skalar eine Zahl ergibt. Die Berechnung des Skalarproduktes ist ziemlich einfach, aber die weiteren Eigenschaften

Mehr

OpenGL. (Open Graphic Library)

OpenGL. (Open Graphic Library) OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Beleuchtungsberechnung Graphische DV und BV, Regina Pohle, 21. Beleuchtungsberechnung 1 Einordnung in die Inhalte der Vorlesung

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Beleuchtungsmodelle in OpenGL Bump-Maps zur Erzeugung von Reliefartigen Oberflächen Height-Maps

Mehr

Games Engines. Realtime Terrain Rendering

Games Engines. Realtime Terrain Rendering Games Engines Realtime Terrain Rendering RTR Gliederung Probleme & Anforderungen Grundlagen Heightmaps und Paging Visibility View Frustrum Culling Occlusion Culling/ Occlusion Map Fogging Level of Detail

Mehr

Asteroids3D Seminar: Game Programming. Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann

Asteroids3D Seminar: Game Programming. Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann Asteroids3D Seminar: Game Programming Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann Gliederung 2 1. Live-Demo und Spielidee 2. Softwarearchitektur und Szenengraph Übersicht

Mehr

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1 Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen

Mehr

Komplexpraktikum Graphische Datenverarbeitung im WS 04/05

Komplexpraktikum Graphische Datenverarbeitung im WS 04/05 Komplexpraktikum Graphische Datenverarbeitung im WS 04/05 von Enrico Leonhardt 28 45 669 TU Dresden Medieninformatik 29. März 2005 Graphische Datenverarbeitung WS 04/05 Einführung Dieser Raytracer entstand

Mehr

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997 Raytracing Schlussbericht Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997 bei Betreuer Marco Manzi, Institut für Informatik und angewandte Mathematik Inhalt Fragestellung...

Mehr

Seminar: Programmierung von Grafikkarten (SS 2006)

Seminar: Programmierung von Grafikkarten (SS 2006) Seminar: Programmierung von Grafikkarten (SS 2006) Shader Christian Niemand (nemojr@gmx.de) Johannes Spohr (jspohr@student.uni-kassel.de) Universität Kassel, FB 16 Research Group Programming Languages

Mehr

Globale Beleuchtung. Thorsten Grosch. Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg

Globale Beleuchtung. Thorsten Grosch. Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg Praktikum Globale Beleuchtung Thorsten Grosch Wer bin ich Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg g Davor Studium Informatik TU Darmstadt Fraunhofer IGD Lichtsimulation

Mehr

Analytische Geometrie I

Analytische Geometrie I Analytische Geometrie I Rainer Hauser Januar 202 Einleitung. Geometrie und Algebra Geometrie und Algebra sind historisch zwei unabhängige Teilgebiete der Mathematik und werden bis heute von Laien weitgehend

Mehr

OpenGL als API für Augmented und Virtual Reality

OpenGL als API für Augmented und Virtual Reality OpenGL als API für Augmented und Virtual Reality Tobias Lang langt@cip.ifi.lmu.de Hausarbeit im Hauptseminar Augmented und Virtual Reality Inhaltsverzeichnis 1. Einleitung... 3 2. Was ist OpenGL... 3 3.

Mehr

C A R L V O N O S S I E T Z K Y. Licht & Material. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

C A R L V O N O S S I E T Z K Y. Licht & Material. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011 C A R L V O N O S S I E T Z K Y Licht & Material Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011 Motivation Licht & Material Geometrisch gut aussehende Modelle allein sind nicht

Mehr

Analytische Geometrie II

Analytische Geometrie II Analytische Geometrie II Rainer Hauser März 212 1 Einleitung 1.1 Geradengleichungen in Parameterform Jede Gerade g in der Ebene oder im Raum lässt sich durch einen festen Punkt auf g, dessen Ortsvektor

Mehr

Praktikum: Spieleengine im Eigenbau

Praktikum: Spieleengine im Eigenbau Seite 1/17 Praktikum Spieleengine im Eigenbau Alexander Weggerle, Tobias Bäuerle 19.10.09 http://www.saschawillems.de Praktikum: Spieleengine im Eigenbau Seite 2/17 Praktikum Spieleengine im Eigenbau Alexander

Mehr

RENDERING. Cobalt Xenon Argon. mit Ashlar-Vellum. www.arnold-cad.com

RENDERING. Cobalt Xenon Argon. mit Ashlar-Vellum. www.arnold-cad.com RENDERING mit Ashlar-Vellum Cobalt Xenon Argon www.arnold-cad.com Erstellen photorealistischer Darstellungen Erstellen Sie Ihre Welt! Modellier Tips für mehr Realität Hintergrund und Szene Betrachtung

Mehr

Grundlagen der Spieleprogrammierung

Grundlagen der Spieleprogrammierung Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 9: Engines, Cg und anderes Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch

Mehr

1 Fraktale Eigenschaften der Koch-Kurve

1 Fraktale Eigenschaften der Koch-Kurve Anhang Inhaltsverzeichnis Fraktale Eigenschaften der Koch-Kurve iii. Einführung.................................. iii.2 Defintion.................................... iii.3 Gesamtlänge der Koch-Kurve........................

Mehr

Linear Workflow. Linear Workflow. Version 1.0-2011-10-11

Linear Workflow. Linear Workflow. Version 1.0-2011-10-11 Version 1.0-2011-10-11 Verfahren, Bilder unter Rücksichtnahme ihres Farbprofils und der des Ausgabegeräts zu berechnen (3D), bzw. zu bearbeiten (Compositing), um eine mathematisch und physikalisch korrekte

Mehr

Der Einsatz von HDRIs in LightWave 7

Der Einsatz von HDRIs in LightWave 7 Seite 1 DOSCH DESIGN TUTORIAL Der Einsatz von HDRIs in LightWave 7 Eine Schritt-für-Schritt-Anleitung LightWave kann ab der Version 6.5 HDRIs (High Dynamic Range Images) als Beleuchtung und Hintergrund

Mehr

Analytische Geometrie Seite 1 von 6. Die Addition von Vektoren kann veranschaulicht werden durch das Aneinanderhängen von Pfeilen.

Analytische Geometrie Seite 1 von 6. Die Addition von Vektoren kann veranschaulicht werden durch das Aneinanderhängen von Pfeilen. Analytische Geometrie Seite 1 von 6 1. Wichtige Formeln AB bezeichnet den Vektor, der die Verschiebung beschreibt, durch die der Punkt A auf den Punkt B verschoben wird. Der Vektor, durch den die Verschiebung

Mehr

3.3 Beleuchtung und Schattierung

3.3 Beleuchtung und Schattierung 3.3 Beleuchtung und Schattierung Die Beleuchtung einer Szenerie kann lokal oder global modelliert werden Ein lokales Beleuchtungsmodell berechnet die Intensität bzw. Farbe eines Objektpunkts abhängig vom

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Übung Elementarmathematik im WS 2012/13. Lösung zum Klausurvorbereitung IV

Übung Elementarmathematik im WS 2012/13. Lösung zum Klausurvorbereitung IV Technische Universität Chemnitz Fakultät für Mathematik Dr. Uwe Streit Jan Blechschmidt Aufgabenkomplex 7 - Vektoren Übung Elementarmathematik im WS 202/3 Lösung zum Klausurvorbereitung IV. (5 Punkte -

Mehr

3D-Transformationen. Kapitel Translation Skalierung

3D-Transformationen. Kapitel Translation Skalierung Kapitel 13 3D-Transformationen Wie im weidimensionalen Fall, werden die Definitionspunkte der Objekte als Spaltenvektoren mit homogener Koordinate geschrieben. Die notwendigen Transformationen werden wieder

Mehr

Rechnen mit Vektoren. 1. Vektoren im Koordinatensystem Freie Vektoren in der Ebene

Rechnen mit Vektoren. 1. Vektoren im Koordinatensystem Freie Vektoren in der Ebene Rechnen mit 1. im Koordinatensystem 1.1. Freie in der Ebene 1) Definition Ein Vektor... Zwei sind gleich, wenn... 2) Das ebene Koordinatensystem Wir legen den Koordinatenursprung fest, ferner zwei zueinander

Mehr

Mathematik Analytische Geometrie

Mathematik Analytische Geometrie Mathematik Analytische Geometrie Grundlagen:. Das -Dimensionale kartesische Koordinatensystem: x x x. Vektoren und Ortsvektoren: a x = x x ist ein Vektor, der eine Verschiebung um x -Einheiten in x-richtung,

Mehr

computer graphics & visualization

computer graphics & visualization Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs Motivation

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Billboards Letztes Übungsblatt: Meshes & Instancing um dem Terrain zusätzliche Details (Vegtation) hinzuzufügen. Nachteil:

Mehr

Non-Photorealistic Rendering

Non-Photorealistic Rendering Übersicht 1. Motivation und Anwendungen 2. Techniken - Cel Shading - Konturlinien - Hatching Einführung Traditionelle Computergraphik Ziel: Fotorealismus Einführung Motivation Bewusste Vermeidung von

Mehr

Proseminar Computergraphik. 3D - Modellierung

Proseminar Computergraphik. 3D - Modellierung TECHNISCHE UNIVERSITÄT DRESDEN FAKULTÄT INFORMATIK INSTITUT FÜR SOFTWARE- UND MULTIMEDIATECHNIK PROFESSUR FÜR COMPUTERGRAPHIK UND VISUALISIERUNG PROF. DR. STEFAN GUMHOLD Proseminar Computergraphik 3D -

Mehr

19.09.2014. 2D-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen

19.09.2014. 2D-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen 2D-Texturen Texturarten Transformationen Generierung Thomas Jung Reflectance Mapping 3D-Texturen Modellierung von Details erfordert Zeit Darstellung ist aufwendig (langsam) Details belegen Speicherplatz

Mehr

Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe

Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe Grafikprozessoren Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe 2D: Berechnung der Bildes aus einfachen Grafikprimitiven 3D: Bildaufbau aus räumlicher Beschreibung

Mehr

Christina Nell 3D-Computergrafik Seminararbeit im Hauptseminar Grafikprogrammierung. Universität Ulm Sommersemester 2008

Christina Nell 3D-Computergrafik Seminararbeit im Hauptseminar Grafikprogrammierung. Universität Ulm Sommersemester 2008 Christina Nell 3D-Computergrafik Seminararbeit im Hauptseminar Grafikprogrammierung Universität Ulm Sommersemester 2008 1 Inhalt 1 Einleitung 3 2 Beleuchtung 2.1 Grundlagen 2.2 Beleuchtung 2.3 Shading

Mehr

y x x y ( 2x 3y + z x + z

y x x y ( 2x 3y + z x + z Matrizen Aufgabe Sei f R R 3 definiert durch ( ) x 3y x f = x + y y x Berechnen Sie die Matrix Darstellung von f Aufgabe Eine lineare Funktion f hat die Matrix Darstellung A = 0 4 0 0 0 0 0 Berechnen Sie

Mehr

Entwicklung von Environment-Shadern in Cg und CgFX unter Berücksichtigung des Workflows zur Erstellung virtueller Szenenbilder im WDR Köln

Entwicklung von Environment-Shadern in Cg und CgFX unter Berücksichtigung des Workflows zur Erstellung virtueller Szenenbilder im WDR Köln Entwicklung von Environment-Shadern in Cg und CgFX unter Berücksichtigung des Workflows zur Erstellung virtueller Szenenbilder im WDR Köln Bachelorarbeit im Institut für Medien- und Phototechnik an der

Mehr

Computer-Graphik I Transformationen & Viewing

Computer-Graphik I Transformationen & Viewing lausthal Motivation omputer-raphik I Transformationen & Viewing Man möchte die virtuelle 3D Welt auf einem 2D Display darstellen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann

Mehr

2 Geradengleichungen in Parameterform. Länge und Skalarprodukt

2 Geradengleichungen in Parameterform. Länge und Skalarprodukt 2 Geradengleichungen in Parameterform. Länge und Skalarprodukt Jörn Loviscach Versionsstand: 19. März 2011, 15:33 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu:

Mehr

Färben, texturieren und rendern in Solid Edge

Färben, texturieren und rendern in Solid Edge Färben, texturieren und rendern in Solid Edge Man kann den Objekten in Solid Edge Farben geben, transparent oder opak und Texturen. Das sind Bilder die auf die Oberflächen aufgelegt werden. Dabei bekommt

Mehr

Seminar: Grafikprogrammierung

Seminar: Grafikprogrammierung Game Developer Converence 08 Seminar: Grafikprogrammierung Alexander Weggerle 17.04.08 Seite 2 Einführung Themenüberblick Organisatorisches Seminarablauf liches Seite 3 Einführung Seminar Motivation Vorbereitung

Mehr

Prüfungsteil 2, Aufgabe 4 Analytische Geometrie

Prüfungsteil 2, Aufgabe 4 Analytische Geometrie Abitur Mathematik: Prüfungsteil, Aufgabe 4 Analytische Geometrie Nordrhein-Westfalen 0 LK Aufgabe a (). SCHRITT: MITTELPUNKT DER GRUNDFLÄCHE BERECHNEN Die Spitze befindet sich einen Meter senkrecht über

Mehr

Programmieren mit DirectX

Programmieren mit DirectX 2D 3D Programmieren mit DirectX Teil 3: Malte Ried Fachhochschule Gießen-Friedberg 30. Oktober 2005 Inhalt 2D 3D 1 2D 2 3D 3 2D 3D Bis jetzt Windows-Fenster, das man schließen kann initialisiertes Direct3D

Mehr

EPA-Präsentation Tim Keller

EPA-Präsentation Tim Keller EPA-Präsentation 06.07.2007 Tim Keller Inhalt Was ist Cairo? Wo wird Cairo eingesetzt? Was kann Cairo? Schichtenarchitektur von Cairo Entwicklung einer Anwendung Ein bisschen Stack Cairo und OpenGL Cairo

Mehr

Universität Osnabrück Fachbereich Mathematik / Informatik. 5. Vorlesung ( )

Universität Osnabrück Fachbereich Mathematik / Informatik. 5. Vorlesung ( ) Universität Osnabrück Fachbereich Mathematik / Informatik 5. Vorlesung (06.05.2013) Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc. Game Application Layer Rückblick Game

Mehr

Licht und Schatten Visualieren mit dem PC. Andreas Asperl

Licht und Schatten Visualieren mit dem PC. Andreas Asperl Licht und Schatten Visualieren mit dem PC Andreas Asperl Visualisieren Grundlagen der Visualisierung Lichteinflüsse Materialien Anwendungen Tipps und Tricks Grundlagen der Visualisierung In der Computergraphik

Mehr

Analytische Geometrie - Schnittwinkel. u 1, u 2 Richtungsvektoren der Geraden

Analytische Geometrie - Schnittwinkel. u 1, u 2 Richtungsvektoren der Geraden Analytische Geometrie - Schnittwinkel. Möglichkeiten und Formeln Gerade / Gerade: cos( ) = u u 2 u u 2 Gerade / Ebene: sin( ) = n u n u Ebene / Ebene: cos( ) = n n 2 n n 2 u, u 2 Richtungsvektoren der

Mehr

Materialien zur Visualisierung 2002/03 Die Meisterschaft des 1. FC Holzbein eine Einführung in die Vektorrechnung

Materialien zur Visualisierung 2002/03 Die Meisterschaft des 1. FC Holzbein eine Einführung in die Vektorrechnung Materialien zur Visualisierung 22/3 Die Meisterschaft des 1. FC Holzbein eine Einführung in die Vektorrechnung Anpfiff! Soeben hatte die 2. Halbzeit im entscheidenden Meisterschaftsspiel zwischen dem 1.

Mehr

Markus' Formelsammlung für die Vektorgeometrie

Markus' Formelsammlung für die Vektorgeometrie Markus' Formelsammlung für die Vektorgeometrie Markus Dangl.4. Zusammenfassung Dieses Dokument soll eine Übersicht über die Vektorgeometrie für die Oberstufe am Gymnasium geben. Ich versuche hier möglichst

Mehr

00. Einiges zum Vektorraum R n

00. Einiges zum Vektorraum R n 00. Einiges zum Vektorraum R n In diesem einleitenden Kapitel werden die in der LV Einführung in die mathematischen Methoden erwähnten Konzepte über Vektoren (im R 2 und R 3 ) im Rahmen des n-dimensionalen

Mehr

MF Breadcrumbs. Sergej Schefer & Fabian Marx

MF Breadcrumbs. Sergej Schefer & Fabian Marx MF Breadcrumbs Sergej Schefer & Fabian Marx MF Breadcrumbs! Entwurf! Algorithmen! Screenshots / Live-Demo Entwurf! 2.5D Jump n Run! Spieler kann sich durch Level bewegen und Punkte aufsammeln! Freie Levelgestaltung

Mehr

Vektoren - Basiswechsel

Vektoren - Basiswechsel Vektoren - Basiswechsel Grundprinzip Für rein geometrische Anwendungen verwendet man üblicherweise die Standardbasis. Damit ergibt sich in den Zahlenangaben der Koordinaten kein Unterschied zu einem Bezug

Mehr

3D-Computergrafik und animation. Shading und globale Beleuchtungsverfahren, Animationstechniken

3D-Computergrafik und animation. Shading und globale Beleuchtungsverfahren, Animationstechniken 3D-Computergrafik und animation Shading und globale Beleuchtungsverfahren, Animationstechniken 1 Von 2D nach 3D Weiter: Modell für eine Sichtbeschreibung 2 Kameramodell Reale Kamera als Orientierung und

Mehr

Geometrie. Bei der Addition von Vektoren erhält man einen Repräsentanten des Summenvektors +, indem man die Repräsentanten von aneinanderfügt:

Geometrie. Bei der Addition von Vektoren erhält man einen Repräsentanten des Summenvektors +, indem man die Repräsentanten von aneinanderfügt: Geometrie 1. Vektoren Die Menge aller zueinander parallelen, gleich langen und gleich gerichteten Pfeile werden als Vektor bezeichnet. Jeder einzelne Pfeil heißt Repräsentant des Vektors. Bei Ortsvektoren:

Mehr

Damit haben wir schon die Koeffizienten der Gleichung gefunden, in dem wir n noch durch 6 teilen. 5x 2y + 13z = C. (2) = 36 = C.

Damit haben wir schon die Koeffizienten der Gleichung gefunden, in dem wir n noch durch 6 teilen. 5x 2y + 13z = C. (2) = 36 = C. Aufgabenblatt 6 0 Punkte Aufgabe 1 (Pyramide) Gegeben ist eine Pyramide P mit dem Dreieck ABC als Grundfläche und Spitze D. Es sei A(2 0 2), B(10 7 0), C(0 8 ) und D(8 1 10). a) Gib eine (möglichst einfache)

Mehr

Das lineare Gleichungssystem

Das lineare Gleichungssystem 26/27 Grundwissen Analytische Geometrie I m1 as lineare Gleichungssystem Man startet zuerst mit der Betrachtung eines linearen Gleichungssystem mit zwei Unbekannten.(Genaueres siehe Skript) Einführung

Mehr

Grundlegende Algorithmen

Grundlegende Algorithmen 3D Spieleprogrammierung Grundlegende Algorithmen Übersicht Game Loop Spielarchitektur Aufäumen von Strukturen Vorbereiten für spätere Aufgaben Bewegungen Zeitmessung Zeitunabhängigkeit GameLoop Game Engine

Mehr

C# Programm: Raytracer (3D Renderer)

C# Programm: Raytracer (3D Renderer) C# Programm: Raytracer (3D Renderer) Hiermit verbrachten wir die letzte Einheit in C# des Informatikunterrichtes. Dieser Raytracer ist ein Programm, das nur mit wenigen Informationen über einen Raum, der

Mehr

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006 DirectX und OpenGL Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006 2 Inhalt Einleitung Übersicht DirectX und Komponenten Übersicht OpenGL Sprachlicher Aufbau OpenGL Sprachlicher

Mehr

Farbtiefe. Gängige Farbtiefen

Farbtiefe. Gängige Farbtiefen Farbtiefe Die Anzahl der darstellbaren Farben ist abhängig von den Farbabstufungen, die in einem Pixel gespeichert werden. Die Anzahl der darstellbaren Farbtöne wird als Farbtiefe bezeichnet. Die Farbtiefe

Mehr

Computer-Graphik 1 Lighting & Shading

Computer-Graphik 1 Lighting & Shading lausthal omputer-raphik 1. Zachmann lausthal University, ermany cg.in.tu-clausthal.de Beleuchtungsmodelle (lighting models) Definition "Beleuchtungsmodell": Vorschrift zur Berechnung der Farb- und Helligkeitswerte

Mehr

Texture Based Direct Volume Rendering

Texture Based Direct Volume Rendering Texture Based Direct Volume Rendering Vorlesung: "Advanced Topics in Computer Graphics" cbrak@upb.de 1 Agenda 1. Einleitung Volume Rendering 1.1. Volumendatensatz 1.2. Volumenintegral 1.3. Image order

Mehr

& sind die Vektorkomponenten von und sind die Vektorkoordinaten von. A x. a) Der Betrag eines Vektors

& sind die Vektorkomponenten von und sind die Vektorkoordinaten von. A x. a) Der Betrag eines Vektors Einführu hnung Was ist ein Vektor? In Bereichen der Naturwissenschaften treten Größen auf, die nicht nur durch eine Zahlenangabe dargestellt werden können, wie Kraft oder Geschwindigkeit. Zur vollständigen

Mehr

4. Kapitel 3D Engine Geometry

4. Kapitel 3D Engine Geometry 15.11.2007 Mathematics for 3D Game Programming & Computer Graphics 4. Kapitel 3D Engine Geometry Anne Adams & Katharina Schmitt Universität Trier Fachbereich IV Proseminar Numerik Wintersemester 2007/08

Mehr

Transformationen im 3D-Raum

Transformationen im 3D-Raum Thomas Jung Repräsentation von 3D-Oberflächen Aufbau von Szenen Transformationen im 3D-Raum Projektionstranformationen Anwendung in OpenGL Geometrietransformationen bilden die Basis für die Computergrafik

Mehr

Seminar - Paralleles Rechnen auf Grafikkarten

Seminar - Paralleles Rechnen auf Grafikkarten Seminar - Paralleles Rechnen auf Grafikkarten Seminarvortrag: Übersicht über die Programmierung von Grafikkarten Marcus Schaber 05.05.2009 Betreuer: J. Kunkel, O. Mordvinova 05.05.2009 Marcus Schaber 1/33

Mehr

Einführung in GLSL - OpenGL Shading Language. Athanasios Karamalis

Einführung in GLSL - OpenGL Shading Language. Athanasios Karamalis Einführung in GLSL - OpenGL Shading Language Athanasios Karamalis Allgemein zur Shader-Programmierung Vor 2001 konnte nur die sogenannte Fixed Functionality der Graphik API und Graphikkarte verwendet werden

Mehr

Skalarprodukt. Anwendung auf die Berechnung von einfachen Abständen und Winkeln sowie Normalenvektor. Ganz einfache Erklärung der Grundlagen:

Skalarprodukt. Anwendung auf die Berechnung von einfachen Abständen und Winkeln sowie Normalenvektor. Ganz einfache Erklärung der Grundlagen: Vektorgeometrie ganz einfach Teil 5 Skalarprodukt Anwendung auf die Berechnung von einfachen Abständen und Winkeln sowie Normalenvektor Ganz einfache Erklärung der Grundlagen: Die wichtigsten Aufgabenstellungen

Mehr

Formelsammlung Mathematik Grundkurs Inhalt

Formelsammlung Mathematik Grundkurs Inhalt Formelsammlung Mathematik Grundkurs Inhalt Inhalt...1 Trigonometrie Grundlagen... Vektoren...3 Skalarprodukt...4 Geraden...5 Abstandsberechnungen...6 Ebenen...7 Lineare Gleichungssysteme (LGS)...8 Gauß'sches

Mehr

Terrain Rendering v 1.0

Terrain Rendering v 1.0 Tutorial: Terrain Rendering 1 Terrain Rendering v 1.0 Einleitung In dem folgenden Abschnitt geht es darum, ein Terrain für ein Computerspiel in Echtzeit darzustellen. Zuerst wird ein kurzer Überblick über

Mehr

Vektorgeometrie. Inhaltsverzeichnis. Fragen und Antworten. (bitte nur für den Eigengebrauch verwenden)

Vektorgeometrie. Inhaltsverzeichnis. Fragen und Antworten. (bitte nur für den Eigengebrauch verwenden) fua3673 Fragen und Antworten Vektorgeometrie (bitte nur für den Eigengebrauch verwenden) Inhaltsverzeichnis Vektorgeometrie im Raum. Fragen................................................. Allgemeines..........................................

Mehr

Shadow Volumes für animierte 3DCharaktere auf der GPU

Shadow Volumes für animierte 3DCharaktere auf der GPU Masterarbeit mit dem Thema: Shadow Volumes für animierte 3DCharaktere auf der GPU erstellt von unter der Leitung der Betreuer Prof. Dr. Konrad Polthier und Dr. Alexander Wiebel am Fachbereich Informatik/Mathematik

Mehr

Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002

Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Java 3D Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Virtual World Koordinaten System Grundlagen zur Definition visueller Objekte Shape3D Unterklasse der Leaf-Klasse Eigenschaften des visuellen

Mehr

Photon Mapping. Proseminar How to make a P I X A R movie. Inhaltsverzeichnis. Andreas Schmidt 2011

Photon Mapping. Proseminar How to make a P I X A R movie. Inhaltsverzeichnis. Andreas Schmidt 2011 Photon Mapping Proseminar How to make a P I X A R movie Andreas Schmidt 2011 Inhaltsverzeichnis Zusammenfassung...2 Motivation...2 Photon Tracing Pass...3 Aussenden der Photonen...3 Russisches Roulette...3

Mehr

(x 1. Vektoren. g: x = p + r u. p r (u1. x 2. u 2. p 2

(x 1. Vektoren. g: x = p + r u. p r (u1. x 2. u 2. p 2 Vektoren Mit der Vektorrechnung werden oft geometrische Probleme gelöst. Wenn irgendwelche Aufgabenstellungen geometrisch darstellbar sind, z.b. Flugbahnen oder Abstandsberechnungen, dann können sie mit

Mehr

Eine Einführung in die Architektur moderner Graphikprozessoren

Eine Einführung in die Architektur moderner Graphikprozessoren Eine Einführung in die Architektur moderner Graphikprozessoren Seminarvortrag von Sven Schenk WS 2005/2006 Universität Mannheim, Lehrstuhl für Rechnerarchitektur Inhalt Historische Eckpunkte Einführung

Mehr