11Java3D的虚拟场景空间设计空间.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11Java3D的虚拟场景空间设计空间

1.1Java3D的虚拟场景空间设计 Java3D是一种面向对象的API。通过场景图来管理场景中的各种图形元素。场景图是一个树状结构,在该树状结构的各级节点表示该场景中的各种图形元素。将由各种图形元素形成的一个场景的整体称为一个虚拟空间。在这个虚拟空间中的图形元素包括:几何体的定义数据,几何显示时的颜色、材质、透明度等属性,背景颜色,光线类型,场景的作用范围,视点、投影面及投影类型,对几何体的坐标变换等。 Java3D与Java一样对各种功能的组织同样采用父类、子类、对象实例的方式。Java3D中规定了在一个虚拟场景空间中各种图形元素的表示符号及虚拟场景空间的组织结构。在一个虚拟空间中可以包含多个Local节点。一个Local节点表示一个子场景的根节点。多个Local节点表示在该虚拟场景中有多个场景的根节点。但是在实际应用中最常使用的是在一个虚拟空间中只包含一个子场景,也就是只包含一个Local节点。在一个Local节点之下,可以包含一个到多个BranchGroup节点。每个BranchGroup节点表示一种图形元素的集合。这种图形元素的集合主要有两种:(1)定义几何体的数据与定义该几何体的颜色、材质、透明度等外观的属性;(2)定义该几何体在显示的时候在该场景中的其他元素,如背景颜色、光源类型、视点位置与观察方向、投影平面的位置、坐标变换等。在实际应用中,最常用的是一个Local节点下只含有一个BranchGroup节点。 在一个Local节点下只含有一个BranchGroup节点情况下,必须定义一个Shape3D对象,在该对象中定义几何体的数据与几何体的颜色、材质、透明度等外观显示特性,该Shape3D对象一般加入在一个TransformGroup类的节点中。在一个BranchGroup节点之下,可以包含多个TransformGroup节点。每个TransformGroup节点可以包含以各种或多种几何体的定义。也可以不包含几何体的定义信息。但是一个TransformGroup节点必须包含一个或多个Transform3D对象,表示对TransformGroup节点中定义的几何体所进行的坐标变换。一个Transform3D对象表示对几何体进行平移、旋转、变比等坐标变换中的一种,多个Transform3D对象的组合形成一个总的坐标变换矩阵,这个总的坐标变换矩阵就属于包含这些Transform3D对象的TransformGroup节点。如果该TransformGroup节点中没有定义几何体,则这种坐标变换是针对于第一次定义的几何体。如果在一个TransformGroup节点中没有定义任何的坐标变换,则该TransformGroup节点拥有默认的坐标变换矩阵,但该矩阵为单位矩阵,表示对几何体不进行任何变换。对于坐标变换的具体方法与内容将会在后面章节中详细介绍。View的功能主要是实现在虚拟场景中设置视点与观察方向。Canvas3D主要用来定义一种能够显示三位物体投影的画布。Screen3D主要将画布上三位物体的投影显示在显示器上。 Alpha节点元素对象提供了一种将一个时间值转换成Alpha值的公用方法。当采样时,Alpha对象实际上就是一个生成0-1数的与时间有关的函数。Alpha对象最基本的应用就是为插值的行为提供Alpha值。Alpha对象的特征由用户定义的参数决定。Alpha类主要用在动画设计中,对于Alpha类的使用可参考Alpha类的说明。 Java3D所采用的坐标系:在Java3D中,几何体定义也采用该坐标系,所有的坐标变换也是针对该坐标系进行的,坐标原点在显示器的正中间。Z轴指向屏幕之外。X轴的正向沿水平方向向右,Y轴的正向沿垂直方向向上。 下面用生成一个圆锥体的程序实例来说明Java3D程序的基本结构。该程序用来生成一个简单的椎体。(见例1.1创建与显示一个圆锥体) 该程序中各场景元素的关系结构如下 创建简单虚拟空间SimpleUniverse: ·创建BranchGroup节点对象,并将该对象加入虚拟空间中 定义虚拟空间中的球形范围BoundingSphere 定义虚拟空间中的背景颜色 定义虚拟空间中的光源类型、颜色 定义鼠标对物体的平移、旋转、放大功能 定义虚拟空间的坐标变换节点TransformGroup,并设置TransformGroup的读写属性 定义三维物体的几何数据 定义三维物体的颜色、材质等外观属性 ·设置系统自动选取该虚拟空间的视点位置u.getViewingPlatform().setNominalViewingTransform(),并在投影面上对三维物体进行透视投影 ·将投影平面上的三维物体的透视投影显示在画布Canvas3D上 Java3D低级的图形功能集成了如Direc

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档