AlphaBetas 3-D Browser requires Adobe Flash Player 9, please update yours now
AlphaBetas is a new modular typeface designed by Ben Stevens. Each letter in the AlphaBetas alphabet can be constructed from a toolkit of 20 unique shapes in various arrangements. This 3-D browser is simply a playful and interactive way of showing how the AlphaBetas* alphabet is assembled.
* AlphaBetas is a Registered Design in the U.K. no. 4009181.
The AlphaBetas 3-D Browser uses Adobe Flash Player and Papervision3D to display the alphabet in a three-dimensional environment within your web browser. If you have a pair of blue/amber 3-D glasses available (like those used for 3D week on Channel 4 during November 2009), you can see the graphics with added depth similar to what you would experience at a 3-D cinema. This effect is more visible on larger screens in a darkened room to reduce reflections.
If you are already familiar with developing Papervision3D in Flash/Flex, 'Binocular vision' can be simulated fairly easily if you want to bring your PV3D project to life with 3-D glasses.
1. Set up your PV3D scene using two cameras and two viewports (one camera/viewport for each eye):
viewport_left = new BitmapViewport3D(1024,640,true,true);
viewport_right = new BitmapViewport3D(1024,640,true,true);
camera_left = new Camera3D();
camera_right = new Camera3D();
2. Set each viewports' BlendMode to SCREEN, and make the stage colour as dark as possible.
viewport_left.blendMode = BlendMode.SCREEN;
viewport_right.blendMode = BlendMode.SCREEN;
3. It's essential to set up your cameras to be sitting side-by-side and remain a fixed distance apart at all times - this represents the distance between your eyes. Both cameras should always look at exactly the same point in your scene. The focal point can change during the animation if you like, but this can be disorienting for the viewer and is not recommended.
camera_left.target = DisplayObject3D.ZERO //looking at the centre of the scene
camera_left.x = -parallax // play around with the parallax value for best results; I've used a value of 20
camera_left.z = -500
camera_right.target = DisplayObject3D.ZERO //also looking at the centre of the scene
camera_right.x = parallax
camera_right.z = -500
4. When it comes to rendering your scene, render the viewport/camera for the left eye then the right eye.
renderer.renderScene(scene, camera_left, viewport_left);
renderer.renderScene(scene, camera_right, viewport_right);
5. Now you need to apply a colorTransform to each viewport so the left viewport is tinted yellow and the right viewport is tinted blue.
var _ct_left:ColorTransform = new ColorTransform(1,1,0); // yellow tint
var _ct_right:ColorTransform = new ColorTransform(0,0,1); //blue tint
viewport_left.bitmapData.colorTransform(viewport_left.bitmapData.rect,_ct_left);
viewport_right.bitmapData.colorTransform(viewport_right.bitmapData.rect,_ct_right);
Note: I haven't tested this yet, but it should also be possible to use red/green 3-D glasses instead of amber/blue by simply tinting the left viewport red and right viewport green (cyan?) by amending the 'multiplier' values above.
You should now see that objects far away or very close to the camera will have a very apparent separation of yellow and blue colours, and objects near the focal point in your scene will have less separation. Looking through your 3-D specs, your eyes will combine these separate images and your brain should perceive these slight visual differences as depth cues.
Let me know how you get on!