OpenGL vs. Direct3D Ein 3D-API Vergleich



Ähnliche Dokumente
Fragen und Antworten. Kabel Internet

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

AutoCAD Dienstprogramm zur Lizenzübertragung

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Anleitung über den Umgang mit Schildern

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

OpenGL. (Open Graphic Library)

Wir machen neue Politik für Baden-Württemberg

Stepperfocuser 2.0 mit Bootloader

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wireless LAN PCMCIA Adapter Installationsanleitung

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

CodeSaver. Vorwort. Seite 1 von 6

Nutzung von GiS BasePac 8 im Netzwerk

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

15 Social-Media-Richtlinien für Unternehmen!

Terminabgleich mit Mobiltelefonen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Kapitel 2: Die edle Hardware

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Professionelle Seminare im Bereich MS-Office

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Wie halte ich Ordnung auf meiner Festplatte?

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Lizenzierung von SharePoint Server 2013

Zwischenablage (Bilder, Texte,...)

Lehrer: Einschreibemethoden

Drucken aus der Anwendung

Bedienungshinweise für das Smartboard. Basisfunktionen

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet

Primzahlen und RSA-Verschlüsselung

Anleitung zur Installation des Printservers

BANKETTprofi Telefonschnittstelle

Einstellen der Makrosicherheit in Microsoft Word

Lokales Netzwerk Probleme beim Verbinden eines Linux-Clients mit einem Windows 2003 Server Frage:

Verbinden. der Firma

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Dokumentenverwaltung im Internet

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

SMS/ MMS Multimedia Center

Installationsanleitung für das KKL bzw. AGV4000 Interface

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Gruppenrichtlinien und Softwareverteilung

Was ich als Bürgermeister für Lübbecke tun möchte

Drucken von Webseiten Eine Anleitung, Version 1.0

Informationen zum neuen Studmail häufige Fragen

Software- und Druckerzuweisung Selbstlernmaterialien

II. Daten sichern und wiederherstellen 1. Daten sichern

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

etax.schwyz: Suche nach Steuerfalldateien

ZEITSYNCHRONISATION IM DS-WIN EINRICHTEN

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

2015 conject all rights reserved

Einrichtung des DFÜ-Netzwerkes

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Sound-Formate. SelfLinux Autor: Johnny Graber Formatierung: Torsten Hemm Lizenz: GFDL

Guide DynDNS und Portforwarding

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Installation OMNIKEY 3121 USB

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Microsoft (Dynamics) CRM 2020: Wie verändern sich Markt, Eco-System und Anwendungsszenarien nach Cloud & Co?

Studienkolleg der TU- Berlin

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Grundlagen der Theoretischen Informatik, SoSe 2008

Installation der SAS Foundation Software auf Windows

Statuten in leichter Sprache

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Leichte-Sprache-Bilder

Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

Internet online Update (Mozilla Firefox)

MY-CAREER-HOMEPAGE.com

Print2CAD 2017, 8th Generation. Netzwerkversionen

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

1. Die Maße für ihren Vorbaurollladen müssen von außen genommen werden.

DLNA Funktion. Die Grundvoraussetzung zur Nutzung ist, dass sowohl Telefon als auch das Radio mit dem gleichen Netzwerk verbunden sind.

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Synchronisations- Assistent

3D-Konstruktion Brückenpfeiler für WinTrack (H0)

Wie Sie mit Mastern arbeiten

1 topologisches Sortieren

Evident VDDS-Anbindung von MIZ

15 Arten von QR-Code-Inhalten!

Dokumentation Schedulingverfahren

I Serverkalender in Thunderbird einrichten

Webalizer HOWTO. Stand:

Informationsblatt Induktionsbeweis

Verwendung von QR-Codes zum Teilen von digitalen Rezepten in Printmedien mittels der Recipe Packaging Toolbox von My Own Cookbook

So funktioniert das online-bestellsystem GIMA-direkt

1 Mathematische Grundlagen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Transkript:

