摘要:
WinHEC 2004 版本的 Avalon 包含一些新功能,您可以使用这些功能轻松地将三维 (3-D) 内容添加到您的 Avalon 应用程序中。本文向您介绍当前可用的 3-D 功能以及它在将来发展的可能趋势。最后,本文将说明 Avalon 和 DirectX 之间的差异,并讨论哪种技术可能最适用于您的应用程序。
什么是 Avalon 3-D?
“Avalon”是 Longhorn 中表示子系统的代号,它包含一组可为应用程序开发人员提供 3-D 功能的 API。这部分 Avalon API 集被称为“Avalon 3-D”。Avalon 3-D 的目标是使 Avalon 开发人员轻松地将 3-D 内容集成到他们的 2-D 应用程序中。目前,编写 3-D 程序在时间和专业技术方面所需的初始投入是非常高的。Avalon 3-D 的使命是使开发人员(他们的专长不一定非得与计算机图形相关)能够更加容易地访问 3-D 功能。
商业、生产以及娱乐类应用程序可以通过很多方式从 3-D 功能的可用性中受益。例如:
商业数据可视化工具可以创建利用三维来清晰地阐明几个变量之间的关系的图形。
纸牌游戏可以添加有趣的视觉效果,例如,当发牌时纸牌就像在 3-D 空间中移动一样。
Avalon 控件的作者可以通过使用照明和视觉图面在 3-D 中渲染该控件的某些部分来创建深度和视觉丰富性,以产生更加真实的输出。
这些方案概括了设计 Avalon 3-D 的用意。它旨在使 2-D 应用程序集成某些元素的三维设计。就这一点而言,Avalon 3-D 不会“取代”DirectX。更确切地说,Avalon 3-D 通过使更广泛的开发人员能够使用 3-D 功能,对 DirectX 进行了补充。
Avalon 支持哪些 3-D 功能?
与 Avalon 的 2-D 功能相同,Avalon 3-D 是在 DirectX 之上实现的。因此,Avalon 能够在其 API 中公开很多 3-D 渲染功能。但是,为了保持 API 的易用性,Avalon 并没有公开每一项 DirectX 功能。
在 WinHEC 2004 版本的 Longhorn 中,Avalon 3-D 功能包括:
创建 3-D 画面。
将 3-D 画面合并到 Avalon 元素树中,方法是通过构建包含该画面的 Viewport3D 元素以及构建用于指定该画面优势的 Camera。
向 3-D 画面中添加灯光。Avalon 3-D 支持环境光、平行光、点光以及聚光。
将材质应用到 3-D 网格中。在 WinHEC 2004 版本的 Avalon 3-D 中,您可以通过 SolidColorBrush 创建 Material。在未来版本的 Avalon 3-D 中,您将能够在不使用任何 Avalon 画笔的情况下构造 Material。您将能够为每个 3-D 网格指定单独的环境材质、漫反射材质以及反射材质。
缩放、旋转或转换一个或多个 3-D 网格,或者对它们应用任意的 4x4 转换。
在 Avalon 的 2-D 和 3-D 部分之间创建大量深入的无缝集成。
在多显示器系统上显示 3-D 内容,而无需任何额外工作。
我们正在研究未来版本的 Avalon 3-D 的其他功能。以下为我们要考虑利用 Avalon 对 3-D 的支持的一些研究方向:
通过使画面中的对象支持鼠标输入,向 Avalon 3-D 应用程序中添加交互性。
向 3-D 画面中添加交互式 2-D 内容。任何交互式 Avalon 对象均可放置在 3-D 网格上,而且用户将能够继续与 2-D 内容交互。
Avalon 3-D 内容将可以使用打印和远程桌面,其使用方式与 Avalon 功能的其余部分使用它们的方式相同。
构建标准的 Avalon 控件,这些控件使用 3-D 获得其显示功能,并可与 2-D 控件互换使用。同样,您将能够使用 3-D 内容“设计”2-D 控件。
使用 Avalon 的功能强大的动画框架将 3-D 对象制作成动画。您可以将照相机的位置制作成动画,还可以将已应用到 3-D 网格中的转换和材质制作成动画。

