Dennis Willkomm, Jens Freiling & Nils Sawade 1 Interface QT/XML/CVS Praktikum Augmentierte Bildsynthese mit Photon Mapping Interface Gruppe.

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

Parser generieren Yet Another Compiler – Compiler YACC.
DOM (Document Object Model)
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Eingabeaufforderung (EA) Windows I Nützliche Kommandos (Kommando und /? liefert meist eine Liste von Optionen): cd bzw. chdir: change directory, wechselt.
Werkzeuge und Softwareumgebung von Christian Michele.
1/15 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – CVS Projektgruppe KIMAS CVS Daniel Karuseit.
Concurrent Versions System
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
GIT und Redmine Übung.
Coccon das Web-XML-Publishing System Thomas Haller.
JavaScript.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Java für Fortgeschrittene
Betriebssysteme: Unix
Oliver Spritzendorfer Thomas Fekete
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
Concurrent Versions System
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
Durbusch.de Inhalte ändern. Allgemeines Die Inhalte der Homepage treten in verschiedenen Formaten auf. Die Startseite besteht im wesentlichen aus dem.
Bewerbungs- eingang Bewerbungs- bearbeitung Stellenangebote VermittlungKommunikationZusatzleistungen.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Übungsart: Seite: Bearbeitet von: Siegbert Rudolph Lesemotivationstraining Titel: Quelle: Nächste Seite 1 Bedienungshinweise: Mit einem Klick geht es immer.
IIS The microsoft way. © Windows NT Option pack optionale Server Komponenten IIS (Internet Information Server) Webserver von Microsoft.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Webdeployment auf Cluster Seminarvortrag von Lukas Bonzelett.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
J Walk/GUI400 für Einsteiger Client Win95, Win98, WinNT © NewServ AG, Uitikon Installationsvorgang.
4. Graphische Oberflächen mit Qt-Framework. Was ist Qt? ● gesprochen englisch cute = hübsch ● C++-Klassenbibliothek ● Erweitert C++ um zusätzliche Features.
Zehn Schritte zu Linux Der Weg in eine andere Welt...
Mit dem Computer kann man ganz toll präsentieren
Benutzer-Update mit BImport paedML® 3.0 Novell
Verwalten von Daten mit Hilfe von NTFS
Visual FoxPro Advanced Umstellen auf 64 bit
Anforderungen an die neue Datenstruktur
Objective C Universität zu Köln
Präsentationen im alten Design
Das IT - Informationssystem
SurveyCAU Handbuch - Studierende-.
Objective C Universität zu Köln
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Create Table, Rechte und Rollen
Herzlich Willkommen Präsentation für das Angebot «einfache Verlinkung»
Anpassen von Microsoft SharePoint Onlinewebsite
“<Titel>” Prozessbeschreibung
Windows für Anfänger Lehnen Sie sich zurück, die Folien wechseln sich automatisch.
Mehr Möglichkeiten mit der SQL-Version
Die PowerPoint-Arbeitsfläche
Übung: Star Wars - Erbaue eine Galaxie mit Hilfe von Code
ERFA CAD – Inventor – Berufsschule Zofingen
Titel: Quelle: Übungsart: Titel: Quelle: Uhr Die Uhr lesen lernen
Herzlich willkommen zum Tutorial:
in Word 5 neue Arbeitsweisen Mit jedem zusammenarbeiten, überall
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
«Delegierter» Methoden Schablone Funktionszeiger
Produktname.
Der 30-Sekunden Elevator Pitch
Implementieren von Klassen
Risiko – Check Erkennung von Politisch exponierten Persönlichkeiten (PeP‘s) bzw. von Personen mit Verdacht auf Geldwäsche und/oder Terrorismusfinanzierung.
Wissenschaftliches Projekt
Von Wietlisbach, Lenzin und Winter
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
Folientitel SmartArt Diagramme Tabellen Bilder und Grafiken
 Präsentation transkript:

Dennis Willkomm, Jens Freiling & Nils Sawade 1 Interface QT/XML/CVS Praktikum Augmentierte Bildsynthese mit Photon Mapping Interface Gruppe

Dennis Willkomm, Jens Freiling & Nils Sawade 2 Interface QT/XML/CVS Gliederung  Qt Allgemein  XML  CVS  OpenEXR

