2009-02-06 83 views
1

我正在尝试为Flash这个项目使用Papervision for Flash,它涉及机械框架的3D模型,由几个连接的部件组成。其中一个部件的运动导致框架其他部分的方位和位置发生相应的变化。 我的理解是,使用场景图处理这种链接运动将是理想的方法,至少,如果我要在OpenGL或DirectX等更为成熟的3D开发选项中实施。 我的问题是,Papervision是否有现有的场景图实现?或者,产生所需3D动作的替代方法?Papervision的场景图实现?

谢谢!

回答

2

我以为Papervision基本上是一个基于Flash的3D渲染引擎,因此应该包含它自己的场景图。

参见org.papervision3d.scenes.Scene3DAPI

请参阅article以获取Papervision中各种对象的更详细的解释。你可以做的一件事是谷歌的文章与P3D的关键对象,如EngineManager,Viewport3D,BasicRenderEngine,Scene3D和Camera3D。

至于“产生动作”,它取决于你想要达到的目标。您可以自己编写并修改场景,也可以使用第三方库(如物理库),以免自己编写所有代码。

0

你可以诚实地建立一个在时间它会带你寻找一个:

与虚拟方法创建一个类调用节点渲染(矩阵:矩阵),它拥有子节点的数组。 创建一个称为TransformNode的节点的子类,它接受一个矩阵的引用。 创建一个名为ModelNode的Node的子类,它接受对模型的引用。

TransformNode的Render方法将传入矩阵与其自己的矩阵相乘,然后使用生成的矩阵调用其子元素的render方法。

ModelNode的Render方法将其模型发送到呈现器处的传入矩阵指定的位置。

就是这样。您可以使用BoundsNode进一步增强事物,如果边界形状在视图中不可见,则该BoundsNode不会调用其子项。