Environment Mapping v 1.1
|
|
- Irmela Kneller
- vor 5 Jahren
- Abrufe
Transkript
1 DirectX Tutorial: Environment Mapping 1 Environment Mapping v 1.1 Einleitung Zuerst einmal sei gesagt, dass es verschiedene Arten von Environment Mapping gibt. Hier wird aber nur das Cubic Environment Mapping näher betrachtet. Wie der Name schon sagt, wird dabei eine kubische Umgebungstextur verwendet. Sie haben sich sicher schon einmal gefragt, wie man spiegelnde Oberflächen realisieren könnte. Eine neuere Technik ist Ray-Tracing: Für jeden Pixel des Objekts, das einen Reflektionseffekt aufweisen soll, wird ein Strahl in die 3D-Szene geschossen. Trifft der Strahl (engl. Ray) auf ein Objekt, so wird der Pixel in der Farbe des getroffenen Objekts gezeichnet. Da diese Aufgabe der CPU übergeben werden müsste, wäre eine solche Berechnung für Echtzeitgrafik (momentan) nicht realisierbar. Ein wesentlich schnellerer Ansatz ist daher Cubic Environment Mapping. Theorie Eine kubische Umgebungstextur beinhaltet sechs 2D-Texturen, welche die Szene, die das Objekt umgibt, aus der Sicht von sechs Seiten (vorn, hinten, oben, unten, rechts, links) beinhalten. Somit kann man die Oberfläche von Objekten metallisch glänzen lassen! Hier am besten einmal ein Screenshot, um etwas Motivation aufzubauen =) Abb. 1: Realtime Dynamic Cubic Environment Mapping Eine Cubic Map ( Würfeltextur ) besteht also aus sechs Seiten, für jede Blickrichtung eine. Die folgende Abbildung demonstriert dies:
2 DirectX Tutorial: Environment Mapping 2 Abb. 2: Skybox aufgefaltet Die Würfeltextur enthält also ein komplettes Abbild der Umgebung (engl. Environment). Doch wie kommen wir nun an diese Umgebungsdaten? Dazu müssen wir die ganze Szene in die Würfeltextur rendern, und dies einmal pro Seite. Pro Objekt fallen also insgesamt sechs zusätzliche Rendervorgänge an. Environment Mapping ist ohne den Einsatz von CPU-lastigem Ray-Tracing möglich. Die Funktionsweise ist relativ einfach: Abb. 3: Berechnung des Reflektionsvektors Von der Kameraposition zur Pixelposition auf dem Objekt wird ein Vektor generiert. Im selben Winkel α, in welchem die Kamera auf das Objekt schaut (resp. der Winkel zwischen Normalenvektor des Vertex und Kameraposition-zu-Objekt-Vektor), wird ein Vektor vom Objekt reflektiert. Dort, wo dieser Reflektionsvektor die Skybox trifft, wird die Farbe auf der Würfeltextur abgelesen. Der Pixel auf dem Objekt erhält nun genau diese Farbe. Dieses Verfahren wiederholt sich für jeden im sichtbaren Bereich liegenden Pixel des Objekts. Hier dürfte man eigentlich nicht von Skybox sprechen, denn eigentlich setzen wird nur eine Textur, ohne irgendwelche Geometrie. Ein etwas anderer Ansatz ist Spherical Environment Mapping. Eine Sphere-Map ist eine 2D- Repräsentation einer vollen Rundumsicht der Szene, die das Objekt umgibt. Damit könnte man
3 DirectX Tutorial: Environment Mapping 3 beispielsweise eine Fischaugenlinse entwickeln (dass die ganze Szene verschwommen aussieht). Diese Technik wird hier aber nicht weiter behandelt. Umsetzung mit Direct3D Im Zusammenhang mit Cubic Environment Mapping hört man immer wieder die Begriffe Pixel- und Vertex-Shader. Es ist möglich, die CPU zu entlasten, indem man die Texturkoordinatenberechnung der GPU übergibt. Weiter unten im Skript wird dann auch ein kleiner Shader entwickelt. Es gibt aber auch die Möglichkeit, die Texturkoordinaten von Direct3D generieren zu lassen. Dazu müssen erst eine Textur und anschliessend die entsprechenden Render- und Textur-Stage-States gesetzt werden. Das folgende Beispiel demonstriert, wie man der Textur der ersten Schicht die automatische Texturkoordinatengenerierung zuweist: IDirect3DDevice9::SetTexture(0, lpcubetexture); IDirect3DDevice9::SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR); Nun brauchen wir aber noch die Würfeltextur, die in lpcubetexture gespeichert wird! Zuerst müssen wir diese Textur erstellen: IDirect3DDevice9::CreateCubeTexture(256, // Auflösung (x = y) 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &lpcubemap, NULL); Dann brauchen wir eine Funktion, die einmal pro Frame aufgerufen wird und die ganze Szene in diese sechs 2D-Texturen rendert. Am besten lass ich gleich den Code sprechen: void RenderSceneIntoCubeMap() // das alte Render-Target LPDIRECT3DSURFACE9 lprtold = NULL; // Die Projektionsmatrix hat ein Sichtfeld von 90 kcmatrix mproj = kcmat_projection(kc_pi * 0.5f, 1.0f, 0.01f, 100.0f); // View-Matrix abfragen kcmatrix mviewdir = Camera.GetViewMatrix(); // Position auf den Ursprung setzen (wir brauchen nur Richtung) mviewdir.m41 = mviewdir.m42 = mviewdir.m43 = 0.0f; // die alten Device-Einstellungen speichern IDirect3DDevice9::GetRenderTarget(0, &lprtold); // alle Seiten der Würfeltextur durchgehen for (int iface = 0; iface < 6; ++iface) LPDIRECT3DSURFACE9 lpsurf; // Textur Nr. iface des Würfels anfordern und in // lpsurf speichern lpcubemap->getcubemapsurface((d3dcubemap_faces)iface, 0, &lpsurf);
4 DirectX Tutorial: Environment Mapping 4 // die angeforderte Textur als neues Render-Target setzen // und anschliessend wieder freigeben IDirect3DDevice9::SetRenderTarget(0, lpsurf); KC_MEM_RELEASE(lpSurf); // nur den Z-Buffer leeren IDirect3DDevice9::Clear(0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); // die endgültige View-Matrize zusammensetzen kcmatrix mview = mviewdir * GetCubeMapViewMatrix(iFace); // View- und Projektionsmatrix setzen IDirect3DDevice9::SetTransform(D3DTS_PROJECTION, &mproj); IDirect3DDevice9::SetTransform(D3DTS_VIEW, &mview); if (SUCCEEDED(IDirect3DDevice9::BeginScene())) // --- Szene hier rendern! --- IDirect3DDevice9::EndScene(); // das alte Render-Target wieder setzen IDirect3DDevice9::SetRenderTarget(0, lprtold); KC_MEM_RELEASE(lpRTOld); Hinweis: Die Funktion GetCubeMapViewMatrix erscheint weiter unten im Skript nochmals. Der Einsatz von Shadern Ob man nun einen Shader benutzt oder nicht, das Endergebnis ist in etwa das gleiche. Nur hat die CPU dadurch mehr Reserven für andere Berechnungen und ausserdem haben wir die Möglichkeit, über den Pixel-Shader jeden einzelnen Bildpunkt beliebig (!) zu verändern, bevor er schlussendlich am Monitor sichtbar wird. Der Code basiert übrigens auf dem Beispielprogramm HDRCubeMap aus dem DirectX 9 SDK und benutzt Vertex-Shader 1.1 und Pixel-Shader 2.0: // V E R T E X S H A D E R void Reflection(float4 Pos : POSITION, float3 Normal : NORMAL, out float4 opos : POSITION, out float3 EyeReflVec : TEXCOORD0) // Position in Weltkoordinaten transformieren float4 WorldPos = mul(pos, g_mworld); // den Normalenvektor ebenfalls in Weltkoordinaten transf. u. normalisieren float3 WorldNormal = normalize(mul(normal, g_mworld)); // den Kamera-zu-Vertex-Vektor bilden und dann den Reflektionsvektor // abfragen mit der vordefinierten Funktion reflect float3 EyeVec = g_camerapos - WorldPos; EyeReflVec = reflect(eyevec, WorldNormal); // Position transformieren opos = mul(worldpos, g_mviewproj); // P I X E L S H A D E R float4 ApplyPixelShader(float3 EyeReflVec : TEXCOORD0) : COLOR
5 DirectX Tutorial: Environment Mapping 5 return texcube(linearsampler, EyeReflVec) * g_fcolorfactor; Die von DirectX vordefinierte Funktion reflect tut im Grunde nichts weiter, als anhand des Normalenvektors und des inversen Zu-Kamera-Vektors die Texturkoordinaten für einen Pixel zu berechnen: EyeReflVec = 2 * dot(eyevec, WorldNormal) * WorldNormal - EyeVec; Implementierung Zuerst erstellen wir die Cube Map, in welche wir anschliessend rendern werden. Das Standardformat für Texturen, die als Render-Target verwendet werden, ist A8R8G8B8 (8 Bits pro Kanal). Alternativ könnte man ein Floating-Point-Format wie beispielsweise A16R16G16B16F verwenden. Was ist denn das schon wieder!? Als Floating-Point werden Texturformate bezeichnet, die jedem Farbkanal mehr als 8 Bits zur Verfügung stellen (z.b. 16 oder gar 32 Bits). Dadurch sind intensivere Farbtöne mit einem höheren Dynamikumfang möglich, was zur Verschönerung des Effekts beiträgt. 1 Die Cube Map wird wie folgt erstellt: pd3ddevice->createcubetexture(cube_map_size, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A16B16G16R16F, D3DPOOL_DEFAULT, & lpcubemap, NULL); Die Auflösung der Cube Map kann eigentlich frei gewählt werden, doch aus Kompatibilitätsgründen sind Werte wie 128, 256, 512 oder 1024 zu empfehlen. Nun wird eine Renderfunktion erstellt, die in etwa so aussieht: void RenderSceneIntoCubeMap() LPDIRECT3DSURFACE9 lpnewrt = NULL; LPDIRECT3DSURFACE9 lpoldrt = NULL; LPDIRECT3DSURFACE9 lpolddssurf = NULL; // Projektionsmatrix mit einem Sichtwinkel von 90 (4 * 90 = 360 ) kcmatrix mproj = kcmat_projection(kc_pi * 0.5f, 1.0f, 0.01f, 100.0f); // die Device-Einstellungen speichern pd3ddevice->getrendertarget(0, &lpoldrt); pd3ddevice->getdepthstencilsurface(&lpolddssurf))); // neuer Depth-Stencil-Buffer setzen pd3ddevice->setdepthstencilsurface(lpnewdssurf); // alle sechs Seiten der Cube Map durchgehen for (int iface = 0; iface < 6; iface++) // eine Seite der Cube Map als Render-Target setzen lpcubemap->getcubemapsurface((d3dcubemap_faces)iface, 0, &lpnewrt); pd3ddevice->setrendertarget(0, lpnewrt); lpnewrt->release(); // Render-Target löschen und Szene beginnen 1 Hinweis: Floating-Point-Formate werden nicht von allen Grafikkarten unterstützt
6 DirectX Tutorial: Environment Mapping 6 pd3ddevice->clear(0l, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0L); pd3ddevice->beginscene(); // gesamte Szene rendern RenderScene(mProj, GetCubeMapViewMatrix(iFace), FALSE); pd3ddevice->endscene(); // die alten Device-Einstellungen wieder aktivieren pd3ddevice->setdepthstencilsurface(lpolddssurf); pd3ddevice->setrendertarget(0, lpoldrt); // Speicher freigeben lpnewrt->release(); lpoldrt->release(); lpolddssurf->release(); Es wird also zuerst eine Projektionsmatrix mit einem Blickwinkel von 90 (denn es gibt ja vier Seiten, 4 90 = 360 Rundumsicht) und einem Aspekt von eins erstellt (Seitenverhältnis 1:1, denn die Seiten eines Würfels sind ja quadratisch). Als nächstes werden die Device-Einstellungen gespeichert, d.h. das aktuelle Render-Target und der Stencil-Buffer werden kopiert. Es folgt eine for-schleife, die alle Faces (also Würfelseiten ) durchläuft und sie als Render-Target setzt. Zum Beenden eines Durchgangs muss selbstverständlich die begonnene Szene mit EndScene geschlossen werden. Sobald alle sechs Seiten der Cube Map gefüllt sind, werden die alten Device-Einstellungen reaktiviert. Das Einzige, was wir von einem zum anderen Renderdurchgang ändern, ist die View-Matrix. Schauen wir uns doch mal die Funktion GetCubeMapViewMatrix an: kcmatrix kcenvmap::getcubemapviewmatrix(int iface) kcvector veyept = kcvector(0.0f, 0.0f, 0.0f); kcvector vlookdir; kcvector vupdir; switch (iface) case D3DCUBEMAP_FACE_POSITIVE_X: vlookdir = D3DXVECTOR3( 1.0f, 0.0f, 0.0f ); case D3DCUBEMAP_FACE_NEGATIVE_X: vlookdir = D3DXVECTOR3(-1.0f, 0.0f, 0.0f ); case D3DCUBEMAP_FACE_POSITIVE_Y: vlookdir = D3DXVECTOR3( 0.0f, 1.0f, 0.0f ); vupdir = D3DXVECTOR3( 0.0f, 0.0f,-1.0f ); case D3DCUBEMAP_FACE_NEGATIVE_Y: vlookdir = D3DXVECTOR3( 0.0f,-1.0f, 0.0f ); vupdir = D3DXVECTOR3( 0.0f, 0.0f, 1.0f ); case D3DCUBEMAP_FACE_POSITIVE_Z: vlookdir = D3DXVECTOR3( 0.0f, 0.0f, 1.0f );
7 DirectX Tutorial: Environment Mapping 7 case D3DCUBEMAP_FACE_NEGATIVE_Z: vlookdir = D3DXVECTOR3( 0.0f, 0.0f,-1.0f ); kcmatrix mview = kcmat_camera(veyept, vlookdir, vupdir); return mview; Damit haben wir eigentlich alles Notwendige beisammen, was wir brauchen, um eine Oberfläche mit dynamischer Spiegelung der Umgebung in Echtzeit darzustellen. Gedanken zur Performance Nun sollte man in etwa wissen, wie Environment Mapping funktioniert. Sicherlich haben sie sich schon gefragt, ob das dann auch in akzeptabler Geschwindigkeit laufen wird. Es sind also sechs zusätzliche Rendervorgänge nötig und ausserdem müssen die Texturkoordinaten auf eine relativ rechenintensive Art ermittelt werden. Das ist tatsächlich nur auf schnelleren PC-Systemen lauffähig und auch da sollten Environment Maps nur sparsam angewandt werden! Ein halbes Dutzend solcher Environment Mapped Objekte können die Hardware ganz schön ins Schwitzen bringen =). Literaturverzeichnis - Scherfgen, David (2003). 3D Spieleprogrammierung Modernes Gamedesign mit DirectX 9 in C++. München: Carl Hanser Verlag - Microsoft DirectX 9.0 SDK Copyright 2005 by Reto Da Forno Irrtümer vorbehalten. Fehler bitte melden!
HLSL PostProcess Shaders
HLSL Advanced 1 HLSL PostProcess Shaders Einführung PostProcess Effekte werden erst nach dem Rendern aller Objekte angewandt, nämlich auf das Render-Target (daher der Name). Das Spektrum der Möglichkeiten
MehrDie Welt der Shader. Fortgeschrittene Techniken III
Die Welt der Shader Fortgeschrittene Techniken III Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Gliederung 1. Was ist ein Shader? 2. Verschiedene
MehrProbelektion 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
MehrKapitel 4: Schattenberechnung
Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler
MehrHLSL High-Level Shader Language
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
MehrProgrammieren 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
MehrSpieleprogrammierung mit DirectX und C++
Ulrich Kaiser, Philipp Lensing Spieleprogrammierung mit DirectX und C++ 2D-, 3D- und Netzwerkspiele, viele Spezialeffekte Galileo Press Einleitung 11 Danksagung 13 Vorwort zur zweiten Auflage 14 1 Vorbereitung
MehrShader. Computer Graphics: Shader
Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger
MehrComputer Graphics Shader
Computer Graphics Shader Sven Janusch Inhalt Fixed Function Pipeline Programmable Pipeline Implementierung Applikation Beispiel Sven Janusch 2 Fixed Function Pipeline T&L Pipeline (Transformation and Lighting)
Mehr(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
MehrPraktikum: 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
MehrReal-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 -
MehrGPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni
GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni 1 Ablauf GPU Programm Vertex und Fragment Shader 2 3 4 5 Image Processing 6 Ablauf GPU Programm Ablauf GPU Programm Vertex und Fragment
MehrChristina Nell. 3D-Computergrafik
Christina Nell 3D-Computergrafik Was ist 3D-Computergrafik? 3D graphics is the art of cheating without getting caught. (unbekannte Quelle) Folie 2/52 Inhalt Beleuchtung Shading Texturierung Texturfilterung
MehrJö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
MehrProzedurale Texturen >>Was nicht passt wird passend gemacht...<<
Prozedurale Texturen >>Was nicht passt wird passend gemacht...
MehrSchattenwurf mit Perspective Shadow Maps
16. April 2010 Xpiriax Software Wer wir sind und was wir machen Hobby-Entwicklerteam, zur Zeit 6 Personen gegründet Anfang 2008 Schwerpunkte: Spiele- & 3D-Engine-Programmierung Ziele: Erfahrung, Arbeitsproben,
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Buffer Der 1-bit Stencil-Buffer Der 8-bit Stencil-Buffer Volumetrische Echtzeitschatten
MehrComputergraphik 1 LU ( ) Ausarbeitung Abgabe 2
Computergraphik 1 LU (186.095) Ausarbeitung Abgabe 2 Beispiel 4... 2 CG1Object... 2 if (dobackfaceeculling && numvertexindec >=3)... 2 CG1ScanfilledPolygon CG1Polygon... 2... 2... 3 buildactivelist (int
Mehr3D Programmierpraktikum: Schattenberechnung in Echtzeit
3D Programmierpraktikum: Schattenberechnung in Echtzeit Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 20. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche
MehrBeleuchtung. in Computerspielen
Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung
MehrRST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck
RST-Labor WS06/07 GPGPU General Purpose Computation On Graphics Processing Units (Grafikkarten-Programmierung) Von: Marc Blunck Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme
MehrParallele und funktionale Prog. Wintersemester 2012/ Übung Abgabe bis , 10:00 Uhr
9. Übung Abgabe bis 07.01.2013, 10:00 Uhr Aufgabe 9.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen
MehrSoftwareprojekt 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
MehrPoser Tutorial by Margy
Poser Tutorial by Margy Dynamische Kleidung ist etwas Wunderbares. Der Stoff passt sich der Pose und der Figur an, und sieht einfach natürlicher aus. Kein Vergleich zur "normalen" Kleidung. Allerdings
MehrOptimierungsalgorithmen
Optimierungsalgorithmen Effektives Rendern in der Computergraphik Benjamin Schneider Agenda 1. Einleitung 2. Grundlagen 3. Algorithmen im Detail 4. Weitere Techniken 5. Verbesserungen 6. Fazit Einleitung
MehrComputergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung)
Computergrafik SS 2010 Henning Wenke Kapitel 21: OpenGL 3.1 (Fortsetzung) 1 OpenGL Aufgaben der GL-Befehle Konfigurieren der Graphics Pipeline Datenübergabe an Server Steuern des Datenflusses Java OpenGL
MehrVisualisierung und Volumenrendering 2
Institut für Computervisualistik Universität Koblenz 06.07.2012 Inhaltsverzeichnis 1 Literatur 2 Wiederholung 3 DVR Volumen Literatur Real-Time Volume Graphics Volumenrendering CG Shader Beispiele Volumen
Mehr(10) Deferred Shading
(10) Deferred Shading Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich, Gerrit Lochmann Wdh. 1: Framebufferobjects (FBOs) Statt in den Framebuffer direkt zu rendern, kann man Texturen attachen,
MehrRendern mit PSD Ebenen in Poser
Rendern mit PSD Ebenen in Poser Das Rendern in Ebenen gibt es seit Poser Pro 2010 und ist auch nur in den Pro Versionen vorhanden! Dieses Tutorial wurde mit Poser Pro 2014 und PaintShop Photo Pro erstellt.
Mehr5 Mapping-Techniken. 5.1 Motivation
5.1 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen) glatt im Gegensatz zu wirklich existierenden natürlichen Oberflächen. Die explizite Wiedergabe
MehrÜbungsblatt 10: Klausurvorbereitung
Übungsblatt 10: Klausurvorbereitung Abgabe: Dieses spezielle Übungsblatt hat keine Abgabefrist und wird auch nicht korrigiert. Die Lösung gibt es wie immer auf der Homepage der Vorlesung oder in den Übungen
Mehr1.2 Dateiformate. max. 1,5 MB / Sekunde o Bild Sequenzen für alle in Schleife abzuspielenden Videos: BMP, PNG, JPG. bis zu 1.
Seite 1 von 7 Die ARTMOS GmbH bietet Ihnen an, inspirierende und eindrucksvolle Animationen für die LED Kugel zu erstellen. Sollten Sie sich entscheiden diesen Service in Anspruch zu nehmen, wird ARTMOS
MehrThema: 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
MehrJens Konerow. Managed DirectX und C#
Jens Konerow Managed DirectX und C# Jens Konerow Managed DirectX und C# Einstieg und professioneller Einsatz Jens Konerow: Managed DirectX und C# Einstieg und professioneller Einsatz ISBN-10: 3-935082-17-4
MehrC++ Tutorial: Timer 1
C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und
MehrSchriftlicher Test zu C (90 Minuten) VU Einführung ins Programmieren für TM. 1. Oktober 2012
Familienname: Vorname: Matrikelnummer: Aufgabe 1 (2 Punkte): Aufgabe 2 (3 Punkte): Aufgabe 3 (2 Punkte): Aufgabe 4 (3 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (1 Punkte): Aufgabe 7 (2 Punkte): Aufgabe
MehrProgrammierpraktikum 3D Computer Grafik
Prof. Andreas Butz, Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Puffer Der 1-bit Stencil-Puffer Der 8-bit Stencil-Puffer Volumetrische
MehrKomplexpraktikum 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
Mehr3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern
3D Rendering mit PHP Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern Speaker Kore Nordmann Studiert Informatik an der Universität Dortmund Arbeitet als Software
Mehr3D-Modellierungsprogramme
06.06.06 Bastian Schildbach 3D-Modellierungsprogramme mit Gliederung 1. Grundlagen Texture Mapping, Texturkoordinaten, Vertices, Texturaddressierung 2. Mapping-Techniken Bump, Displacement, Normal, Two-Part,
MehrKontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer
Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;
MehrParallele und funktionale Prog. Sommersemester Übung Abgabe bis , 10:00 Uhr
9. Übung Abgabe bis 29.06.2012, 10:00 Uhr Aufgabe 9.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen
Mehr7. Organisation von Informationen
Computeranwendung in der Chemie Informatik für Chemiker(innen) 7. Organisation von Informationen Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL7 Folie 1 Grundlagen Programme
MehrNumerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006
12. Juni 2006 Bibliothek für Lineare Algebra GPGPU-Programming: Low-Level High-Level Bibliothek Bibliothek für Lineare Algebra Gliederung 1 Bibliothek für Lineare Algebra 2 Skalare Bibliothek für Lineare
MehrBeleuchtungsmodelle und Shading
Beleuchtungsmodelle und Shading Andreas Spillner Computergrafik, WS 2018/2019 Ziel der Modellierung von Beleuchtung Baut auf dem Kapitel zu Licht und Farben auf. In die 3D-Szene werden Lichtquellen eingebracht.
MehrGame Engine Architecture and Development. Effekte (Sound, Partikel, Physik)
Game Engine Architecture and Development Effekte (Sound, Partikel, Physik) Wer hat schon was? Sound s Soundsysteme Einfach zu benutzen Leveldesigner müssen sehr einfach Sounds hinzufügen können (Gamplay
MehrModellierung. Oliver Hartmann
Modellierung Oliver Hartmann oliver.hartmann@uni-ulm.de Inhalt Boolesche Operationen Splines B-Splines Bezier-Kurven NURBS Anwendung Sculpting Volumengrafik Marching Cubes Ray Casting Texture Mapping Boolesche
MehrVHDL - Grundlagen des Pointrenderings
VHDL - Grundlagen des Pointrenderings Marc Reichenbach, Timo Nieszner Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 2013 1 / 25 Rendern von Dreiecksnetzen Quelle: Inf9, CG-Slides grobmaschiges
MehrSeminar 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
Mehr3D Programmierpraktikum: OpenGL Shading Language (GLSL)
3D Programmierpraktikum: OpenGL Shading Language (GLSL) Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 13. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrComputergrafik 1 Beleuchtung
Computergrafik 1 Beleuchtung Kai Köchy Sommersemester 2010 Beuth Hochschule für Technik Berlin Überblick Lokale Beleuchtungsmodelle Ambiente Beleuchtung Diffuse Beleuchtung (Lambert) Spiegelnde Beleuchtung
MehrDirect3D. (Scherfgen S )
Direct3D (Scherfgen S. 98-131) Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 14/15 AM3 Hauptseminar Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrDiplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker
Diplomarbeit 5HDO7LPH6SHFLDO (IIHFWV Neue Möglichkeiten durch programmierbare Shader Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Betreut von: Paul Grimm, Ralf Dörner Beginn: 01.04.02 Abgabe: 30.09.02
Mehr13.4 Umgebungs-Texturen (Environment Maps)
262 KAPITEL 13 TEXTUREN 134 Umgebungs-Texturen (Environment Maps) Bis vor wenigen Jahren war ein klares Erkennungszeichen von interaktiver 3D-Computergrafik das Fehlen von realistischen Spiegelungen Dies
MehrWima-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
MehrRheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit
Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer
MehrCAUSTICS & GODRAYS. Jacob Skuratovski
CAUSTICS & GODRAYS Jacob Skuratovski Kaustiken Kaustik, caustic (engl.), Brennlinie, Brennfläche Bereich, in dem Lichtstrahlen gebündelt werden 3 verschiedene Arten Katakaustik Diakaustik Regenbogen Eine
MehrSprachkonstrukte Verzweigungen und Array-Strukturen
Sprachkonstrukte Verzweigungen und Array-Strukturen Dr. Beatrice Amrhein Überblick Verzweigungen o if/else o switch/case Array-Strukturen o Vektoren und Matrizen 2 Verzweigungen 3 Verzweigungen: if/else
MehrSpieleprogrammierung Gems 4
Spieleprogrammierung Gems 4 von David Scherfgen, Dirk Wittke, Andrew Kirmse 1. Auflage Spieleprogrammierung Gems 4 Scherfgen / Wittke / Kirmse schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
MehrJava 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
MehrLineare Transformationen und Determinanten. 10-E Ma 1 Lubov Vassilevskaya
Lineare Transformationen und Determinanten 10-E Ma 1 Lubov Vassilevskaya Lineare Transformation cc Definition: V und W sind zwei Vektorräume. Eine Funktion T nennt man eine lineare Transformation von V
MehrComputergraphik 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.
MehrComputergrafik 2008 Oliver Vornberger. Kapitel 19: Texturing
Computergrafik 2008 Oliver Vornberger Kapitel 19: Texturing 1 Strukturierte Fläche Beispiel: Steinmauer lege viele kleine rote Rechtecke auf ein großes weißes Rechteck: Nachteil: aufwändige Geometrie 2
MehrGPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1
GPGPU Basiskonzepte von Marc Kirchhoff 29.05.2006 GPGPU Basiskonzepte 1 Inhalt Warum GPGPU Streams, Kernels und Prozessoren Datenstrukturen Algorithmen 29.05.2006 GPGPU Basiskonzepte 2 Warum GPGPU? Performance
MehrGames 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
MehrGeorg Molzer 1HDD 3D-Grafikkarten GDV-Hardware
3D-GRAFIKKARTEN Einleitung: 3D-Grafikkarten haben in erster Linie den Zweck, den Hauptprozessor beim Darstellen aufwendiger dreidimensionaler Szenarien zu entlasten. Sie übernehmen dabei einen Großteil
MehrGrundlagen der Spieleprogrammierung
Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 8: Hardware Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch (Raytracing,
MehrScript Pause
Script 8.3.2017 Rückfragen zur Aufgabe UV-Texturkoordinaten erstellen, visualisieren und bearbeiten Materialien applizieren, Texturen laden Der UV-Editor zum Platzieren von Texturen (Selektion, Transform.)
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Partikelsysteme, Multipass Rendering Kollisionen Rauch Feuer Vulkane Regen Tierschwärme # 2 Eigenschaften Partikelsysteme sind Gruppen von
MehrAus Zahlen werden Bilder. Jan Tobias Mühlberg <muehlber@fh-brandenburg.de>
Aus Zahlen werden Bilder 1 Aus Zahlen werden Bilder Jan Tobias Mu hlberg Quelle: http://www.emperor-penguin.com 2 3 Modellierung einer Realität Ein endlich genaues Modell der
MehrDurch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.
Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung
MehrEinleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7
Sonja Hunscha - Koordinatensysteme 1 Inhalt Einleitung 2 1 Koordinatensysteme 2 1.1 Kartesisches Koordinatensystem 2 1.2 Polarkoordinaten 3 1.3 Zusammenhang zwischen kartesischen und Polarkoordinaten 3
Mehr3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert.
3.1 Motivation Wichtige Grundlage der Bildwiedergabe auf dem Bildschirm oder anderen Ausgabegeräten sind Koordinatensysteme und Koordinatentransformationen im IR 2 und IR 3. Im allgemeinen unterscheidet
MehrMicrosoft PowerPoint für Office 365 3D-Modelle
Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft PowerPoint für Office 365 3D-Modelle 3D-Modelle in PowerPoint für Office 365 Seite 1 von 7 Inhaltsverzeichnis Einleitung... 2 3D-Modell
Mehr2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max
Kapitel 5 2D-Clipping Ziel: Nur den Teil einer Szene darstellen, der innerhalb eines Fensters sichtbar ist. y max y min x min x max Abbildung 5.1: Clip-Fenster 5.1 Clipping von Linien Zu einer Menge von
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
MehrMicrosoft PowerPoint D-Modelle
Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft PowerPoint 2019 3D-Modelle 3D-Modelle in PowerPoint 2019 Seite 1 von 7 Inhaltsverzeichnis Einleitung... 2 3D-Modell einfügen... 2 3D-Modell
MehrHeute. 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
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 2012-06-19 Die Erde ist eine Scheibe! Die Erde ist eine Kugel! 2012-06-19, H.W., Wörtlich 1992-11-02, Papst J.P. II. Sinngemäß. Kirchengeschichtlicher
MehrDirectX 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
MehrIn dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.
In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es. Im Spiel fällt ein Meteor vom oben zum unteren Rand. Das Raumschiff
MehrGrundlagen 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
MehrLösungsvorschlag zum zweiten Übungsblatt
Lösungsvorschlag zum zweiten Übungsblatt Aufgabe Wir zeigen, daß die Drehung um den Ursprung um 9 und die Spiegelung an der x-achse nicht kommutieren. Die Matrix für die Drehmatrix lautet in diesem Fall
MehrPraktische Übungen zu Computertechnik 2. Versuchsprotokoll
Praktische Übungen zu Computertechnik 2 Versuchsprotokoll Versuch: C2 Parallelrechner Versuchsdatum und -zeit: Donnerstag, 03. Juni 2010, 10-13 Uhr Betreuer: Adrian Knoth Name, Studiengang, Mat.-Nr.: Ralf
MehrVolumenakquise. Vortrag von Benjamin Gayer
10.11.11 1 Volumenakquise Vortrag von Benjamin Gayer Einführung Bildquelle: http://www.medical.siemens.com/siemens/de_de/rg_marcom_fbas/files/patienteninformationen/ct_geschichte_technologie. pdf 10.11.11
MehrUniversitä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
MehrZwischenvortrag 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
Mehr3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden
3D - Modellierung Arne Theß Proseminar Computergraphik TU Dresden Gliederung Darstellungsschemata direkte Constructive Solid Geometry (CSG) Generative Modellierung Voxelgitter indirekte Drahtgittermodell
Mehr3D Programmierpraktikum: Szenegraphen und Texturierung
3D Programmierpraktikum: Szenegraphen und Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 1. Juni 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum SS2006
MehrComputergrafik SS 2012 Probeklausur Universität Osnabrück Henning Wenke, M. Sc. Sascha Kolodzey, B. Sc., Nico Marniok, B. Sc.
Computergrafik SS 2012 Probeklausur 1 06.07.2012 Universität Osnabrück Henning Wenke, M. Sc. Sascha Kolodzey, B. Sc., Nico Marniok, B. Sc. Aufgabe 1 (19 Punkte) Beantworten Sie die folgenden Fragen prägnant.
MehrWiederholung. Vorlesung GPU Programmierung Thorsten Grosch
Wiederholung Vorlesung Thorsten Grosch Klausur 2 Zeitstunden (26.7., 8:30 10:30 Uhr, G29/307) Keine Hilfsmittel Kein Bleistift / Rotstift verwenden 3 Aufgabentypen Wissensfragen zur Vorlesung (ca. 1/3)
MehrGobales Gedächtnis. AntMe. Sebastian Loers. lb-sys.info. Projekt: AntMe - Globales Gedächtnis (Version 1.0)
AntMe Sebastian Loers lb-sys.info Projekt: AntMe - Globales Gedächtnis (Version 1.0) Dokument Version: 1.0 Erstellt am: 15.04.2007 Geändert am: 30.04.2007 Copyright 2007 lb-sys.info. Alle Rechte vorbehalten.
MehrGraphische Datenverarbeitung Visualisierungstechniken. Prof. Dr. Elke Hergenröther
Graphische Datenverarbeitung Visualisierungstechniken Prof. Dr. Elke Hergenröther Visualisierungstechniken Visualisierung: Visualisierung bedeutet sichtbar machen, darstellen. Die CG beschränkt sich dabei
MehrAnalytische Geometrie Spatprodukt
Analytische Geometrie Spatprodukt David Schmid, Reto Da Forno Kantonsschule Schüpfheim Januar 2005 Analytische Geometrie: Das Spatprodukt 1 Das Spatprodukt Hinweis: Die Vektoren werden aus darstellungstechnischen
MehrInformatik Fakultät Lehrstuhl für Computergrafik und Visualisierung. René Lützner
Informatik Fakultät Lehrstuhl für Computergrafik und Visualisierung René Lützner Dresden, 22.05.2013 Motivation Computer Simulationen von dynamischen Molekulardaten Eigenschaften und Verhalten von großen
MehrRendering 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
MehrYilmaz, Tolga MatNr: Mesaud, Elias MatNr:
Yilmaz, Tolga MatNr: 157317 Mesaud, Elias MatNr: 151386 1. Aufbau und Funktionsweise einer Grafikkarte 2. CPU vs. GPU 3. Software 4. Beispielprogramme Kompilierung und Vorführung 5. Wo wird Cuda heutzutage
Mehr