基本组件的功能用途
总的来讲,Java3D里绘制场景图就是相当于绘制一个树状图,由跟节点画起,直到画出数的叶子。
(1)超结构:在Java3D里超类结构对象有VirtualUniverse类和Local类对象,一个Java3D程序只有一个VirtualUniverse对象,VirtualUniverse对象表示任何Java3D程序都要用到的整个3D空间。VirtualUniverse对象用三个高精度的256位定点数来表示坐标。VirtualUniverse对象用Locale类对象表示一个较小的局部空间,每个VirtualUniverse可以包含一个或多个Local对象,每个Locale对象可以附属有分支图,当一个分支图被附属到一个Locale时,Java3D绘制引擎就会开始绘制此分支图,即活动分支图。
(2)Node:节点。Node类是绘制场景图中的主体树结构的节点,包括Group节点和Leaf节点对象。
Group节点是场景图树结构的主要构建模块,包含有BranchGroup节点和TransformGroup节点等六个节点对象。Group节点的子节点可以是Leaf节点,也可以是一个Gruop节点。需要注意的是每个节点只有一个父节点,正如一个人只有一个父亲一样。从根节点到每个叶节点都只有一条唯一路径。下面的方法可以给父节点添加一个子节点:
void addChild(Node child);//添加子节点
void insertChild(Node child,int index);//根据索引添加子节点
可以通过索引访问某个子节点:
Node getChild(int index);
void setChild(Node Child,int index);
其他方法:
Enumeration getAllChildren();
void remove Child (Node child);//删除某个节点
void remove Child (int index);//根据索引删除节点
void removeAllChildren();//删除所有节点
每个BranchGroup节点Java3D场景图的某一个分支的根节点,只有BranchGroup对象才能直接附属到一个Local对象上,所以每个场景图至少有一个BranchGroup节点。BranchGroup节点的作用是把其他节点整合在一起,仅此而已。
Leaf类是Node类的子类,是抽象类。通常叶节点表示的是各种集合对象、声音或场景中其他图形对象。叶节点没有子节点,常用也节点对象一般有Shape3D(图形)、ViewPlatform、Background(背景)、Light(灯光)等对象。Shape3D类叶节点,表示各种需要绘制的图形对象。通过Shape3D对象定义图形的几何外观属性,可以设置形状大小和材质颜色。Ligth对象定义绘图场景中的光源。ViewPlatform对象节点表示观察者在场景图中的位置。BackGround类可定义场景的背景颜色,一般设置为白色。
(3)节点组件。一个场景的结构是用组节点和叶节点来定义的。但这些节点的属性则由节点组件类(NodeComponent)定义。可以定义几何特征、颜色、材质、纹理等特性。
Geometry类:每个Shape3D叶节点都依赖一个Geometry类对象,通过Geometry类及其子类来定义图形对象的几何属性。
Appearance类:提供形体的外观属性,如颜色、纹理,Appearance是NodeComponent(节点组件)的子类,它不是场景图的一部分,每个Appearance对象可以被多个Shape3D对象所用。
它所引用的其他对象有ColoringAttributes、PointAttributes、Material、Texture、Alpha、Font3D等。
分享到:
相关推荐
毕业前宝贵资料奉献,学习java3D的绝佳系列教,希望各位认真利用。
JAVA3D学习系列(17)--动画的生成(下),相当有用的动画的生成教程,值得学习参考!希望对你有点帮助!
内含三个java3d 书籍 都是经典之作,现在java3d书籍网上都没有出售的 非常稀少,有兴趣的同学可以下载
提供各种Java3D效果的制作实例,以及帮助文档
java3d 的魔方实例,不错的源程序代码。互相学习
JAVA 3D教程,学习JAVA 3D的入门教程,如果您想在短时间内掌握JAVA 3D技术,这是您最好的选择。
JAVA3D学习资料,Eclipse Java3d开发很有用。
移动Java 3D学习案例:茶壶.rar
我搜集的java3D学习资料
web3d java3d学习资料,开发环境,源代码
压缩包有三个文件:java3D官方教程中文版,Java3D初级学习和Java3d简介(含n个实例)。
上传了java3D学习系列1~12,对初学JAVA3D的同学用处甚大
java3d的材质设计。 学习java3d中导入材质
java 3d 官方教程,英文版,对学习java 3d很有帮助
非常好的入门代码,java3d实现的简单而完整例子
Java与3D教程,相当有用的3D教程,值得学习参考!希望对你有点帮助!
我学习java3D用到的资料,有api,实例,还有我的一点作品。而且已经把csdn里面能搜到的其他的java3d的资料也放进去了。 这里是目录,不过不全,我打包了很多东西, java3d教程.zip Java3D+编程实践——网络上的三维...
java3d学习,java3d资料,java3d学习的源代码
Java3D实现三维显示,教你如何实现三维零件的显示,大家互相学习