Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Exotische Texturformen Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/11 Softwaretechnologie II (Teil 1) Simulation.

Ähnliche Präsentationen


Präsentation zum Thema: "Exotische Texturformen Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/11 Softwaretechnologie II (Teil 1) Simulation."—  Präsentation transkript:

1 Exotische Texturformen Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/11 Softwaretechnologie II (Teil 1) Simulation und 3D Programmierung Referat von Sara Hommelsen

2 Volumentexturen dreidimensional Angabe der Größe in Pixeln/Texeln ausgehend von 2D-Textur –> bei 3D: flache Textur wird zum Quader –> bekommt zusätzlich Tiefe zu Höhe/Breite

3 Volumentexturen 3D-Vektor für Texturkoordinaten: –tbVector3 Makros: –D3DFVF_TEXCOORDSIZE

4 sonstige Eigenschaften Filterung Erzeugung von Mip-Maps viel Speicherplatz

5 Schnittstelle bisher: IDirect3DTexture9, –nun: IDirect3DVolumeTexture9 –> erwarten Methode: IDirect3DDevice9::SetTexture

6 Schnittstelle: Format/Größe GetVolumeLevel der IDirect3DVolumeTexture9 1. Parameter: Mip-Map-Ebene zum abfragen 2. Parameter: Zeiger auf IDirect3DVolume9 Schnittstelle, die Direct3D erfüllen soll. Aufruf GetDesc –> ausgefüllte Textur vom Typ D3Volume_DESC

7 Wozu Volumentexturen? Landschaften Animation Licht/Schatten

8 Herstellung/Ladevorgang Verwendung von DirectXTextureTool (gehört zum DirectX SDK) DDS-Format

9 Volumentexturen laden Standard: D3DXCreateTextureFromFile (Ex) Volumen: D3DXCreateVolumeTextureFromFile (Ex) erwartet Tiefe als weiteren Parameter wenn Originalgröße übernommen werden soll, dann: D3DX_DEFAULT letzter Parameter: Adresse des Zeigers auf IDIRECT3DVolumeTexture9 -Schnittstelle

10 Umgebungstexturen kubische Umgebungstexturen (in Würfelform angeordnet) Generierung von 6 Texturen Texturen werden auf Objekt gelegt –> tatsächliche Struktur, reflektierte Bilder der Umgebung sind sichtbar

11 Texturkoordianten - 1 Flags sind dreidimensional Texturschicht-State D3DTSS_TEXTURETRANSFORMFLAGS auf D3DTTFF_COUNT3 Schnittstelle IDirect3DCubeTexture9 laden D3DXCreateCubeTextureFromFile (Ex)

12 Texturkoordianten - 2 generieren: DirectXTextureTool 1.neue Textur erstellen 2.cubeMapTexture wählen 3.um zwischen Würfelflächen hin und her zu schalten: view -> CubeMapView => Bilddateien auf entsprechende Flächen der Würfeltextur laden (s. Standardtextur)

13 Skybox Sky Box = Würfel indem man sich befindet vorteilhaft, wenn Textur hoch aufgelöst Sky Box und Reflexion: gleiche Textur –> Vertizes brauchen 3 Koordinaten

14 Bump Mapping (mit 3D) Simulation der Oberfläche auf Pixelebene Unterstützung abfragen: –im Eintrag sind TextureOpCaps der D3DCAPS-9 Struktur die Flags D3DTEXOPCAPS_BUMPENVMAP gesetzt

15 Bump Mapping Transformation: –U/V-Steigungswerte werden mit 2x2-Matrix multipliziert –Matrixangabe m. H. der Texturschicht-States D3DTSS_BUMPENVMAT00 (M11) D3DTSS_BUMPENVMAT10 (M21) D3DTSS_BUMPENVMAT01 (M12) D3DTSS_BUMPENVMAT11 (M22)

16 Luminanz Veränderung: L´= L*S+0 S= Skalierungsfaktor D3DTSS_BUMPENVSCALE O= Offset-Wert D3DTSS_BUMPENVOFFSET

17 Einsetzen der Bump Map Verwendung von 3 Texturen: 1.Schicht = normale Oberflächenstruktur 2.Schicht = Bump-Map 3.Schicht = Environment Map

18 Aktivierung der Bump Map Farboperator stellen auf: –D3DTOP_BUMPENVMAP –D3DTOP_BUMPENVMAPLUMINANCE gleiche Texturkoordinaten: –D3DTSS_TCI_CAMERASPACEPERFECTIONVE CTOR und D3DTTFF_COUNT3

