Dear list, I'm working on a project that uses Crystal Space that you may find interesting.
I'm trying to setup a stereoscopic film projection for an open house at work. The general principles of this projection technique is well described in the Stereovision article of wikipedia (http://en.wikipedia.org/wiki/Stereovision). In practice, I'm aiming for a setup similar to what the Geowall consortium has been doing (http://geowall.geo.lsa.umich.edu/intro.html). The idea is to use two projectors and an optical setup to have each of our two eyes see one of the two projected images. If the two images correspond to two different perspective just like our eyes would see, we achieve an impression of 3D. I plan on using crystal space as the content of the projection. I need to draw in a window two views side by side of the world from two cameras pointing in the same direction but separated by ~75mm. I've started modifying the split mode of walktest for that purpose. Using the patch below, I've slaved the position of the camera in the other view to the camera in the active view. Now, if you switch to split view with 'v', you have two images showing the same scene with a slightly different perspective. Those who know how to see seterograms, should be able to enjoy the result. I find it easier to see when adjusting the size of the CS window. Once I have these two views side by side, I plan on sending half of a window to one projector and the other half to the other. Each projector will then send a perspective. I'll let you know how the rest of the setup went. Big thanks to CS for the wonderful engine. -Gellule Stereovison patch to walktest: Index: CS/apps/walktest/walktest.cpp =================================================================== --- CS/apps/walktest/walktest.cpp (revision 30705) +++ CS/apps/walktest/walktest.cpp (working copy) @@ -765,6 +765,13 @@ float delta = float (elapsed_time) / 1000.0f; collider_actor.Move (delta, speed, velocity, angle_velocity); + if(Sys->split != -1) + { + int other = (Sys->split+1)%2; + Sys->views[other]->GetCamera()->SetTransform(Sys->view->GetCamera()->GetTransform()); + Sys->views[other]->GetCamera()->SetSector(Sys->view->GetCamera()->GetSector()); + Sys->views[other]->GetCamera()->Move(csVector3(0.08, 0, 0)); + } } void perf_test (int num) ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Crystal-main mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/crystal-main Unsubscribe: mailto:[EMAIL PROTECTED]
