WEB开发网
开发学院图形图像Flash Silverlight: 使用 Silverlight 2.0 构建高级 3D ... 阅读

Silverlight: 使用 Silverlight 2.0 构建高级 3D 动画

 2009-02-09 11:57:24 来源:WEB开发网   
核心提示: XAML 的好处之一是它省去了 UI 中的大量常规工作,从而使您可集中精力完成创造性的问题域代码,Silverlight: 使用 Silverlight 2.0 构建高级 3D 动画(9),在此示例中,问题域为将平板折叠成 3D 形状,性能尚可接受,(从主观上讲,即下一节讨论的内容,如何折

XAML 的好处之一是它省去了 UI 中的大量常规工作,从而使您可集中精力完成创造性的问题域代码。在此示例中,问题域为将平板折叠成 3D 形状,即下一节讨论的内容。

如何折叠多面体

很早以前,Niklaus Wirth 撰写了一本名为《Algorithms+Data Structures=Programs》的著作,描述的是面向对象之前的内容,我猜想之前提到的 Charles Petzold 的那本书是它的改编本。即使在这么多年之后,它仍是我读过的最具影响力的书籍之一,虽然之后在语言和模式方面发生了许多变化,但它阐述的核心内容仍旧有效。该书的基本理念是开发方法应先确定模拟问题效果最好的数据结构,然后确定可处理或修改这些数据结构的算法。在解决非标准程序时,它是我经常采用的方法。

我试遍了各种方法,最终才确定要在多面体中使用的一种。我想知道开始实际折叠动画时,所需的信息能精简到何种程度。结果证明,由于所有边的长度都相同,因此只要知道多面体中相连的面,几乎就万事大吉。由此可推出图形数据结构。在完成 XAML 输出之前,需使用一组算法来通过两个单独的树数据结构处理图形。稍后会对此加以介绍。

尽管 Windows® Presentation Foundation (WPF) 可支持采用 XAML 的 3D,但 Silverlight 仅默认支持 2D,因为如果机器中的图形处理单元 (GPU) 硬件不会产生负面影响,这样就能轻松实现跨浏览器的兼容性。当然,如果深究的话,计算机屏幕上的 3D 是一个假象。无论使用何种操作,最终显示在显示器上的都是一组普通的 2D 多边形。如果要在代码中执行 3D 操作来计算这些多边形的坐标,可使用非硬件加速的 3D 呈现。假如多边形的数量不多,性能尚可接受。(从主观上讲,Alpha 到 Beta 的帧性能得到了改进。)

上一页  4 5 6 7 8 9 10  下一页

Tags:Silverlight 使用 Silverlight

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接