Papervision的场景图实现?

时间:2009-02-06 12:30:56

标签: papervision3d scenegraph

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

感谢!

2 个答案:

答案 0 :(得分:2)

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

请参阅API中的org.papervision3d.scenes.Scene3D

请参阅此article,以便对Papervision中的各种对象进行更长时间的解释。你可以做的一件事就是google获取P3D中关键对象的文章,比如EngineManager,Viewport3D,BasicRenderEngine,Scene3D和Camera3D。

至于“产生动作”,它取决于你想要达到的目标。您可以自己编写代码并自行更改场景,也可以使用像物理库这样的第三方库,以便不必自己编写所有代码。

答案 1 :(得分:0)

你可以诚实地建立一个用于搜索一个的时间:

使用虚方法Render(matrix:Matrix)创建一个名为Node的类,它包含一个子节点数组。 创建一个名为TransformNode的Node子类,它接受一个矩阵的引用。 创建一个名为ModelNode的Node子类,它接受对模型的引用。

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

ModelNode的Render方法将其模型发送到输入矩阵指定位置的渲染器。

就是这样。你可以使用BoundsNode进一步增强功能,如果在视锥体中看不到它的边界形状,它就不会调用它的子节点。