OpenGL vs. Direct3D Ein 3D-API Vergleich 3D-APIs (Application Programming Interface)sind Software-Schnittstellen, um über einen Standard auf die Hardware des Rechners zugreifen zu koennen. Direct3D von Microsoft und der offene Standard OpenGL sind die wohl meistgenutzten 3D-APIs. OpenGL kommt aus der professionellen Ecke des CAD und der wissenschaftlichen Visualisierung, während Direct3D meist bei Spielen eingesetzt wird. Während OpenGL auf fast allen gängigen Plattformen verfügbar ist, glänzt Direct3D mit DirectX, einer ganzen Anzahl anderer APIs, z. B. für Sound. Übersicht: Was leistet eine 3D-API Die 3D-Hardware OpenGL Direct3D Fahrenheit OpenGL, Direct3D Vor- und Nachteile Synthese und Empfehlung Was leistet eine 3D-API? Was ist eine 3D-API? Eine 3D-API bildet eine Schnittstelle zur 3D-Hardware. Da man sich meist nicht auf eine spezielle Grafikkarte einschränken will, benutzt man eine spezielle API, um auf die Hardware zuzugreifen. APIs erleichtern meist auch die Programmierung, indem sie abstraktere Modelle zur Verfügung stellen, die für den Programmierer intuitiver sind. OpenGL und Direct3D sind hardwareunabhängig, so dass sie mit verschiedener oder auch ohne 3D-Hardware zur Verfügung stehen. Sowohl Direct3D als auch OpenGL können Funktionen die sie implementieren, die aber von der Hardware nicht unterstützt werden emulieren. 1/6

Welche 3D-APIs gibt es? OpenGL Direct3D Quickdraw3D (Apple) Glide (3DFx) Java3D (Sun, benutzt OpenGL) Mesa (OpenGL ähnlich) Warp3D (Amiga) Die 3D-Hardware 3D-Hardware kann im Wesentlichen Dreiecke zeichnen. Den Eckpunkten dieser Dreiecke können Farbwerte zugewiesen werden. Wenn alle drei Eckpunkte den gleichen farbwert haben, so erscheint das Dreieck in dieser Farbe. Weist man den Eckpunkte unterschiedliche Farben zu, rendert die Hardware ein Dreieck mit einem Farbverlauf. Des weiteren ist es möglich dem Dreieck eine Textur zuzuweisen, indem man Jedem Vertex eine Koordinate auf einer Textur zuweist. Diese Textur ist ein Bitmap, welches dann auf das Dreieck gelegt wird. Es ist auch eine Kombination aus Farbe und ev. mehreren Texturen möglich. Außerdem implementiert die Grafikhardware eine Tiefeninformation der gegebenen Dreiecke (eigentlich der Eckpunkte). Dadurch kann die Hardware beim Rendern feststellen, welche Punkte sich vor anderen befinden, und so nur die Punkte darstellen, die nicht verdeckt werden. Zuletzt sind noch die Per-Fragment-Operations möglich, die schon gerenderte Pixel verändern, z. B. um halbdurchsichtige Dreiecke zu zeichnen. Die 3D-Hardware, Beispieldreiecke gefärbt texturiert einfach Farbverlauf hinten vorne 2/6

OpenGL Geschichte: 80er Jahre IrixGL von SGI (nur für Irix) 1992 OpenGL 1.0 1995 OpenGL 1.1 1998 OpenGL 1.2 OpenGL ist eine Weiterentwicklung von IrixGL, dass SGI für Irix, sein eigenes Unix-Betriebsystem, entworfen hat. Kontrolle über OpenGL Als offener Standard, gehört OpenGL nun nicht mehr SGI alleine, sondern wird von der ARB (Architecture Review Board) verwaltet. Mitglieder in der ARB sind nvidia, SGI, DEC, IBM, Intel, Microsoft und andere. Das ARB trifft sich viermal jährlich, um über den Standard zu beraten und zu beschließen, wie es weitergehen soll. Die Protokolle der Sitzungen sind unter www.opengl.org öffentlich zugänglich. Unterstützte Betriebsysteme: OpenGL ist auf folgende Plattformen implementiert: AIX, Irix, FreeBSD, NetBSD, OpenBSD, Linux, Windows 9x, Windows NT, OS/2, Amiga OS, BeOS, MacOS und andere Unix-Betriebsysteme. Damit kann man sagen, dass OpenGL betriebsystemunabhängig ist. Jedes Betriebsystem ist selbst fuer die Implementierung verantwortlich. Die ARB zertifiziert diese lediglich. Allerdings existiert eine Open-Source Referenzimplementation. Weiterhin implementiert OpenGL das Client-Server Modell von X, das es erlaubt, die graphische Ausgabe von der Datenberechnung zu trennen. Damit kann man z. B. über ein Netzwerk OpenGL-Programme auf einem Entfernten Server laufen lassen, und die Ausgabe auf den lokalen Computer umleiten. Beispielprogramm: glbegin (GL_TRIANGLES); glvertex (0,0,0); glvertex (1,1,0); glvertex (2,0,0); glend (); Dieses Programm erzeugt ein planes Dreieck. Die Eckpunkte sind durch die Koordinaten hinter glvertex gegeben. 3/6

