AR Toolkit auf Windows

Treiber

  • Treiber für Logitech Quickcam Pro 4000 gibt's hier.

-- MartinWagner - 25 Apr 2005

Allgemeine Einstellungen für Visual Studio .NET 2003

Kopieren der Datei glut.h ins richtige Verzeichnis

Folgendes müsst Ihr einstellen, damit auch unter Windows alles funktioniert:

Zunächst sollte die glut.h in das Verzeichnis [Visual Studio Verzeichnis]/Vc7/PlatformSDK/Include/gl kopiert werden. Die restlichen Dokumenteinstellungen (Projektmappe, Project und C/C++-Datei) bitte den mitgelieferten Programmen entnehmen. Dazu noch als Tip. Wenn Ihr das Eigenschaften-Fenster offen habt, könnt Ihr trotzdem zwischen Dateien und Projekten hin- und herspringen. Das erleichtert das einstellen ungemein, wenn man das Projekt zusätzlich in der ARToolKit-Projektmappe anlegt (muss ja nicht gleich bedeutend damit sein, dass die Dateien auch alle im selben Verzeichnis liegen).

Einstellungen innerhalb Visual Studio .NET 2003 (damit der Compiler nicht meckert)

Da bei einer C/C++-Datei eingestellt werden muss, dass die vollständige Laufzeitüberprüfung (unter: Eigenschaften -> C/C++ -> Codeerstellung auf beide setzt (RTC1 und RTCsu), muss unter "Als verwaltet Kompilieren" (unter: Eigenschaften -> Konfigurationseigenschaften) der Wert auf Verwaltete Erweiterungen werden nicht verwendet, da der Compiler nicht RTC1 und CLR (Assembly-Unterstützung) kombiniert verwenden kann. Ist nur eine Kleinigkeit.

Header-Dateien (auch für Praktikums-Leiter interessant)

Die momentan mitgelieferte Header-Datei (simpleFunctions.h) läuft einwandfrei auf Linux, unter Windows gibt es jedoch das Problem, dass der Parser Fehler in den Header-Dateien gl.h und glut.h feststellt. Das ist auf einen für Windows falschen Import zurückzuführen. Aktuell sieht die Header-Datei so aus:

      #include <GL/gl.h>
      #include <GL/glut.h>

Dies sollte in folgende Zeilen geändert werden:

      #ifndef __APPLE__
      #include <GL/gl.h>
      #include <GL/glut.h>
      #else
      #include <OpenGL/gl.h>
      #include <GLUT/glut.h>
      #endif

Außerdem muss unter Windows-Betriebssystemen noch zusätzlich der Windows-Header windows.h eingebunden werden. Das könnt Ihr machen, indem Ihr folgende Zeilen ganz am Anfang des Dokumentes einfügt:

      #ifdef _WIN32
      #include <windows.h>
      #endif

Video-Probleme unter Windows

Auf meinem System (Windows 2000 mit SP3) ist das Kamerabild vertikal gespiegelt. Ist zwar nicht weiter tragisch, da ich gesehen habe, dass es auf Linux richtig herum ist, aber zum testen ists leider gleich noch verwirrender :). Von daher müsstet Ihr folgendes auch hier ändern. In der Header-Datei befinden sich die Zeile:

      static char *vconf = "-width=640 -height=480";

Diese Zeilen ersetzen (oder gleich in die C/C++-Datei selbst einfügen):

      #ifdef _WIN32
      static char         *vconf = "flipV,showDlg,videoWidth=640,videoHeight=480";
      #else
      static char         *vconf = "-width=640 -height=480";
      #endif

In der zweiten Zeile kann der Wert showDlg auch weggelassen werden, da es lediglich dazu dient, den Dialog am Beginn anzuzeigen. Weitere Werte, die hinzugefügt werden können, sind (aus der Datei dsvideolib.h, nicht alle aufgelistet):

Binäre Werte:
--------------
flipH            : Bild horizontal spiegeln (WARNUNG: nicht optimal für Performance)
flipV            : Bild vertikal spiegeln (WARNUNG: nicht optimal für Performance)
showDlg          : zeigt den Dialog zum einstellen der Bildgröße, etc. an.

Parameter Werte:
--------------------
videoWidth=?     : bevorzugte Bildbreite, BEISPIEL: "videoWidth=720"
videoHeight=?    : bevorzugte Bildhöhe, BEISPIEL: "videoHeight=576"

Starten der Applikationen nach dem Kompilieren in einem anderen Verzeichnis