Dennis Willkomm, Jens Freiling & Nils Sawade 3 Interface QT/XML/CVS QT allgemein

Dennis Willkomm, Jens Freiling & Nils Sawade 4 Interface QT/XML/CVS Was ist Qt  C++ Klassen Bibliothek  GUI Toolkit  Für Unix und Windows  Quelle:

Dennis Willkomm, Jens Freiling & Nils Sawade 5 Interface QT/XML/CVS Interface Elemente/Buttons  Push Button  Check Box  Radio Button  Label  Tool Button  Button Group

Dennis Willkomm, Jens Freiling & Nils Sawade 6 Interface QT/XML/CVS Interface Elemente/Input  Scrollbar  Slider  Combo Box  Spin Box  Line Edit  Dial  LCDNumber  PixmapLabel

Dennis Willkomm, Jens Freiling & Nils Sawade 7 Interface QT/XML/CVS Interface Elemente/Widgets HelloWorld.cpp #include int main( int argc, char **argv) { QApplication myApplication (argc, argv); QPushButton myPushButton („Hello World!“, 0); myPushButton.resize(100, 30); myApplication.setMainWidget( &myPushButton); myPushButton.show(); return myApplication.exec(); }

Dennis Willkomm, Jens Freiling & Nils Sawade 8 Interface QT/XML/CVS Signals & Slots  Kommunikation zwischen Objekten  Signale werden ausgelöst, wenn ein Event autritt

Dennis Willkomm, Jens Freiling & Nils Sawade 9 Interface QT/XML/CVS Interface Elemente/Widgets HelloWorld.cpp #include int main( int argc, char **argv) { QApplication myApplication (argc, argv); QPushButton myPushButton („Hello World!“, 0); myPushButton.resize(100, 3); myApplication.setMainWidget( &myPushButton); myPushButton.show(); QObject::connect(&myPushButton, SIGNAL(clicked()), &myApplication, SLOT(quit()) ); return myApplication.exec(); }

Dennis Willkomm, Jens Freiling & Nils Sawade 10 Interface QT/XML/CVS OpenGL Anbindung #include GLBox::GLBox( QWidget* parent, const char* name) : QGLWidget( parent, name) { xRot = yRot = zRot = 0.0; scale = 1.0; localDisplayList = 0; }

Dennis Willkomm, Jens Freiling & Nils Sawade 11 Interface QT/XML/CVS Unser Interface?

Dennis Willkomm, Jens Freiling & Nils Sawade 12 Interface QT/XML/CVS XML

Dennis Willkomm, Jens Freiling & Nils Sawade 13 Interface QT/XML/CVS Gliederung  XML Allgemein  Aufbau einer XML-Datei  XML-Parser

Dennis Willkomm, Jens Freiling & Nils Sawade 14 Interface QT/XML/CVS XML Allgemein  Was ist XML? 1. Ein Informationscontainer „XML ist den allgegenwärtigen Plastikbehältern von Tupperware sehr ähnlich.“ (O‘Reilly) XML enthält, formt, benennt, strukturiert und schützt Informationen.

Dennis Willkomm, Jens Freiling & Nils Sawade 15 Interface QT/XML/CVS XML Allgemein  Was ist XML? 2. Ein Werkzeugkasten für Markup-Sprachen XML ist keine Markup-Sprache, da kein festgelegtes Vokabular und keine festgelegte Grammatik existiert. XML legt ein Fundament aus syntaktischen Beschränkungen, anhand denen man sich eine eigene Sprache schaffen kann.

