Frameworks: Agenda. Aufgabe von Medien-Frameworks. Microsoft DirectX SDL. Microsoft Windows Media Java Media Framework

Ähnliche Dokumente
DirectX: Übersicht. DirectX: Agenda. DirectX: DirectDraw. DirectX: Literatur. PC-Technologie DirectX 165. Multimedia-Schnittstellen für Windows

Anwendungsentwicklung mit dem Windows Phone 7

Grundlagen der Spieleprogrammierung

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

Wine der freiewindows Emulator. Marcus Meißner Wine und opensuse Entwickler

WICHTIGER HINWEIS FÜR HÄNDLER UND SERVICE-WERKSTÄTTEN:

Jörn Loviscach Hochschule Bremen

Multimediaschnittstelle. Microsoft DirectShow

Kurzfassung der Studienarbeit

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

1. Übung zu "Numerik partieller Differentialgleichungen"

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Entwurf einer universellen rekonfigurierbaren Architektur für Visual Computing. Urs Kanus WSI / GRIS Universität Tübingen urs@gris.uni-tuebingen.

Eingebettete Objekte

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Perspektiven: Spiele in ios

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

Technische Referenz - Q&A (Fragen und Antworten) TSD-QA89 (2011/11)

Installationshandbuch

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

ASP: Active Server Pages

20 Jahre. acadgraph CADstudio GmbH Fritz-Hommel-Weg München Seite 1 von 11

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Schnellkonfiguration

USB-ZU-SERIELL-KONVERTER

Microsoft.NET und SunONE

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

Produktbeschreibung. MCD Audio Analyzer. Softline. Modline. Funktionen und Merkmale des Produkts. Conline. Boardline. Avidline. Pixline.

Softwareprojekt Spieleentwicklung

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Neuheiten PROfirst KALKULATION Version 8. SQL ist sehr schnell. Neuheiten PROfirst KALKULATION Version 8 1/7

Müller&Gempeler: Das Unternehmen 3. Computerkurs: Pakete 4. Produkt: Lenovo A Computerkurs: Word 2013 Basis 6

ObjectBridge Java Edition

OpenGL. (Open Graphic Library)

Programmierung in C. Grundlagen. Stefan Kallerhoff

HOMEPLANE. Home Media Platform and Networks

Installation des USB HD-Audio Treibers 24/192 im asynchronen Mode (XMOS-Plattform) Einstellungen des Betriebssystems

Ein Tool für automatische Performancetests von Java3D Applikationen

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 7: Prozesse und Möglichkeiten

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

MailCenter die Software für SAP Geschäftsprozesse per E Mail

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

MODBUS - DDE - Treiber

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Prof. Dr. Norbert Pohlmann, Institut für Internet Sicherheit - if(is), Fachhochschule Gelsenkirchen. Lage der IT-Sicherheit im Mittelstand

Installation der SAS Foundation Software auf Windows

Audiokommunikation im Computer. Andreas Jäger

Einrichtung des DFÜ-Netzwerkes

Einführung in wxwidgets & wxdev-c++

0. Einführung. C und C++ (CPP)

Cross-Plattform Spieleentwicklung mit der SDL

Cross-Platform Mobile Development mit Xamarin Mark

Installationshandbuch (deutsch)

Installation des USB HD-Audio Treibers 24/192 (Tenor-Plattform) Einstellungen des Betriebssystems

HWP-WIN Update Argumente für eine Aktualisierung Präsentiert durch Sage Business Partner Johann König

3-W-Event. Simplify! Ganzheitliche Gestaltungskonzepte neue Trends im Webdesign. Sabrina Schoenfelder Projektleitung, Beratung

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.

Wine - Windows unter Linux

Abschlusspräsentation Projekt Loan Broker mit BizTalk 2010

Erstellen von Videoclips aus MP4 Dateien (mit H.264 Codec) in Avidemux

Seminar Game Development Game Computer Graphics. Einleitung

Aufbau der Cutmaster Einheit

AbaWeb Treuhand. Hüsser Gmür + Partner AG 30. Oktober 2008

IMBA. Installationsanleitung. Access-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz

Computergraphik I. Organisatorisches. G. Zachmann University of Bremen, Germany cgvr.informatik.uni-bremen.de

Multimediatechnik / Video

Objektbasierte Entwicklung

Spring Dynamic Modules for OSGi Service Platforms

Einführung in projektorientiertes und wissenschaftliches Arbeiten. Einführung

Funktionstest Ti2CA Compact

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby

Java basierte Browser Plug-ins. Martin Kreis 3D-Graphik im Web WS 02/ Java basierte Browser Plug-ins 1. Übersicht

EDV-Anwendungen im Archivwesen II

Das Content-Management-System OpenCms im Vergleich mit TYPO3 und Joomla. Seminarvortrag von Wolfgang Neuß

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Installation kitako. Wir nehmen uns gerne Zeit für Sie! Systemanforderungen. Demoversion. Kontakt

Computergrafik und Animation 1: Sound mit Java2. Von Marco Kraus & Omar El'Dakhloul

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Wir lernen PowerPoint - Fortsetzung-Animationen

Internet of Things (IoT)

Inhaltsverzeichnis. Getting Started with TRM416/816 System Beispiel: TRM816 Open Frame mit RFID an COM2

Algorithmen II Vorlesung am

Professionelles Vereinsmanagement

NEUE FUNKTIONEN IN IQ4DOCS 1.4.3

Dienste aus dem RZ. Managed Serverhosting Managed Services Integratives Hosting

JRIVER MEDIA CENTER INSTALLATION UND KONFIGURATION. unique high end audio

neu aufsetzen. Daten sichern... 2 Was man nach dem "Aufsetzen" unbedingt braucht!... 5

Behebung des sog. Heartbleed-Bugs (CVE ) in der Krypto-Bibliothek OpenSSL.

Installationsanleitung für WinTV-PVR (PCI) unter Windows XP

Was ist PretonSaverTM... 3 PretonSaver's... 3 PretonCoordinator... 3 PretonControl... 4 PretonSaver Client... 4 PretonSaver TM Key Funktionen...

Wichtiger Hinweis: Bitte lesen Sie diesen Hinweis vor der Installation.

The Modular Structure of Complex Systems Seminar SoftwareArchitektur Fabian Schultz

Netzwerk Management Potentielle Systemausfälle bereiten Ihnen Sorgen?

Agenten und Mentale Modelle: Neue Wege im Kommunikations- und Entscheidungstraining. Ralf Dörner Fraunhofer AGC Frankfurt am Main

Die aktuelle Entwicklung des GeoService-Portals. Analyse- und Auswertefunktionen

Bachelorseminar WS 2007 / 2008 Kartendienst APIs im Web 2.0

Transkript:

Frameworks: Agenda Aufgabe von Medien-Frameworks Microsoft DirectX SDL Microsoft Windows Media Java Media Framework Vorführung: DirectX SDK Samples Vorführung: WindowsMedia9 HD

DirectX: Literatur www.microsoft.com/directx www.microsoft.com/msdn DirectX SDK (DirectX portal page) (MS developer network) (Docs und Beispiele) Bargen, Donnelly: Inside DirectX, Microsoft Press, 1998 Root, Boer, DirectX complete, McGraw-Hill, 1999 Sirotin, Debeloff, Urri: DirectX-Programmierung mit Visual C++, Addison-Wesley, 1999 Petzold, Programming Windows95, Microsoft Press, 1996 Stroustrup, C++ Programming Language, Addison-Wesley, 1997 Fosner, Real-Time Shader Programming with DirectX9, Morgan-Kaufmann, 2003 Scherfgen, 3D-Spieleprogrammierung (DirectX9), Hanser, 2003 c't Artikelserie zu Delphi mit DirectX, 1999 bis 2000

DirectX: Übersicht Direct<X>: Multimedia-Schnittstellen für Windows DirectDraw Direct3D DirectShow high-performance 2D-Graphik 3D-Graphik Videowiedergabe DirectSound DirectMusic grundlegende Audiofunktionen (3D) Software-Synthesizer DirectInput DirectSetup DirectPlay Speech SDK schnelle Treiber für Tastatur/Maus/Joystick/... einfache und sichere Installation Multiplayer / Internet Spracheingabe und -ausgabe was fehlt?...

