» 网友学堂 » JAVA教程 » X3D实战基础讲座之二
X3D实战基础讲座之二
作者:ljjk5 发表时间:2008-1-2 10:32 阅读:58次 在百度搜索相关内容

 第二讲 文本的显示  在本讲中,我们将介绍如何创建具有文字的场景效果,在创建过程中还将详细介绍如何设置光源以及文字风格等方法。
  一、 创建一个新的X3D文件
  操作如下:
  1. 运行X3D-Edit,出现如图所示的界面。
  
  说明:
  X3D-Edit程序界面分为五个区,即:用户命令区、节点区、节点属性区、程序编辑区及消息区。
  用户命令区是位于顶层,包括菜单命令和工具条命令。
  节点区位于界面的左侧,包括X3D目前所支持的所有特性节点,它是标签操作方式,单击相应的标签将在下方显示出相应的节点,凡是不可添加的节点均以灰色显示。
  节点区的下方是节点属性区,属性区所在的窗口中包括当前节点的大部分属性,在这里我们可以更改或设置相应的属性值。
  界面的最下方是消息区,用来显示当前操作或编译情况。
  程序编辑区用来显示和编辑我们所设计的X3D程序,它是多文档窗口形式。
  2. X3D-Edit运行后会调用默认的newScene.x3d,当然,我们也可单击File │ New菜单重新创建。
  3. 单击File │ Save as ,将默认的newScene.x3d保存为另一个文件1.x3d,并指定到自己的文件夹中。如"d:X3d示例"。注意:系统一开始使用默认的保存文件名Untitled-0.x3d。
  4. 单击工具栏最右边的 按钮,弹出如图所示的对话框。
  
  5. 单击"确定"按钮,将会在IE显示。若此时鼠标指针为一个十字加上E,那么恭喜你,你可以正常使用了。
  二、 修改head节点下的内容
  head 是 X3D的第一个节点,放在场景节点的开头。它对应于HTML中的<head>标记。该节点下的内容可以是component (组件)、metadata(元数据)或自定义内容。下面来修改:
  1. 单击 ,将会在节点属性窗口中显示其属性,如下图所示。
  
  说明:meta (metadata) 元数据为场景提供一些信息,它使用和HTML的meta 标签一样的定义。每个元数据包括名称(name)和内容(content)。
  2. 单击属性窗口中的content属性右侧的Value单元,弹出如下图所示的窗口。
  
  3. 将内容改为"1.x3d"后,单击OK按钮。
  4. 按同样的方法将head节点下的内容修改成下图所示。
  
  提示:删除某条节点内容,只需选定它后按delete键,或者右击节点,从弹出的快捷菜单中选择"Delete"。
  三、 添加几何节点(Shape)
  在X3D 程序(文档)中,Scene 是X3D场景图的根节点,所有的场景节点都应添加到该节点下,并且在每个文件里只允许有一个Scene 根节点。操作如下:
  1. 保留Scene下的NavigationInfo节点内容,删除
  2. 单击Scene节点。然后在节点区中,单击 Allowed Nodes 标签。
  3. 从节点列表中,找到Shape,并右击Shape,从弹出的快捷菜单中选择"Insert As Child"。编辑器会自动定位到添加的Shape节点。
  说明:Shape(几何)节点用于几何体、文本和外观特性的父节点。
  四、 添加文本节点(Text)
  Text 是一个用于文本显示的几何节点,在添加之前一定要添加场景外观节点(Appearance)。Appearance 指定几何对象的视觉效果,它可以有Material、Texture 和TextureTransform 节点。
  1. 从节点列表中,找到Appearance(外观),右击后从弹出的菜单中选择"Insert As Child"。
  2. 在刚才添加的Appearance节点下添加Material节点。
  说明:Material 指定相关几何节点的表面材质属性。用于光源的属性如下表所示:
  
属性含义默认值值的范围
diffuseColor反射光0.8 0.8 0.8RGB颜色分量值为0~1
emissiveColor自身发出的光0 0 0 同上
specularColor*高光0 0 0同上
shininess*光强0.2 0~1
ambientIntensity*环境光0.20~1
transparency*透明度00~1

  注意:打*号的属性可能不起作用。
  3.在Material节点属性窗口中将diffuseColor的属性改为"0 1 0",颜色为绿色。注意:在输入这些数值后一定要按Enter结束。
  说明:RGB颜色分量的含义是,R表示红色,G表示绿色,B表示蓝色。各颜色分量的值均在0到1之间,每个值用空格隔开。
  4. 单击Appearance节点,从节点列表中,找到Text,然后右击Text,选择"Insert After"添加Text节点。
  5. 在Text节点属性窗口中,将String属性内容设为""Hello, X3D!" "2004-1-2"" ,结果如下所示。
  说明: "你好, X3D" 和 "2004-1-2"文本之间有空格且两个文本上有双引号,之所以这么做是希望将其显示成两行文本。
  6. 编译预览,结果如下图所示。
  
  五、 设置文本风格
  字体风格的设置是由FontStyle节点指定的,它的属性如下表所示:
  
属性含义默认值可以选择的值
family字体名"SERIF" "SERIF", "SANS", "TYPEWRITER":前两个是可变宽度的字体,最后一个是等宽字体
style字体风格PLAIN PLAIN(常规), BOLD(粗体), ITALIC(斜体), BOLDITALIC(粗斜体)
justify位置调整"BEGIN""FIRST"(首字符对齐), "BEGIN"(左对齐), "MIDDLE"(居中), "END"(右对齐)
size字体大小1 实数值
spacing 行间距1 实数值
horizontal 是否水平方向TrueTrue(水平方向), False(垂直方向)
leftToRight字符是否从左到右TrueTrue(从左到右), False(从右到左)
topToBottom字符是否从上到下TrueTrue(从上到下), False(从下到上)

  下列就来将上述两行文本居中斜体显示,且行距设为2倍。
  1. 在Text节点下添加一个子节点FontStyle。
  2. 在FontStyle节点属性窗口中,将style属性内容选择为ITALIC。
  3. 在justify属性栏内输入 "BEGIN" "MIDDLE",然后按回车。
  4. 在spacing属性栏内输入2.0,然后按回车。这样代码就变成:
  
  5. 编译预览,结果如下图所示。
  
  但是,BS Contact 6.1好像对文本支持得不够好,justify属性看不出效果,这是因为BS Contact自动将场景进行最大化居中缩放处理。
  六、 插件菜单操作
  1. 在浏览器的X3D场景中,右击鼠标,出现如下图所示的快捷菜单:
  
  2. 选择"Setting"│"Preference",出现下图对话框。
  
  在这里可以对插件中的相关参数进行设置。
  3. 单击"General"标签,出现下图页面。
  
  4. 将"Menu language"选择为"中文"。单击"确定"按钮,这样,快捷菜单就是中文了。如下图所示:
  
  5. 将渲染选项(Render Options)设置成OpenGL,如下图所示:
  
  环境设置好了后,就可以跟着我们一起去领略X3D的魅力了。在下一讲中,我们将讨论X3D的2D图形的构造。

#Advertisement