19 Erzeugung der Bump Map Direct3D erwartet Steigung –durch Umrechnung selbst angeben oder –Verwendung von DirectXTextureTool –> Speicherung im DDS-Format

20 Environmental Bump Mapping Neuberechnung der Vektoren

21 Stencil-Buffer - 1 Teil des Z-Stencil-Buffers verschiedene Formate: –D3DFMT_D32 –D3DFMT_D16 –D3DFMT_D24S8

22 Stencil-Buffer - 2 Der Clear-Methode der Schnittstelle IDirect3Device9 werden Flags D3DCLEAR_TARGET, D3DCLEAR_ZBUFFER, Flag D3DCLEAR_STENCK übergeben –> leert Stencil-Buffer

23 Stencil-Buffer - 3 2^Anzahl der Stencil-Buffer reservierten Pixel – 1 –>größter Wert, den Stencil-Buffer in einem Pixel erreichen kann

24 Stencil-Buffer - 4 Zweck: Reihe von Effekten in Echtzeitberechnung Format: Z-Stencil-Buffer setzen von Render-State D3DRS_STENCILABLE auf TRUE => alle gezeichneten Primitive verwenden Stencil-Buffering

25 Stencil-Test wenn Render-State D3D_STENCILABLE auf TRUE, dann Test Aufstellung gezielter Vergleichsfunktion und Referenzwert

26 Schreiben in Stencil-Buffer Festlegung was mit Stencil-Wert geschehen soll Werte können für Render-States eingesetzt werden (vgl. Tab. S. 247) Vergleich aller Stencil-Werte mit Referenzwert, festlegen mit D3DRS_STENCILREF

27 Lese- und Schreibbitmasken Einführung, weil manchmal nur einzelne Bits eines Stencil-Werts getestet werden sollen gesetzt in Form von Render-States Schreibbitmaske: Bitmaske wird mit bitweisem &-Operator auf alle Werte im Stencil-Buffer angewendet Lesebitmaske: Anwendung von Direct3D auf Referenzwert und auf aus Stencil-Buffer gelesene Werte

28 zweiseitiger Stencil-Buffer-Modus Flag D3DSTENCILCAPS_TWOSIDED im Element Stencilcaps der D3DCAPS9 - Struktur gesetzt 1.Render-State (RS) D3DRS_TWOSIDEDSTENCILMODE auf TRUE 2.danach weitere RS zur Verfügung 3.RS legen Stencil-Buffer-Einstellungen fest, die auf Bildschirm GEGEN den Uhrzeigersinn angeordnet sind 4.Referenzwert und Schreibbitmasken werden NICHT voneinander getrennt betrachtet.

29 Stencil-Buffer füllen ohne Bildpufferfüllung Beschreibung des Stencil-Buffers auf 2 Weisen –Clear-Methode –zeichnen von Primitiven mit aktiviertem Stencil- Buffering um Abdruck im Stencil-Buffer zu hinterlassen: –Vergleichsfunktion: D3DRS_STENCILFUNC auf D3DCMP_ALWAYS für D3DRS_STENCILPASS: D3DSTENCILOP_REPLACE und D3DRS_STENCILSREF auf den Wert der von Primitiven hinterlassen werden soll

30 D3DX Effekte Aufteilung des Render-Vorgangs: –Zeichnung aller Dreiecke die Material A/Textur A verwenden, dann alle die Material B/Textur B verwenden usw. –VOR jedem Rendern: Material muss eingesetzt werden, eventuelle Veränderungen einiger Werte

31 Effekte D3DX definiert Effektschnittstelle ID3DXEffect Techniken Durchgänge

32 Render States & Co. Wertezuweisung Texturschicht-/Samplerstate: Darstellung als Array Übernahme aller Namen ohne Präfixe

33 Transformationsmatrizen Worldtransform ViewTransform ProjectionTransform TextureTransform

34 Variablentypen Texture DWord Float String

35 Laden eines Effekts kann aus Datei/Speicher o.ä. geladen werden –Funktion: D3DXCreateEffectFromFile

36 Mit Effekten rendern - 1 Technik durch Typ D3DXHANDLE ansprechen 1.Anzahl verfügbarer Technik 1.Methodenaufruf: ID3DXEffect::GetDesc 2.füllt Struktur D3DXEFFECT_DESC aus 3.Techniques -Element 1.for-Schleife 1.Methode ID3DXEffect::ValidateTechnique 2.dafür D3DXHANDLE -Variable 1.In for-Schleife: Index steht zur Verfügung