Dennis Willkomm, Jens Freiling & Nils Sawade 16 Interface QT/XML/CVS XML Allgemein  Was ist XML? 3. Ein offener Standard Ein offener Standard wird nicht stillschweigend geändert und ist auch nicht an das Schicksal eines Unternehmens geknüpft. Spezifikation steht der Öffentlichkeit zur Verfügung (

Dennis Willkomm, Jens Freiling & Nils Sawade 17 Interface QT/XML/CVS XML Allgemein  Was leistet XML? - Daten speichern und abrufen - Dokumente formatieren - In Präsentationsformate transformieren

Dennis Willkomm, Jens Freiling & Nils Sawade 18 Interface QT/XML/CVS Ein XML-File

Dennis Willkomm, Jens Freiling & Nils Sawade 19 Interface QT/XML/CVS Ein XML File  Typen von Tags in XML Leere Elemente Container Elemente Das ist ein Absatz Deklarationen Verarbeitungsanweisungen Kommentare CDATA-Abschnitte Entity-Referenzen &name

Dennis Willkomm, Jens Freiling & Nils Sawade 20 Interface QT/XML/CVS XML Parser  Wie funktioniert ein Parser

Dennis Willkomm, Jens Freiling & Nils Sawade 21 Interface QT/XML/CVS XML Parser  Was macht ein Parser 1. Interne Prüfmechanismen (Ablegen auf Stacks) 2. Der Parser sucht nach Quellen von Entity-Referenzen und gliedert diese in das Dokument ein 3. Strukturprüfung (Validierung)

Dennis Willkomm, Jens Freiling & Nils Sawade 22 Interface QT/XML/CVS XML Parser  Parser in Browsern Man kann XML-Files in Browsern anzeigen. Bis zu einem gewissen Grad werden Prüfungen durchgeführt.  Parser in Programmiersprachen Es gibt viele fertige API‘s, die man für seine Programme verwenden kann. Problem: XML ist stark auf Java ausgerichtet. Weniger Auswahlmöglichkeiten und Dokumentationen für C++.

Dennis Willkomm, Jens Freiling & Nils Sawade 23 Interface QT/XML/CVS XML Parser  Was sollte ein Parser können? SAX (Simple API for XML) DOM (Document Objects Model) DTD-Validierung

Dennis Willkomm, Jens Freiling & Nils Sawade 24 Interface QT/XML/CVS XML Parser  SAX Simple API for XML - erste und beliebteste Methode - XML Inhalt wird als Art Pipeline behandelt (Stream) - abhängig von einfachem Markup, das der Verarbeitungsreihenfolge entspricht - die Quelle der Dateien ist unwichtig (Datei oder Programmausgabe)

Dennis Willkomm, Jens Freiling & Nils Sawade 25 Interface QT/XML/CVS XML Parser  DOM Document Object Model - Baummethode - Möglichkeit zu jedem Punkt zu gehen - mehr Ressourcen erforderlich

Dennis Willkomm, Jens Freiling & Nils Sawade 26 Interface QT/XML/CVS XML Parser  Unsere Auswahl (vorläufig) Xerces-C Unterstütz Java, C++, Perl API‘s: DTD-Validierung, SAX, DOM, Xerces Native Interface, XML Schema

Dennis Willkomm, Jens Freiling & Nils Sawade 27 Interface QT/XML/CVS CVS Concurrent Version System

Dennis Willkomm, Jens Freiling & Nils Sawade 28 Interface QT/XML/CVS  Versionskontrollsystem Gleichzeitiges Arbeiten an Dateien (keine Locking- Mechanismen) Arbeitet mit Versionsnummer Verzeichnisbaumstruktur Ist in Client/Server aufgebaut  Auf dem Server stehen die Projekte in Modulen in einem globalen Repository zur Verfügung.  Die Benutzer haben eine Arbeitskopie des aktuellen Moduls auf ihrem eigenen Arbeitsbereich CVS

Dennis Willkomm, Jens Freiling & Nils Sawade 29 Interface QT/XML/CVS Befehlsaufbau  Alle Kommandos werden als Parameter mit dem Programm cvs aufgerufen  Die allg. Optionen sind nur einmal nötig, da sie von cvs im lokalen Modul abgespeichert werden (z.B. –d für den Repository-Pfad) der normale Aufruf sieht daher meist so aus: cvs [allg. optionen] Kommando [kommandooptionen] cvs Kommando [kommandooptionen]

Dennis Willkomm, Jens Freiling & Nils Sawade 30 Interface QT/XML/CVS Repository Anlegen Man benötigt hier die allg. Option - d um den Ort des Repository anzugeben cvs –d /usr/local/cvsroot init oder extern cvs –d koblenz.de:/usr/local/cvsroot init mit dem Kommando init wird das Repository initialisiert pserver gibt die verwendete Zugriffsmethode an (es gibt noch andere z.B. via ssh, dies wird hier aber nicht behandelt)

Dennis Willkomm, Jens Freiling & Nils Sawade 31 Interface QT/XML/CVS Module ins Repository anlegen Als erstes wechselt man in das Verzeichnis, indem die Verzeichnisse/Daten liegen, die als Modul ins Repository importiert werden sollen cvs –d import –m Es werden nun alle Dateien/Verzeichnisse im Aktuellen Verzeichnis ins Modul importiert. Mit –m wird ein Kommentar hinzugefügt. Die Tags am Schluß dienen „nur“ für die Verwaltung von CVS, sie sind daher beliebig wählbar.

Dennis Willkomm, Jens Freiling & Nils Sawade 32 Interface QT/XML/CVS Auschecken von Modulen Man wechselt in das gewünschte lokale Verzeichnis, in das das Projekt als Arbeitskopie angelegt werden soll.  eventuell muss man sich vorher noch auf dem Server einloggen: cvs –d login cvs –d checkout oder kurz cvs –d co

Dennis Willkomm, Jens Freiling & Nils Sawade 33 Interface QT/XML/CVS Arbeitskopie aktualisieren Seine Arbeitskopie des Moduls auf den neusten Stand bringt man, indem man in den Projekt-Ordner wechselt und folgende Eingabe aufruft cvs update besser cvs update –d –A -d fügt auch neue Verzeichnisse hinzu -A löscht eventuelle Optionen von vorherigen Updates

Dennis Willkomm, Jens Freiling & Nils Sawade 34 Interface QT/XML/CVS Update auf andere Versionen cvs update –D bringt die Arbeitskopie auf den „aktuellen“ Stand vom angegebenen Datum cvs update –r oder bringt sie auf den Stand einer bestimmten Versionsnummer oder auf eine Version, die durch einen Tag markiert wurde (siehe auch Tagging)

Dennis Willkomm, Jens Freiling & Nils Sawade 35 Interface QT/XML/CVS Dateien verändern Bevor man eine Datei verändern kann, muss man es beim Repository anmelden cvs edit Jetzt kann man die Datei ändern. Damit die veränderte Datei ins Repository aufgenommen wird fehlt noch ein cvs commit –m cvs unedit falls man die Datei doch nicht verändert will, werden eventuelle Änderungen rückgängig gemacht (edit und unedit wird bei uns nicht benötigt, es reicht veränderte Datei mit commit ins Reposity zu stellen)

Dennis Willkomm, Jens Freiling & Nils Sawade 36 Interface QT/XML/CVS Mischen & Konflikte Wenn man eine veränderte Datei ins Repository überführen will, kann es sein, das sie schon in einer neueren Version, als die geänderte Datei, vorliegt. CVS gibt eine Warnung aus und übernimmt die Datei nicht ins Repository. Nun muss man, um seine Änderungen in die neue Version aufzunehmen, auf die neuste Version updaten. Hierbei mischt CVS die neuere globale Version mit der eigene lokalen Version zusammen. Läuft das Mischen konfliktfrei, so wird eine neue Version erstellt, die man nun ins Repository übertragen kann.

Dennis Willkomm, Jens Freiling & Nils Sawade 37 Interface QT/XML/CVS Mischen & Konflikte Treten aber beim Mischen Konflikteauf, so meldet das CVS und erstellt eine neue Datei, in der die Konflikte folgendermaßen gezeigt werden... <<<<<<< filename... lokaler Text... =======... globaler Text... >>>>>>> die Probleme müssen behoben werden und die Datei kann dann als neue Version ins Repository übermittelt werden. (die eigene Datei wird als # im Arbeitsverzeichnis abgesichert)

Dennis Willkomm, Jens Freiling & Nils Sawade 38 Interface QT/XML/CVS Datei & Verzeichnisse anlegen Eine neue Textdatei/Verzeichnis, muss erst im/ins Project-Ordner erstellt/kopiert werden, nur dann kann sie in die eigene Arbeitskopie aufgenommen werden, das geht dann mit cvs add cvs add -kb (-kb wird bei Binärdateien benötigt, da sie nicht mit einander verglichen werden können) cvs add Damit die Datei noch ins Repository aufgenommen wird, fehlt noch ein cvs commit –m bei Verzeichnissen reicht das add Kommando aus.

Dennis Willkomm, Jens Freiling & Nils Sawade 39 Interface QT/XML/CVS Löschen von Datein Dateien, können aus der Arbeitskopie gelöscht werden mit cvs remove sie müssen dann noch physikalisch aus dem Arbeitverzeichnis gelöscht werden, das geht mit cvs remove –f auch in einem Schritt, mit cvs commit –m werden sie auch aus dem Repository „gelöscht“, hier werden sie, damit vorherige Versionen wieder hergestellt werden können, aber nur als gelöscht markiert.

Dennis Willkomm, Jens Freiling & Nils Sawade 40 Interface QT/XML/CVS Unterschiede in Dateien zeigen Um die Unterschiede zwischen lokaler und globaler Fassung zu bestimmen, kann man den Aufruf cvs diff verwenden. Mit der zusätzlichen Angabe von Versionsnummern lassen sich die Differenzen zwischen beliebigen Fassungen ausgeben cvs diff –r -r

Dennis Willkomm, Jens Freiling & Nils Sawade 41 Interface QT/XML/CVS Herausfinden, wer was gemacht hat cvs log Bekommt man die Log-Datei ausgegeben, eine Übersicht aller Versionen der Datei/en mit den Kommentaren wird gezeigt cvs history zeigt eine Datei mit allen Aktionen, die CVS bisher durchgeführt hat

Dennis Willkomm, Jens Freiling & Nils Sawade 42 Interface QT/XML/CVS Tagging CVS vergibt für jede Datei automatisch Versionsnummern. Dateien mit verschiedensten Versionen kann man zu einem Release zusammenstellen durch cvs tag dadurch werden alle Dateien symbolisch zusätzlich mit diesen tagname versehen

Dennis Willkomm, Jens Freiling & Nils Sawade 43 Interface QT/XML/CVS GUI für CVS z.B. WinCvs für Windows, MacCvs für Mac und gCvs für Linux Videos * WinCvs

Dennis Willkomm, Jens Freiling & Nils Sawade 44 Interface QT/XML/CVS CVS Quellen CVS findet man unter Nützliche Dokumente zu CVS   cvsbook.red-bean.com/translations/german/ cvsbook.red-bean.com/translations/german/   pi.informatik.uni- siegen.de/kelter/lehre/04w/uk04w/skripten.html pi.informatik.uni- siegen.de/kelter/lehre/04w/uk04w/skripten.html

Dennis Willkomm, Jens Freiling & Nils Sawade 45 Interface QT/XML/CVS OpenEXR

Dennis Willkomm, Jens Freiling & Nils Sawade 46 Interface QT/XML/CVS Gliederung  HDR Images  Besonderheiten von OpenEXR  Die OpenEXR API  Beispiele für OpenEXR

Dennis Willkomm, Jens Freiling & Nils Sawade 47 Interface QT/XML/CVS HDR Images Das in der Natur vorhandene Helligkeitsspektrum unterscheidet sich stark von dem, das im Computer reproduzierbar ist. (totale Dunkelheit – Sonne) Darstellung auf Bildschirm / Foto subjektiv richtig, da die Augen selbst auch das Helligkeitsspektrum auf ein erträgliches Maß reduzieren. Helligkeitsbandbreite von normalen RGB-Bildern ist zu klein um eine 3D-Szene realistisch auszuleuchten. Bei HDRI werden zu jedem Pixel auch dessen Energiewerte abgespeichert.

Dennis Willkomm, Jens Freiling & Nils Sawade 48 Interface QT/XML/CVS HDR Images

Dennis Willkomm, Jens Freiling & Nils Sawade 49 Interface QT/XML/CVS HDR Images Formate von HDRI Die gebräuchlichsten sind RadianceFiles (.HDR /.RGBE). Eine neue Alternative ist das OpenEXR Format (.EXR) von Industrial Light and Magic.

Dennis Willkomm, Jens Freiling & Nils Sawade 50 Interface QT/XML/CVS Besonderheiten von OpenEXR OpenEXR wurde speziell für die Anforderung im 3D und Postproduktionsbereich entwickelt und kann neben HDRI auch Ebenen und Alphakanäle speichern. Durch eine leicht verminderte Dynamik (im Vergleich zu.HDR) wird die Dateigröße zwischen 30 und 50% reduziert.

Dennis Willkomm, Jens Freiling & Nils Sawade 51 Interface QT/XML/CVS Die OpenEXR API Auf downloadbar. Erlaubt lesen / schreiben von.EXR in C++

Dennis Willkomm, Jens Freiling & Nils Sawade 52 Interface QT/XML/CVS OpenEXR Beispiele