Will man seine gerade geschriebene Applikation starten, und zwar nicht in dem Verzeichnis [ARToolKit]/bin, muss man entweder seinen Library-Path anpassen, oder (einfacher), die drei folgenden DLLs in das Verzeichnis kopieren in dem die neu erstellte EXE-Datei liegt:

      [ARToolKit]/bin/DsVideoLib.dll
      [ARToolKit]/bin/DsVideoLibd.dll
      [ARToolKit]/bin/libARvideod.dll

Am aller einfachsten ist natürlich, die drei besagten DLLs ins Verzeichnis [Windows]/system32 zu kopieren (nicht verschieben).

-- SebastianBoring - 26 Apr 2005

Eigene Projekte mit dem AR Toolkit

Will man ein eigenes Projekt erstellen, empfehlen sich folgende Schritte:

Nötige Dateien in ein eigenes Verzeichnis kopieren

Insgesamt braucht man drei Typen von Dateien:
Header-Dateien
alles unter ARToolkit/include/, zusätzlich (ab Blatt 3) auch alles aus OpenVRML/include in ein Verzeichnis (z.B. %HOME%/vc/include) kopieren. Dieses Verzeichnis dann im Visual Studio in Tools -> Options -> Projects -> VC++ Directories -> Include Files eintragen.
Libraries
alle .lib=-Dateien unter =ARToolkit/lib, zusätzlich (ab Blatt 3) alle .lib Dateien aus OpenVRML/lib in ein Verzeichnis (z.B. %HOME%/vc/lib) kopieren. Dieses Verzeichnis dann im Visual Studio in Tools -> Options -> Projects -> VC++ Directories -> Library Files eintragen.
DLLs
alle .dll Dateien aus ARToolkit/include/, DSVideoLib/bin.vc70, zusätzlich (ab Blatt 3) aus OpenVRML/bin in ein Verzeichnis (z.B. %HOME%/vc/lib) kopieren. Dieses Verzeichnis dann in Windows unter Control Panel -> System -> Advanced -> Environment Variables zur User variable PATH hinzufügen.

Alternativ kann man auch in jedem Projekt die AR-Toolkit-Verzeichnisse in die entsprechenden Pfade aufnehmen:
Header-Dateien
C++ -> General -> Additional Include Directory auf [ARToolKit-Verzeichnis]/include;[!OpenVRML-Verzeichnis]/include
Libraries
Linker -> General -> Additional Library Directories auf [ARToolKit-Verzeichnis]/lib;[!OpenVRML-Verzeichnis]/lib;

Zum Ausführen von compilierten Programmen muss auf jeden Fall der PATH in Windows wie oben angegeben gesetzt werden.

Neues Projekt erstellen

Am besten das Projekt https://wiki.medien.ifi.lmu.de/pub/Main/PraktikumCIntroduction/prakt02_default.tgz als Vorlage benutzen. Folgende Einstellungen erlauben ein gleichzeitiges Arbeiten mit Windows-VC-Projekt und UNIX-Makefile:
  • Debugging -> Working Directory auf $(ProjectDir)/bin
  • C++ -> General -> Additional Include Directory auf $(ProjectDir)/include
  • C++ -> Code Generation -> Runtime Library auf Multi-threaded Debug (/MTd)
  • Linker -> General -> Output File auf $(ProjectDir)/bin/$(ProjectName)d.exe
  • Linker -> Input -> Additional Dependencies auf libARd.lib libARgsubd.lib libARvideod.lib

-- MartinWagner - 26 Apr 2005

Einstellungen für Projekte mit OpenVRML

  • Debugging -> Working Directory auf $(ProjectDir)/bin
  • C++ -> General -> Additional Include Directory auf $(ProjectDir)/include
  • C++ -> Code Generation -> Runtime Library auf Multi-threaded Debug DLL (/MDd)
  • Linker -> General -> Output File auf $(ProjectDir)/bin/$(ProjectName)d.exe
  • Linker -> Input -> Additional Dependencies auf ws2_32.lib opengl32.lib glu32.lib glut32.lib libjpeg.lib libpng.lib zlib.lib libarvrmld.lib openvrml.lib openvrml-gl.lib antlr.lib regex.lib libARvideod.lib libARd.lib libARgsubd.lib libARMultid.lib
  • Linker -> Input -> Ignore Specific Libraries auf libc.lib;libcd.lib;libcmt.lib;libcmtd.lib;msvcrt.lib

-- MartinWagner - 19 May 2005
Topic revision: r8 - 19 May 2005, MartinWagner
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback