AR Toolkit Investigation Log

 

6.15.05 - Began investigating compiling the AR tools for tutorial -- 39 build errors related to "#include" framework files (location).  PM - Song fixed file locations; builds ok!

 

6.16.05 - Ran SimpleTest; built with no errors but ran w/errors associated w/OpenGL & GLUT.  Downloaded and installed GLUT 3.8 to the Frameworks directory per Song's discovery.  Got same errors upon running SimpleTest again--#1 = object non-aligned pointers being freed (various 6) and #2 = GLUTInit being called a second time.  SimpleLite ran fine.

 

6.17.05 - Looked at code to try to determine difference between running SimpleLite and buggy, non-running SimpleTest code.  Discovered different "gsub" includes used.  Got AR cube in SimpleLite to spin.

 

6.21.05 - Learned proper way to include Mac OS X GLUT Frameworks.  Learned difference between gsub.h & gsub_Lite.h and why SimpleLite runs and SimpleTest doesn't (kind of).  It's related to two GLUTInit functions being called--one in gsub.h (used by SimpleTest) kicks the program out.  Completed an XCode/GLUT tutorial to learn how to properly develop Carbon C applications for Mac OS X in XCode and how to compile and use GLUT to produce simple graphics, manipulations, and animations.

 

6.23.05 - Went through the code for the C AR program "SimpleTest" line-by-line, researched the functions, figured out what it did and how, and analyzed its structure for possible reasons for its not working.  The main procedure ends with "return (0)" and includes a call to a procedure called "init" which contains the function "GLUTInit".  This could be the cause of our error where GLUTInit is called a second time.  However, Song pointed out that the video paths did not seem to be opening the same as they do in the program "simpleLite" so even if the GLUTInit problem is solved, there may be other reasons preventing "SimpleTest" from running correctly.

 

6.24.05 - Worked on analyzing the difference in the procedures between "SimpleTest" and "SimpleLite".  SimpleLite looks like original code for the ARToolkit; SimpleTest's documentation notes it has been modified and also lacks some of the standard ARToolkit comments, indicating it may have simply been added to the kit by third party.  Altered code for SimpleTest and got it to actually run and open up the video camera settings window correctly and open up a graphics window/context.  However, the graphics window was dark and did not relay video signal.  We believe the code may just not work on the Mac or may be incomplete (some functions seem to be missing and would require inclusion of three long procedures from SimpleLite which would make the two programs practically the same.  However, a possibility struck me that differences in the include OpenGL libraries may be preventing the programming from being able to draw the video in the graphics window (will mod these lines of code next time to test).  Also planning on compiling SimpleTest on a Windows machine to test if it's simply a Mac Unix issue or if it simply won't work on either machine because it's buggy and incomplete.  Interestingly, an AR demo downloaded off the internet for Mac that produces a virtual fireworks display runs with the title "SimpleLite" appearing on the Program Menu Bar.  We also realized that  by making the necessary changes to SimpleTest to make it work and making it practically the same as SimpleLite then the only difference between them is the inclusion of "gsub_lite.h" instead of "gsub.h".  gsub_lite.h adds some simplified functions but at the loss of several functionalities including stereoscopic HMD and GLUT event monitors.  However, tests showed that both gsub.h and gsub_lite.h could run simultaneously without problems so SimpleLite could still access the stereoscopic HMD and GLUT event functions by simply adding the inclusion of the gsub.h file in addition to gsub_lite.h and calling the appropriate functions.  Also, by noting that the drawing procedures for the cube was different in SimpleTest vs. SimpleLite we stumbled across the OpenGL/GLUT functions required to draw other shapes.  We were able to produce a hovering sphere off the marker instead of the cube and got it to spin, etc.  The only thing missing is the understanding of how to apply textures and shading to the objects in order to get Song's spinning planets.  We found some tutorials to learn how to do this and will look at these next session.

 

6.26.05 - The OpenGL library difference theory turned out to not be the answer.  The #include code in "SimpleTest" is actually the same as in "SimpleLite", just written in a convoluted way.  We attempted to setup and compile SimpleTest on a Windows machine but ran out of time due to the number of pre-reqs that needed to be loaded first.  We will attempt to complete this next session as well as learning about adding textures to our 3D virtual objects.

 

6.27.05 - Went through tutorials for coloring and texturing objects with GLUT.  Learned how to do it but couldn't compile it to do so.  We think this is due to not adding/linking all the correct libraries.  The specific code required is not long and we feel we could get it to go with time but agreed that we can't allow ourselves to get behind dealing with these details instead of investigating the other AR technology options first.  If we decide that ARToolkit is going to be our choice, then we will go back and spend the time to get this to work for us.  We didn't explore the installation of ARToolkit on the Windows machine due to networking problems that prevented us from installing the required pre-req's.  This will be done in pm to prepare for next session.

 

6.28.05 - While preparing pre-req's to run ARToolkit and MXR Toolkit on Windows, the thought occured that perhaps the reason SimpleTest won't run on Mac is because it is using commands accessing DirectShow drivers (for PC).  A DirectShow driver installation is listed as a requirement for the PC installation of ARToolkit but not for Mac.  Downloaded/installed Visual C++ Express 2005, DirectX 9 SDK, Direct Show video library, glut, and open gl for windows.

 

6.29.05 - Tried to include missing frameworks and libraries that were indicated when we tried to compile glut and DSVideo. Failed.  Next we'll move on to DART under Song's direction. We'll return to the last step of ARToolkit and MXRToolkit at a later date once we can ascertain the problem with Windows.