Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

Ähnliche Dokumente
OpenGL vs. Direct3D Ein 3D-API Vergleich

Einführung in OpenGL. Einführung in OpenGL

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

OpenGL. (Open Graphic Library)

Seminar Game Development Game Computer Graphics. Einleitung

Grafikprogrammierung (Echtzeitrendering)

Eine Einführung Computergrafik SS14 Timo Bourdon

Grafikkarten-Architektur

Cross-Plattform Spieleentwicklung mit der SDL

VRML Tools. Markus Czok, Carsten Rohde

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

Grundlagen der Spieleprogrammierung

OpenGL als API für Augmented und Virtual Reality

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen. Michel Weimerskirch

Smartphone Entwicklung mit Android und Java

(13) Hot Topics. Vorlesung Computergrafik T. Grosch

LINUX Schulung. FrauenComputerZentrum Berlin. Jutta Horstmann, Mai 2006

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

VIRTUAL REALITY HYPE! Virtual Reality ist Super-Cool! Virtual Reality is Super-Cool! Virtual Bungee Jumping

Multimedia/Graphics Libraries & Systems

Teil III. Grundlagen der Computergrafik

Dipl. Inf. (FH) Thomas Obermaier Freier Softwareentwickler Kapellenstraße Gutenberg. Lebenslauf. Geburtstag. 1. Dezember 1981.

Berater-Profil SW-Entwickler/-Designer (Rational Rose, ClearCase, J2EE, C++, CORBA -TAO/Orbix-)

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen

Virtualisierung ein Überblick

Hochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum

Autodesk GIS Workshop Oldenburg

Architektur von Game-Engines

Grundlegende Algorithmen

Ein Streifzug durch die Programmiersprachenlandschaft in der Schule. Gerald Futschek TU Wien Informatiktag 2013

Virtual Machines. Peter Schmid Hochschule für Technik Zürich Master of Advanced Studies, Informatik

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Die Open Source -Bewegung. 1. Was ist Open Source? (Das GNU-Projekt)

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

Ablösung von Oracle-Datenbanken mit PostgreSQL oder MariaDB. Präsentation 23. Juni 2016

Open Source Einsatz in der Stadt Wien

Virtual Machines. Peter Schmid Hochschule für Technik Zürich Master of Advanced Studies, Informatik

Projektarbeit Computergraphik. DirectX vs. OpenGL. Fachbereich: 12. Informatik Betreut durch Prof. Dr. Xiaolin Zhou von

Zu meiner Person Was erwartet Sie? Vorlesungen Übungen. Welche Techniken lernen Sie kennen? Grafik-API Programmiersprache.

Einführung in Betriebssysteme

Virtuelle Entwicklungsarbeitsplätze und Linux

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

GPGPU mit NVIDIA CUDA

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Gottfried Wolmeringer. Coding for Fun. Galileo Press

1 OpenGL in Delphi. 1.1 Vom Pixel zur Simulation. kleiner kommunikation

Embedded Computing Conference 2014 Embedded UI Qt5

Jörn Loviscach Hochschule Bremen

SCHULAUSBILDUNG/LEHRE

Computergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester Version: 24. März 2014

Berater-Profil Systemdesigner, zert. Netzwerkadministrator CNE. Cisco, Novell, Linux, Sun, Windows. Ausbildung Studium Nachrichtentechnik

Grundlagen der Programmierung UE

Programmiersprachen und Programmierkonzepte

UNIX Ein kleiner Ausschnitt

Kapitel 5: Graphikhardware und Parallelisierung

Grafikprogrammierung mit OpenGL II

Vergleich von Forward und Deferred Rendering

Grundlagen der Programmierung UE