37 Mit Effekten rendern Methode GetTechnique erwartet Technikindex, liefert D3DXHANDLE zurück, der für ValidateTechnique gebraucht wird 5. wenn erfolgreich, dann Aktivierung m.H. der Methode ID3DXEffect::SetTechnique

38 Effekte aktivieren Effekt aktivieren mit ID3DXEffect::Begin –1. Parameter: Zeiger auf UINT –2. Parameter: 0 oder D3DXFX_DONOTSAVESTATE

39 Rendern Durchgang jedes einzelnen Durchgangs mit for-Schleife VOR jedem Zeichenvorgang Methodenaufruf ID3DXEffect::BeginPass Aufruf EndPass –>nachdem alles gezeichnet ist: ID3DXEffect::End

40 Transformation umgehen Vertizes wandern durch Transformationspipeline rein: einfache objektrelative/absolute Positionsangaben raus: fertig bearbeitete 2D-Koordinaten Umgehung durch transformierte Vertizes

41 Unterschied - 1 x/y-Koordinate: echte Bildschirmkoordinaten mit 1 Pixel als Einheit z-Koordinate muss zwischen 0 und 1 liegen zusätzliche Angabe von w-Koordinate

42 Unterschied - 2 transformierte Vertizes: keine Beleuchtung keine Garantie, dass Clipping durchgeführt wird –>transformierte Vertizes hervorragend, weil Raum zur Entwicklung eigener Verfahren

43 anderes Vertexformat transformierte Vertizes:

44 Imitation von DirectDraw Blitting –> kopieren eines bestimmten Bereichs eines Quellbildes auf ein Zielbild –> Verwendung hauptsächlich um Grafikobjekte zu zeichnen, die in seperaten Oberflächen gespeichert sind –> immer dann verwenden, wenn Texturen im Spiel sind

45 Color Keying bestimmte Farben werden ausgelassen in Quellbildern gespeicherte Objekten wird Hintergrundfarbe zugewiesen Pixel in dieser Farbe werden verworfen Verwendung von Alpha-Kanal um Informationen zu speichern nichtkopierte Pixel = Alphawert 0 eingebauter Alphakanalgenerator: D3DXCreateTextureFromFile (Ex)

46 Rotation Veränderung der Vertex-Position, die Rechteck formen keine Verwendung von Transformationspipeline, sondern Funktion tbvector2TransformCoords –> damit Transformation der Vertizes von Hand mit einer vorher erstellen Rotationsmatrix

47 andere Methode für 2D-Grafik Verzicht von Sichtmatrix und Projektionsmatrix -> Identitätsmatrix Z-Koordinate muss zwischen 0 und 1 liegen Vorteile: kein anderes Vertexformat, Verwendung von Weltmatrix, Clipping funktioniert

48 In Texturen rendern erstellen einer Textur/Z-Buffers - Identifizierung der Grafikkarte als Render- Target - Flag: D3DUSAGE_RENDERTARGET übergeben an Funktion D3DCreateTextureFromFile oder Methode IDirect3DDevice9::CreateTextur e

49 In Texturen rendern Flag wird für usage-Parameter angegeben - Speicherklasse muss D3DPOOL_DEFAULT sein - Erzeugung Z-Stencil-Buffer mit Flag D3DUSAGE_DEPTHSTENCIL

50 In Texturen rendern Schritt: neues Render-Target setzen - rendern auf neu erzeugte Textur und Z-Stencil-Buffer m.H. von 2 Methoden: IDirect3DDevice9::SetRenderTarget SetDepthStencilSurface - erwarten Zeiger auf Direct3D-Oberfläche - zuerst: Oberfläche - SetRenderTarget erwartet Render-Target-Index

51 In Texturen rendern Schritt: alles rendern was in Textur erscheinen soll - Aufurf von clear am Anfang - Textur: andere Auflösung als alte Back-Buffer

52 Einfacher mit D3DX erleichtert Vorgang enorm folgende Schnittstellen: ID3RenderToSurface ID3DRenderToEnvMap -> Schnittstellen kümmern sich um Erzeugung Z-Stencil-Buffer, Anpassung an Viewport, ermöglicht rendern auf Texturen, die mit Mip-Mapping arbeiten

53 DANKE!


Herunterladen ppt "Exotische Texturformen Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/11 Softwaretechnologie II (Teil 1) Simulation."

Ähnliche Präsentationen


Google-Anzeigen