Table of Contents
- Overview
- 1. Creating Depth Using 2.5-D
- 2. Creating Depth Using 3-D
- 3. Foreground and Background Elements
- 4. Microsoft Surface Lighting Paradigm
- 5. Depth as Affordance
Overview
Microsoft Surface applications are spatial experiences based on the vertical and horizontal axes of the screen. Your applications should enhance the user experience by using the z-axis, or depth, for content organization and visual prioritization.
Depth helps separate foreground elements from the background, which helps a user understand what to touch by focusing on specific content or controls. You can also use depth to show an order or sequence of content pieces. Keep your Surface applications “shallow” rather than “deep” so that you can create a natural and discoverable user experience. Users should have quick access to content and controls, and the interface should provide an easily discoverable method to access “deeper” content.
You can represent depth by using two techniques: two-and-a-half dimensions (2.5-D) and three dimensions (3-D).
1. Creating Depth Using 2.5-D
You can create a 2.5-D Microsoft Surface application by using techniques that simulate depth without 3-D geometries. These techniques include scale, drop shadows, transparency, depth cueing, and apparent light sources (see below for a separate discussion of light sources). You can create these effects by using XAML, and Microsoft Windows Presentation Foundation (WPF) in a high-performance way.
- Scale can simulate depth, especially when you combine it with other techniques. Scaling is an ideal technique to register successful touch input; a slight increase in scale gives users the impression that they have successfully
grabbed an object and moved it slightly closer to them. Large differences in scale between different levels of depths can create the perception of an extremely deep background, so you should use scale to convey depth in a subtle way.
- Drop shadows can easily and effectively simulate depth, but you should take care not to make the shadows too heavy. Dark shadows can obscure content below, and large offsets can make objects appear disconnected from the Surface
screen. Use drop shadows to convey depth relationships between on-screen objects.
- Transparency can show depth by allowing objects on lower levels to show through objects above them. But transparency is computationally expensive to render, so use it judiciously. It is a technique best used for instances where
the Surface screen shows a small number of objects at a given time.
- Depth cueing uses tinting, saturation reduction, and contrast reduction to simulate distant objects or atmospheric effects like fog. While this technique can create an inappropriately deep sense of distance, you can use subtle
reductions in brightness to effectively convey depth and put focus on objects.
The following example displays a book browser that uses depth cueing to separate foreground elements and convey sort order.
Using Depth Techniques
Should
- Use depth to show priority, order, or focus between objects.
- Keep apparent depth somewhat shallow, not “deep” below the Surface screen.
- Use depth to acknowledge when users successfully touch objects or controls. “Float” objects toward users to register a successful touch, and reserve the greatest depth for those objects that the users touch, so that they float above other
on-screen objects. Many existing Surface controls include this behavior.
- Remember to keep depth effects shallow, subtle, and elegant.
Could
- Be aware of which depth techniques require large amounts of computational resources, and maintain a high level of responsiveness in the application.
- Use transparency effects sparingly; they can be visually complex and processor-intensive. Apply transparency to solid colors to reduce visual clutter; transparencies ath somewhat shallow, not “deep” below the Surface screen.
- Use depth to acknowledge when users successfully touch objects or controls. “Float” objects toward users to register a successful touch, and reserve the greatest depth for those objects that the users touch, so that they float above other
on-screen objects. Many existing Surface controls include this behavior.
- Remember to keep depth effects shallow, subtle, and elegant.
2. Creating Depth Using 3-D
True 3-D uses rendered three-dimensional geometries in real time. This technique enables you to create Microsoft Surface applications that incorporate realistic rotation of cubes, spheres, custom 3-D models, and so on. While you can author 3-D in XAML and deliver it by using WPF, that approach can affect the Surface hardware and performance. True 3-D is best created and delivered by using Microsoft XNA, the core Microsoft 3-D and gaming engine.
True 3-D offers many opportunities for interface innovation, but use caution when you design 3-D controls. 3-D controls for objects on a two-dimensional, touchable surface can confuse users. The details of a real 3-D object (such as lighting, rendering, and specular highlights) can add unnecessary complexity to most content or data. You should not use 3-D when you create controls, because users might have difficulty reading any text or labels on the 3-D surfaces. All this complexity can create an intensely spatial 3-D experience that distracts from its simplicity and uniqueness.
Reserve truly 3-D spaces for intensely immersive interactions and motion, not to call attention to realistically rendered visual design elements themselves. For example, a continuously zooming interface (maps or Microsoft Bing Maps are excellent examples) uses extreme amounts of 3-D space for users to interact and establish a sense of spatial memory and context, but the interface uses virtually no 3-D-rendered interface elements. Use depth as a virtual space through which to guide users instead of as a means to describe on-screen objects.
Using Depth Techniques
Should
- Use depth to show priority, order, or focus between objects.
- Keep apparent depth somewhat shallow, not “deep” below the Surface screen.
- Use depth within controls and content to delineate discrete touchable regions and help users anticipate what results their gestures might produce.
Could
- Carefully consider true 3-D and its use. Is it appropriate or vital? If so, innovate, but consider its programming complexities and runtime performance limitations.
- Be aware of which depth techniques require large amounts of computational resources, and maintain a high level of responsiveness in application.
3. Foreground and Background Elements
While subtle depth provides effective cues between foreground objects, such as sort order and touch response, obvious depth provides clear separation between interactive elements and non-interactive spaces, commonly referred to as the “background” of a Microsoft Surface application.
Backgrounds do not trigger events or actions when users touch them, but they should acknowledge and respond to all input so that users know the application has detected their touch. Backgrounds should recede into the background of the user’s perception to subtly indicate that touches will probably not result in an action. To retain cognitive resonance with the horizontal interface, you should show the background as a flat plane that lies parallel to the Surface screen (see 3.2.3.4 Microsoft Surface Lighting Paradigm).
Using Depth Techniques
Should
- Use depth to show priority, order, or focus between objects.
- Keep apparent depth somewhat shallow, not “deep” below the Surface screen.
- Use depth to acknowledge when users successfully touch objects or controls. “Float” objects toward users to register a successful touch, and reserve the greatest depth for those objects that the users touch, so that they float above other
on-screen objects. Many existing Surface controls include this behavior.
- Use depth within controls and content to delineate discrete touchable regions and help users anticipate what results their gestures might produce.
Could
- Be aware of which depth techniques require large amounts of computational resources, and maintain a high level of responsiveness in application.
4. Microsoft Surface Lighting Paradigm
You can use lighting to convey depth between objects and the background, but you must first understand how you should illuminate all objects on the Microsoft Surface platform.
Design your Microsoft Surface applications with even lighting on all sides of the screen, as if a ring of light were surrounding the interface. If the application uses drop shadows and other techniques, make sure that drop-shadow offsets are less prominent at the center of the screen and more prominent as the object nears an edge, and that the offset is always oriented toward the center of the screen.
Your application should never simulate light falloff or darken objects or the background toward the edge of the Surface screen. Remember that Surface applications should create a super-realistic experience (rather than a physical emulation), and physically impossible perfect lighting is one benefit of this approach.
Using Depth Techniques
Should
- Use depth to show priority, order, or focus between objects.
- Do not create apparent falloffs in lighting toward the edge of the Surface screen, and always orient drop shadows toward the center of the screen, as if the screen were surrounded by a ring of light. Light all on-screen objects and the background evenly at all times.
5. Depth as Affordance
You can use depth in Microsoft Surface applications to delineate zones for certain input gestures to help users understand that touching one region of the screen will have a different result than touching another region. For example, users might be able to drag an object’s header or title bar, but a list item within that object would scroll when users drag it. You could make one part of a control or object appear above or below other elements within that object to help make those areas clearer and help users anticipate what results their gestures might produce.
In the following image, horizontal drop shadows separate the list view from its surroundings. This technique helps convey that users can interact with the list as a subelement without affecting the entire object.
Using Depth Techniques
Should
- Use depth to show priority, order, or focus between objects.
- Keep apparent depth somewhat shallow, not “deep” below the Surface screen.
- Use depth within controls and content to delineate discrete touchable regions and help users anticipate what results their gestures might produce.
Could
- Be aware of which depth techniques require large amounts of computationabsp;
- 2. Creating Depth Using 3-D