Berater-Profil Systemadministrator (OS/2, Win 9x/2000/NT/XP. Ausbildung 4 Semester Informatikstudium an der HU Berlin. EDV-Erfahrung seit 1993

Game Development 1. Proseminar Objektorientiertes Programmieren mit.net und C# Philipp Kaiser. Institut für Informatik Software & Systems Engineering

HOMEPLANE. Home Media Platform and Networks

Enterprise Portal - Abbildung von Prozessen, SAP-Datenintegration und mobile Apps

Liesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung

XNA XNA s Not Acronymed. Vorlesung Virtual Reality Wintersemester 2007/2008 Jonas Schmidt, Martin Schiewe

Erhebung IT- und Medienausstattung

Software-Entwicklung, Consulting Fachlicher Schwerpunkt: Hardwarenahe Softwareentwicklung, Protokollentwicklungen, grafische Datenverarbeitung

Spiele, Simulation, dynamische Systeme

Allgemeine Informationstechnologien I

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

Desktopvirtualisierung. mit Vmware View 4

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme

Überblick Echtzeit-Rendering. Uwe Domaratius

Portabel Programmieren. Dr. Olaf Flebbe

Berater-Profil OOA, OOD, OOP Paralleles und verteiltes Rechnen C/S-Systeme und Internetanwendungen. EDV-Erfahrung seit 1991

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Filesystem in Userspace. Jens Spiekermann

Grafikkarten. Institut für Informatik, LMU München Seminar: Medientechnik, SoSe 2003 LS Prof. Hussman Referentin: Milena Velikova

Systemsoftware (SYS)

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

Berater-Profil Software Engineer Java

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Berater-Profil DB-Administrator, Systementwickler (Oracle) EDV-Erfahrung seit Verfügbar ab auf Anfrage.

Berater-Profil DB- und Systemadministration - Informix, Sybase - EDV-Erfahrung seit Verfügbar ab auf Anfrage.

OpenGL 2.0.

Objektorientiertes Software-Engineering

Berater-Profil 444. Systemberater, DB-Administrator (Client-Server: DEC, NT, Unix, Oracle) Ausbildung Diplom Informatiker. EDV-Erfahrung seit 1985

Non-Photorealistic Rendering

Google Earth: 3D-Modelle, Formate, Standards

Berater-Profil PDM-Berater (Schwerpunkt CATIA V5, SAP, CDIV5)

Kapitel 1 Betriebssystem I. Das Betriebssystem

Operating System Design - Now and Then. Christian Behnert Proseminar Technische Informatik FU Berlin

Virtuelle Maschinen. Serbest Hammade / Resh. Do, 13. Dezember 2012

Virtualisierung mit Freier Software

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

3d XML, 3d XML Player

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Augmented Reality Software

Das SR4 bietet eine Reihe von Verbesserung und behebt kleinere bekannte Probleme aus den Bereichen:

Transkript:

Proseminar: Virtuelle Präsenz Vortrag: Steve Rechtenbach

Themen: 2/22 Einführung Was ist OpenGL? / Entwicklung Fakten Kleines(!) Beispiel Hello OpenGL Shader Zusammenfassung OpenGL vs Direct3D

Einführung: OpenGL? PC-Games? 3/22 Kurz nach Einführung von OpenGL unterstützen fast alle kommerziellen Spiele OpenGL Je nach Implementierung/Hardware Geschwindigkeitsvorteil Quake => 1996 neben VESA, D3D auch OpenGL

Einführung: 4/22 OpenGL nur für Computerspiele???

Einführung: Führend in den Bereichen: 5/22 (CAD) Computer Aided Design (CAE) Computer Aided Engineering (CAM) Computer Aided Manufacturing Virtual Reality Film und Fernsehen Simulation Medizin

Was ist OpenGL?: 6/22 API zur 2D/3D Programmierung Renderer Zeichnet im wesentlichen nur Dreiecke Infos über Farb-/Texturinformationen Tiefeninformationen der Dreiecke(Vertices) State Machine

Entwicklung: 7/22 Früher: Hardwarespezifische 2D/3D Bibliotheken der verschiedenen Hersteller Problem? Silicon Graphics 1992: SGI(Silicon Graphics Inc.) entwickelt OpenGL Erste standardisierte API für 2D/3D Programmierung OpenGL basierte stark auf der früheren Arbeit SGI s an ihrer IRIX-GL Bibliothek

Fakten Fakten Fakten: 8/22 OpenGL ist... Netzwerkfähig! Industriestandard große Software und Hardwarehersteller haben Mitspracherecht Gratis (DirectX ist jedoch auch kostenlos) Finanziert durch Abgaben der Hardwarehersteller(wenn sie Treiber mit ihren Produkten liefern wollen, + Lizensierungskosten fürs Logo) Unterstützung durch viele Programmiersprachen:

Fakten: Bindungen: 9/22 Es existieren Bindungen für: C = C++ Java Python Tcl/Tk Pascal Delphi Perl Scheme Guile Haskell Ada Fortran Modula-3 Unterstützte Betriebssysteme: AIX IRIX FreeBSD NetBSD OpenBSD Linux Windows 9x WindowsNT OS/2 Amiga OS BeOS MacOS Und andere UNIX BS...

Fakten: Architecture Review Board: 10/22 Das OpenGL Standarisierungs- Komitee verwaltet die API Treffen sich alle 3 Monate um über neue features und extensions zu entscheiden Promoter-level können direkt über neue Standards abstimmen Direktes mitspracherecht Contributor-level Evans and Sutherland, Imagination Technologies, Matrox, Quantum3D, S3 Graphics, Spinor GmbH, Tungsten Graphics, and Xi Graphics

Hello OpenGL: 11/22 Beispiel

Hello OpenGL: 12/22 gltranslatef(0.0f,0.0f,-6.0f); glbegin(gl_quads); glvertex2f(-1.0f,-1.0f); glvertex2f( 1.0f,-1.0f); glvertex2f( 1.0f, 1.0f); glvertex2f(-1.0f, 1.0f); glend();

Hello OpenGL: 13/22 gltranslatef(0.0f,0.0f,-6.0f); glbegin(gl_quads); glcolor3f ( 0.0, 1.0, 0.0); glvertex2f(-1.0,-1.0); glcolor3f ( 0.0, 1.0, 1.0); glvertex2f( 1.0,-1.0); glcolor3f ( 0.0, 0.0, 1.0); glvertex2f( 1.0, 1.0); glcolor3f ( 1.0, 0.0, 0.0); glvertex2f(-1.0, 1.0); glend();

Hello OpenGL: 14/22 gltranslatef(0.0f,0.0f,-6.0f); glrotatef(45,1.0,1.0,0.0); glbegin(gl_quads); glcolor3f ( 0.0, 1.0, 0.0); glvertex2f(-1.0,-1.0); glcolor3f ( 0.0, 1.0, 1.0); glvertex2f( 1.0,-1.0); glcolor3f ( 0.0, 0.0, 1.0); glvertex2f( 1.0, 1.0); glcolor3f ( 1.0, 0.0, 0.0); glvertex2f(-1.0, 1.0); glend();

Hello OpenGL: 15/22 Schneller = Besser

Hello OpenGL: Optimierungsmöglichkeiten: 16/22 Reduzierung der Vertices die gezeichnet werden: Back Face Culling Frustum Culling Optimierung des Zeichenvorgangs: Display Listen Vertex Arrays/Buffer

Shader: Allgemein: 17/22 Ab OpenGL 1.4 durch das ARB hinzugefügt Programmierbare Rendering-Pipeline Realistische Lichtberechnungen Flexiblere Überblendung von Texturen OpenGL Shading Language (GLSL) Unterteilung in Vertex- und Fragmentshader(Pixelshader)

Shader: Vertexshader: 18/22 Wird auf jedem gezeichnetem Vertex ausgeführt Belastet nur die GPU der Grafikkarte Man kann Position und Aussehen jedes Vertex ändern Emulierbar Bsp: Geforce4 MX Echter Fragmentshader in Chip integriert Jedoch Vertexshader nur durch Treiber simuliert

Shader: Fragmentshader: 19/22 Fragmente: Enthalten Farb-,Tiefe-,Texturdaten Materialeigenschaften Wird häufig für Multitexturing benutzt + =

OpenGL vs Direct3D: 20/22 OpenGL: BS unabhängig OpenSource Selbst erweiterbar Weiterentwicklung durch ARB Direct3D: Windows Eigentum von M$ Weiterentwicklung durch M$ alleine Beispielprogramm Dreieck: glbegin (GL_TRIANGLES); glvertex (0,0,0); glvertex (1,1,0); glvertex (2,0,0); glend (); Beispielprogramm Dreieck: D3DVERTEX g_pvtrianglevertices[3]; D3DVECTOR p1( 0.0f, 3.0f, 0.0f ); D3DVECTOR p2( 3.0f,-3.0f, 0.0f ); D3DVECTOR p3(-3.0f,-3.0f, 0.0f ); g_pvtrianglevertices[0] = D3DVERTEX( p1, vnormal, 0, 0 ); g_pvtrianglevertices[1] = D3DVERTEX( p2, vnormal, 0, 0 ); g_pvtrianglevertices[2] = D3DVERTEX( p3, vnormal, 0, 0 ); pd3ddevice->drawprimitive( D3DPT_TRIANGLELIST, D3DFVF_VERTEX, g_pvtrianglevertices, 3, NULL

OpenGL vs Direct3D: 21/22 OpenGL Vorteile: plattformunabhängig Open-source Referenzimplementierung Meist bessere Treiber für professionelle Grafikhardware Nachteile: Neuer Standard dauert lange Extensions-Chaos Keine bzw. nur schlechte Treiberunterstützung auf preiswerter Hardware Direct3D Vorteile: Schnell neuer Standard verfügbar Programmiersprachenunabhangig (COM) DirectX immer auch verfügbar (Sound ) Standard meist weiter als Hardwareentwicklung Software-Emulator für alle Features Meist bessere Treiber für Low- Cost Grafikkarten Nachteile Plattformabhängig (Windows) Proprietär (Microsoft) Closed-source Oft starke Änderungen bei Versions-wechseln

Zusammenfassung: endlich die letzte Folie Welche API benutze ich jetzt? Fragen?