SceneGraphObject类的子类就是集成构建场景图的模块,一个Java3D程序的开发大略可以分为七步(把它们聚在一起,在Java 3D API 规范中和这里称之为步骤(recipe)),具体如下列表所示,这些方法可用于装配许多的Java3D程序。
1. 创建一个Canvas3D对象。
2. 创建一个VirtualUniverse对象。
3. 创建一个Locale 对象,并使之与VirtualUniverse相关联。
4. 构建一个视图子图。
a. 创建一个View 对象。b. 创建一个ViewPlatform对象。
c. 创建一个PhysicalBody对象。d. 创建一个PhysicalEnvironment对象。
e. 把 ViewPlatform, PhysicalBody, PhysicalEnvironment, 和Canvas3D对象与View对象相关联。
5. 构建一个或多个内容子图。 6. 编译所有子图。7. 把子图加到Locale对象中。
表 1-1 编写Java3D程序的一般步骤
1.4.1 编写Java 3D程序的一个简单方法
用 基本方法编写具有视图分支图的Java 3D programs程序的结构有其唯一性,构建视图分支子图结构的规则可以通过SimpleUniverse工具类来实现. SimpleUniverse 的实例承担了构建场景图的基本步骤中的第2, 3以及第4步。利用SimpleUniverse类来进行Java3D编程,可以大大减少创建视图分支图的时间和精力,从而,程序员可以有更多的时间来构 建内容分支子图,这才是真正与Java3D程序事关重大的。
SimpleUniverse类对于Java 3D编程而言真是一个很好的起点,因为它允许程序员暂时忽略视图子图的存在.尽管如此,SimpleUniverse 中也不允许同一个虚拟世界存在多个视图。
本 教程的所有例子程序都用到了SimpleUniverse类,因此,如果程序员想获得更多的关于View, ViewPlatform, PhysicalBody, 和PhysicalEnvironment 类的信息请参考其它参考资料,附录B有详细的参考资料列表。
SimpleUniverse类SimpleUniverse 对象的构造函数创建了包含VirtualUniverse 、Locale对象以及一个完整的视图子图在内的场景图,SimpleUniverse创建的视图子图是用了ViewingPlatform 和Viewer 便利类的实例来代替了其它核心类来创建视图子图。注意到SimpleUniverse仅仅是没有直接用到 Java3D核心类中的View和ViewPlatform对象的。SimpleUniverse 对象提供了图1-7中大方框中的所有功能。com.sun.j3d.utils.universe包包括了 SimpleUniverse, ViewingPlatform, 和Viewer convenience工具类
利 用一个SimpleUniverse 对象可以使构造Java3D程序的基本步骤更加简单,表1-2展示了简单的方法。这是用SimpleUniverse 对象之后构建Java3D程序所需的步骤,上文所提到的基本步骤的第2, 3,和4步已经被本方法的第2步所替代。1. 创建一个Canvas3D对象。
2. 创建一个SimpleUniverse对象,并添加对先前创建的Canvas3D 对象的引用。
a. 定制SimpleUniverse对象。
3. 构建内容子图。
4. 编译内容分支子图。
5. 把内容子图添加到SimpleUniverse的Locale中。
表1-2 用SimpleUniverse创建Java3D程序的简单步骤下 面的灰框中的内容是本教程中参考模块的第一次出现。参考模块一般对一个类的构造函数、方法和属性作了个列表。使用参考模块的目的在于使读者能在手头上没有 其他参考资料的情况下能学到基本的Java 3D API编程知识。本教程中的参考块并没有涉及到每一个类的构造函数和方法,由于这个原因,很多的Java 3D API 类都没有列出参考块。因此,本教程的文档本不能替代Java 3D API规范的位置,尽管如此,列出了构造函数、方法和属性的参考块的这些类,本教程所提供的信息往往比Java 3D API规范所提供的信息更加详实。