DirectX: DirectDraw DirectDraw: Grundfunktionen für 2D-Graphik direkte (low-level) Verwaltung des Bildspeichers front buffer / back buffer / surface flipping hardware overlays bit-blitting Applikation kein Ersatz für das GDI: Linien, Fonts, etc. per GDI HEL: Hardware Emulation Layer HAL: Hardware Abstaction Layer DDI: GDI Device Driver Interface "FoxBear" Demo Graphics Device Interface GDI Display Driver Graphikkarte DirectDraw HEL HAL

DirectX: Direct3D "world-class game and interactive 3D-graphics on a computer running Microsoft windows" (MS DirectX overview) geräteunabhängiger Zugriff auf 3D-Hardware nutzt Hardwarebeschleunigung, soweit vorhanden oder Softwareemulation Transformation, Clipping Z-Buffer / W-Buffer Rendering mit Flat- / Gouraud-Shading Texturen, Mip-Mapping diverse Lichtquellen Funktionsumfang vergleichbar mit OpenGL (seit DirectX7) programmierbare "Shader" und HLSL-Sprache (seit DX8)

DirectX: DirectShow "streaming media architecture" Wiedergabe und Aufnahme von Datenströmen Formatkonvertierung komprimierte Audio/Videodaten verwendet Hardwarefunktionen, soweit vorhanden WAV, MP3,... MPEG, AVI,... basiert auf WDM-Treibern aber auch Unterstützung von "legacy"-treibern (video for windows) in DirectX9 überarbeitet, Wiedergabe jetzt über 3D-Pipeline

DirectX: DirectSound Audiowiedergabe: flexibler Audiomixer nutzt Audiohardware soweit möglich, sonst Software schnell, geringe Latenz Sampleraten-/Formatkonvertierung 3D-Audiofunktionen Position und Richtung von Hörer und Schallquellen Doppler-Effekt, entfernungsabhängige Dämpfung HRTF-Funktionen seit DirectX9 bis 192 KHz, mehrkanalfähig weitere Details: Vorlesung PC-Technologie

DirectX: DirectMusic "message-based musical data" Noten, Akkorde, Phrasierung,... MIDI-Schnittstelle Klangerzeugung über Software-Synthesizer und Wiedergabe über DirectSound oder Ansteuerung externer Synthesizer DLS (downloadable sounds / SoundFont2) DirectMusic Producer Hardwareunterstützung ab Windows98/2000

DirectX: DirectInput Treiberschicht zu Eingabe-Geräten Treiber für sehr viele Geräte umgeht die normalen Windows-Treiber minimale Latenz Unterstützung von force-feedback Geräten diverse Krafteffekte / -kennlinien vgl. Immersion iforce Studio

3D-Graphik: Prinzip Standard-Prinzip für 3D-Graphik: 3D-Modellierung der Objekt-Oberflächen über Polygone oder Freiformflächen Umsetzung in Dreiecksnetze Perspektiv-Koordinatentransformation (statt Volumen) (z.b. Beziersplines) Beleuchtungsberechnung für jedes einzelne Dreieck "aufgeklebte" Texturen für jedes einzelne Dreieck Zerlegen der Dreiecke in Rasterlinien Berechnung der Bildfarben für jeden Punkt auf jeder Linie Sichtbarkeitstest über "z-buffer" extrem rechenaufwendig, aber gut parallelisierbar Spezialhardware: GPU "graphics processing units"

Graphik: 3D-Pipeline Szenengraph in SW Objektphysik in SW low-level Funktionen zunehmend in Hardware SW HW 1996 1998 2000 PC-Technologie SS 2002 18.214

DirectX8: "shader" kombiniert bisherige APIs: DirectDraw und Direct3D 3D-Pipeline teilweise programmierbar

DirectX 8: Graphik-Pipeline kompatibel mit DirectX 7 neue Fkt. nur auf "neuer" HW

DirectX 8: Beispiele für VertexShader morphing / twining animation matrix palette skinning user-defined lighting models general environment mapping procedural geometry developer defined algorithms

DirectX 8: PixelShader PixelShader: Programmiersprache für Pixel-Ops: direkter Zugriff auf die Graphik-Hardware, insb. für Textur-Operationen: beliebige Textur-Operationen per-pixel lighting bump-mapping per-pixel environment mapping other developer-defined algorithms in DirectX9 nochmal deutlich erweitert in Zusammenarbeit mit ATI und nvidia

Direct3D: Shader Beispiele externe Folien, MS DX8 Overview (PowerPoint) ATI "wood shader"

DirectX 8: Multitexturing Überlagerung mehrerer Texturen z.b. für light-maps (siehe oben) oder bump-mapping (rechts) Ati Radeon: Geforce 2: 2 Pipes, je 3 Texturen 4 Pipes, je 2 Texturen

DirectX 8/9: HLSL "High Level Shader Language" C-ähnliche Programmiersprache für Shader Compiler erzeugt effizienten Code für Graphikchips diverse Technologiebeispiele von ATI und nvidia: realistisch aussehende Haut 3D-Holzmaserung spiegelnde und brechende Glasflächen begegte, spiegelnde und brechende Wasseroberflächen Partikeleffekte, Feuer,... siehe: "GPUGems"-Buch, GDC-2004 Präsentationen

DirectX 8: Audio Integration von DirectSound und DirectMusic: 3D-Audio für alle Quellen (.wav,.asf, DLS,...) DLS2 SW-Synthesizer (6-stage envelopes, effects, LFOs,...)

DirectX 8: Voice Communication DirectPlayVoice: Echtzeit-Sprachkommunikation in DirectPlay Verwaltung über den DirectPlay Server automatische Verwaltung jeder DirectPlay Voice Session automatische Kalibrierung der Bandbreite/Latenz

DirectX 8/9: DirectShow & DVD DirectX 8 Videobeschleunigung volle Unterstützung von Windows Media (ASF/WMV) im Prinzip MPEG-2 Unterstützung inkl. DVD-Player in DirectX 9 wieder komplett überarbeitet: "Video Mixing Renderer Filter VMR-9" erstmals Unterstützung für De-Interlacing erstmals Unterstützung für DVB-T/-S/-C erfordert Windows XP WMV-HD Demos

DirectX: COM Component Object Model: Microsoft's Komponentenmodell entwickelt für OLE (object linking and embedding) Interaktion zwischen Software-"Objekten" (Komponenten) über Schnittstellen (Interfaces) als Tabelle mit Zeigern auf C-Funktionen Interface-Hierarchie, IUnknown Schnittstelle wird nach Definition nie mehr verändert (GUID) statt dessen Einführung neuer Schnittstellen Speicherverwaltung mit Referenzzählung QueryInterface() / AddRef() / Release()

DirectX: vtable COM-Funktionsaufrufe: vtable: Tabelle mit Funktionspointern COM-Referenz ist Pointer auf eine vtable "long pointer to Direct Draw interface" lpdd -> lpvtbl ->Release( lpdd ); lpdd -> Release(); /* C */ // C++ keine Ausnahmebehandlung Fehlercodes jeder Funktion prüfen! if (FAILED( lpddsback->getdc( &hdc )) {... } if (SUCCEEDED( lpddsback->getdc( &hdc )) {... }

DirectX 9: Managed DirectX DirectX 9 erlaubt Integration in.net-framework: Schnittstelle von DirectX-Funktionen nach.net Nutzen der.net Klassenbibliothek aus DirectX-Applikationen Speicherverwaltung über.net Ausnahmebehandlung über.net für alle.net-sprachen: neue Beispiele in C#, VB.NET,... Performanceanforderung: mindestens 90% der Leistung von nativen C++

SDL: "Simple DirectMedia Layer" (www.libsdl.org)

SDL: Beispiel /* Print out all the keysyms we have, just to verify them */ #include <stdio.h> #include <ctype.h> #include "SDL.h" int main(int argc, char *argv[]) { SDLKey key; } if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); exit(1); } for ( key=sdlk_first; key<sdlk_last; ++key ) { printf("key #%d, \"%s\"\n", key, SDL_GetKeyName(key)); } SDL_Quit(); return(0);