Mar 11

The GUI is coming along fine, with lots of great input from my Visual Communication teachers, and not to forget, my invaluable friend Ove Sveumshagen (IT Advisory Specialist) who worked out how to fix my string-to-terminal problems. Cheers! Next round is on me!

Anyways, here is some test-footage of Virtual Furniture:

Content Featuring:

  • Model of Scandia Junior exported directly from 3DMax9
  • Point-Grey camera in action, 640×480 15FPS (far from optimal)
  • 50.000 poly’s (this is overkill, to test out general performance)
  • 2.4 MB total worth of textures
  • Texture baking
  • Environment maps (simulated reflections on the base of the chair)
  • Shadow mapping (opacity map from baked texture)
  • 60 FPS rendering (not visible, video recorded at 15FPS)

Bad stuff:

  • Model (and whole video) appears a lot wider than it should, due to my ineptitude at video capture.
  • Textures are a bit over-exposed, due to me forgetting to normalize the maps before baking them.
  • Environment map not really looking any good. -Still experimenting…

Also thanks to Prof. Høgset for tipping me about the FLV-embedder for wordpress.

Feb 11

Today Professor Høgset supplied me with the DirectShow-drivers I need to make the DragonFly2 interface with ARive.

It works, but I am not able to set the resolution/framerate any highter than 640×480/15Hz

Either this is a result of DirectShow limitations, emulating the camera as an USB 1.1 device, or I need to fiddle with the drivers some more.

However, I got an idea for ARive-Illumination:

  1. Using a camera such as this, that has an onboard GPIO (General Purpose In-Out) connector, it wouldn’t be too difficult to code a snippet that does the following:
  2. Register brightness and exposure-values (the camera already processes this information on-board) and output them via this serial RS232-interface
  3. Recive and store them continually on the computer running ARive (.dat or .XML-file)
  4. Script ARive to read these values, and modify light-settings for global illuminators _live_

Result:

Real-time lighting and shadowing of virtual objects (to a modest degree of realism)

Coding it would be simple, and I can’t see that the hardware would cost me more than ~100,- at Claes-Ohlson.

DragonFly2 Anatomy

Feb 11

A “brute force” method of testing how a user could setup occlusion in a simple manner could be:

Make a max scene where two shapes have the same coodinates.

The shapes overlap; should produce a rendering artifact.

Hypothesis:

if object A has a lower renderbin-setting than B, it’s surface will show, while B will be overlapped.

If I could set ARive to render A with a GL_COLORMASK FALSE then the object would be an occluder for the other.

This is not nearly as elegant as Sylvi’s and Julian Oliver’s soulutions, but it would make it easy for any 3dMax and OSGexporter-user to define an object in the scene as an occluder:

I could just make ARive always occlude renderbin[0] and make it an ARive imperative that a designer:

1. Only use one object for occlusion

-If a complex object, or several non-adjacent objects are needed, this could simply be an attached poly or mesh.

2. Always set that objects renderbin to 0 using OSGexporter’s OSGStateSet-helper

-In turn this could remove the need for XML-input.

Feb 11

I’ve now spent a small fortune on C++ books, and have gone head first into un-learning ActionScript, and getting used to the new syntax and logic.

Yesterday I talked to my friend Stian Håland, doing his MA in Cybernetics about my project.

Feb 11

I have just installed my firewire controller, and started testing my Dragonfly2-camera.

The video-quality is amazing, and the API and SDK included with the camera gives me endless possibillities (as if I needed more open-ended stuff in my project..)

However, the supplied drivers I currently have cannot stream to ARtoolkit.

I read on a forum that Point-Gray offers a MS DirectShow-workaround, but I cant download it until my registration at the P.G. website comes through.

I’ll ask Halvor tomorrow, if he has access.