OpenGL Utility Toolkit GLUT: Das GLUT ist eine Erweiterung für die Programmierung mit OpenGL In C oder Fortran. Sie stellt abstraktere Programmiermöglichkeiten zur Verfügung. Außerdem ermöglicht sie eine plattformunabhängige Ansteuerung des jeweiligen Window-Systems. So kann man per GLUT ein Fenster für das OpenGL-Programm im Source-Code anfordern, und die GLUT sorgt bei der Kompilierung an die Angleichung dieses Codes an das jeweilige Window-Systems. Beispielanwendungen: ArchiCAD Autodesk (AutoCAD 2000) Quake (GL-Quake, Quake II & III) Microstation 95 MathGL3D (Mathematica) Maya (Character animation, Modeling) Direct3D Geschichte von Direct3D März 1996 DirectX 2.0 September 1996 DirectX 3.0 September 1997 DirectX 5.0 Juli 1998 DirectX 6.0 Mai 1999 DirectX 7.0 November 2000 DirectX 8.0 Kontrolle über Direct3D: Direct3D ist als Bestandteil von DirectX alleiniges Eigentum von Microsoft. Ev. In Zusammenarbeit mit den Hardwareherstellern, beschließt Microsoft die Änderungen in der API allein. Direct3D und DirectX DirectX enthält außer Direct3D noch weitere Schnittstellen um andere Hardware anzusprechen. z. B. DirectSound, DirectPlay, DirectInput; die macht DirectX und damit Direct3D für Spielentwickler interessant, da diese meist auch Sound, Musik, Joysticks, etc. benutzen. Unterstützte Betriebsysteme: Direct3D unterstützt lediglich die Windows-Plattform. DirectX 8.0, und damit auch Direct3D 8.0 gibt es allerdings nur für Windows 9x und Windows 2000. Für DOS-basierte Windows Versionen und für Windows NT Bis Version 3.51 gibt es kein DirectX. Windows NT 4.0 unterstützt höchstens Direct3D 3.0, allerdings 4/6

nur ohne hardware-beschleunigung. Beispielprogramm Direct3D 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 Dieses Programm erzeugt ein planes Dreieck. Die Eckpunkte sind durch die Koordinaten hinter D3DVECTOR gegeben. Immediate & Retained Mode: Direct3D besitzt zwei Modi: Immediate & Retained Mode. Immediate ist hardwarenah, Retained abstrakter und mehr Model-orientiert. Retained wurde mit Direct3D 7.0 aufgegeben. Beispielanwendungen: Simply 3D Unreal Tournament Earth 2150 Warcraft III Microsoft Flight Simulator Battle Isle 4 Fahrenheit: Fahrenheit war eine Initiative von Microsoft und SGI: Es sollte eine neue 3D API entstehen, die OpenGL und Direct3D miteinander verschmelzen soll. (zeitlich ca. mit DirectX 9.0) Das Projekt ist mittlerweile gescheitert. Sowohl SGI als auch Microsoft hatten kein Interesse mehr einen gemeinsamen Standard zu etabilieren. 5/6

OpenGL, Vor- und Nachteile Vorteile von OpenGL plattformunabhängig selbst erweiterbar Open-source Referenzimplementierung Client-Server-Model Meist bessere Treiber für professionelle Grafikhardware Nachteile von OpenGL Neuer Standard dauert lange Extensions-Chaos Keine bzw. nur schlechte Treiberunter-stützung auf preiswerter Hardware Direct3D, Vor- und Nachteile Vorteile von Direct3D Schnell neuer Standard verfügbar Programmiersprachenunabhangig (COM) DirectX immer auch verfügbar (Sound ) Standard meist weiter als Hardware-entwicklung Software-Emulator für alle Features Meist bessere Treiber für Low-Cost Grafikkarten Nachteile von Direct3D Plattformabhängig (Windows) Proprietär (Microsoft) Closed-source Oft starke Änderungen bei Versions-wechseln Synthese und Empfehlung OpenGL wird in der Wissenschaft und bei professionellen Anwendungen bevorzugt. Viele CAD-Arbeitsplätze sind z. B. an Unix-Workstations, sodass dort sowieso keine Wahl besteht. Auch viele Wissenschaftler arbeiten nicht mit Windows NT. Für ausgewachsene professionelle Grafikkarten gibt es aber meist auch keine Direct3D-Treiber. Direct3D wird meist bei Spielen eingesetzt, da dort sowieso zur Zeit nur für Windows entwickelt wird und fast immer auch Sound und ähnliches benötigt wird, was durch DirectX realisiert wird. Beide haben ihre Vor- und Nachteile, es ist keine allgemeingültige eindeutige Empfehlung möglich 6/6