地理虚拟现实建模语言-GeoVRML介绍
地理虚拟建模语言(GeoVRML)是由Web3D联盟下属的一个官方工作组所制定的一种地理虚拟建模语言,该工作组致力于地理信息网络三维可视化的研究和开发。它是用虚拟建模语言(VRML)为基础来描述地理空间数据。其目的是让用户通过一个在Web浏览器安装的标准的VRML插件来浏览地理参考数据、地图、和三维地形模型。它的出现将为在网络环境下实现虚拟地理环境提供一个良好的数据规范平台,将大大促进网络虚拟地理环境的应用。
目前,负责制定GeoVRML规范的工作组已经颁布了GeoVRML1.0规范推荐草案,通过对VRML的大量新的扩展来支持三维GIS应用。基于GeoVRML进行地理建模的应用已经出现。
GeoVRML本质上是对VRML 97标准的扩充,但它在继承了VRML众多优点的基础上,又具有自己的特性,其中包括:
(1) 支持多种坐标系统和参考椭球
针对VRML标准仅仅支持局部迪卡尔坐标系的局限性,GeoVRML全面支持多种常用坐标系和参考椭球。用户只需在VRML文件中指定使用的坐标系和椭球名称并以规定的格式给出各种数据,GeoVRML自动将它们转换、映射到屏幕坐标系中。
(2) 全面提高数据精度
VRML
97规定所有的数值均为32位IEEE单精度浮点类型,在这样的精度条件下,利用VRML进行地理信息的发布将导致数据重叠、视点抖动等一系列问题。GeoVRML
扩展所有的数值类型为64位双精度型,提高精度指标到毫米级。
(3) 三维建模型功能进一步增强
为了加强对复杂模型的支持,GeoVRML新增加了GeoCoordinate(描述对象的地理坐标)、GeoElevationGrid(建立DTM模型)、GeoLocation(将标准的VRML模型精确植入场景)等10个节点。合理地使用这些节点,可以简便、迅速地实现数据的三维可视化。
(4) 浏览模式的增强
针对VRML插件固定用户运动步长的缺点,GeoVRML实现了基于高程的浏览模式,即根据用户当前视点的高程值确定运动步长。这样,大大方便了用户对整个场景的控制。
另外,GeoVRML还有源代码开放、与高级语言(Java、C++等)可以进行通讯等特点。
GeoVRML规范已经正式作为附件收入VRML97国际标准,并将作为地理几何组件包括在即将推出的X3D/VRML200X国际标准中。
目前 Cosmo Play、ParallelGraphics Cortona® VRML Client、Xj3D 等 VRML/X3D 浏览器提供 GeoVRML 支持。
节选改编自:中国计算机图形学研究会主页
http://www.cad.zju.edu.cn/chinagraph/
《基于GeoVRML的城市三维景观网络发布技术》
贲进 戴晨光 阎晓东 张衡
解放军信息工程大学测绘学院, 河南郑州, 450052
Benjin@371.net
评论:GeoVRML 介绍
链接:X3D Tooltips 中的
GeoVRML 节点说明
附:X3D/VRML200X 中的 GeoVRML 节点说明 (节选自 X3D Tooltips 中文版)
![]() |
GeoCoordinate 建立一系列的三维地理坐标. 被用来再现地理数据和地球曲面. GeoCoordinate is 只在IndexedFaceSet, IndexedLineSet, PointSet节点中使用. GeoCoordinate 可以包含GeoOrigin 节点. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
point | [point: type MFVec3d CDATA #IMPLIED] 按照geoSystem 指定格式的一系列三维地理坐标. 如果需要可以把串值"x1 y1 z1 x2 y2 z2" 分为 "x1 y1 z1", "x2 y2 z2" |
containerField | [containerField: NMTOKEN "coord"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoElevationGrid 是一个几何节点, 使用地理坐标创建一个具有不同高度的矩形网络组成的地理曲面. GeoElevationGrid 可以包含GeoOrigin, Color, Normal, TextureCoordinate节点. 提示: 在增加 geometry或 Appearance节点之前先插入一个Shape节点. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC. |
geoGridOrigin | [geoGridOrigin type SFVec3d CDATA "0 0
0"] 对应高度数据集中西南(左下)角数据的地理坐标. |
xDimension | [xDimension: type SFInt32 CDATA "0"] 东西方向上的网格数. 提示水平x 轴的总长等于(xDimension-1) * xSpacing. |
zDimension | [zDimension: type SFInt32 CDATA "0"] 南北方向上的网格数. 提示垂直y 轴的总长等于(zDimension-1) * zSpacing. |
xSpacing | [xSpacing: type SFDouble CDATA "1.0"] 东西X方向上网格顶点的间距 当geoSystem 指定为GDC, xSpacing 使用经度的度数 当geoSystem 指定为UTM, xSpacing 使用向东的米数. |
zSpacing | [zSpacing: type SFDouble CDATA "1.0"] 南北Z方向上网格顶点的间距 当geoSystem 指定为GDC, zSpacing 使用纬度的度数 当geoSystem 指定为UTM, zSpacing 使用向北的米数. |
yScale | [yScale: type SFFloat CDATA "1.0"] 放大垂直方向的比例以利于数据显示. |
height | [height: type MFFloat CDATA #IMPLIED] 椭圆体上的高度浮点值, 有xDimension行zDimension列 值按从西到东, 从南到北的行顺序排列 对应高度数据集中西南(左下)角数据的地理坐标. |
set_yScale | [set_yScale type SFFloat CDATA "1.0"] 放大垂直方向的比例以利于数据显示. |
set_height | [set_height type MFDouble CDATA
#IMPLIED] 椭圆体上的高度浮点值, 有xDimension行zDimension列 值按从西到东, 从南到北的行顺序排列 对应高度数据集中西南(左下)角数据的地理坐标. |
ccw | [ccw: type SFBool (true|false) "true"] ccw = 逆时针: 顶点坐标方位的顺序. 提示: ccw值为false 时可以翻转solid (背面裁切) 及法线方向 |
solid | [solid: type SFBool (true|false)
"true"] 设置solid 值为true时只绘制多边形的一面(使用背面裁切), 设置solid 值为false 时绘制多边形的两面(关闭背面裁切). 警告: 缺省值为true时, 设置错误的物体从背面完全看不见! |
creaseAngle | [creaseAngle: type SFFloat CDATA "0"] [0..infinity) creaseAngle 定义了决定相邻面渲染方式的角(用弧度值表示) 如果两个相邻面的法线夹角小于creaseAngle, 就把两个面的边平滑渲染, 反之会渲染出两个面的边线. 提示: creaseAngle值为0 时锐利地渲染所有的边, creaseAngle 值为3.14 时平滑地渲染所有的边. |
colorPerVertex | [colorPerVertex: type SFBool
(true|false) "true"] 决定Color节点应用每顶点颜色(true值时), 还是每四边形颜色(false值时). |
normalPerVertex | [normalPerVertex: type SFBool
(true|false) "true"] 决定Normal节点应用每顶点法线(true值时), 还是每四边形法线(false值时). |
containerField | [containerField: NMTOKEN "geometry"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoLocation 在地球的表面放置一个一般的 VRML模型. GeoLocation 包含children相关子节点和 GeoOrigin 节点. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
geoCoords | [geoCoords: type SFVec3d CDATA
#IMPLIED] 指定地理位置(由当前geoSystem coordinates指定的地理坐标) 以放置子几何体节点(采用相对VRML坐标系并以米为单位). |
bboxCenter | [bboxCenter: initializeOnly type
SFVec3f CDATA "0 0 0"] 边界盒的中心: 从局部坐标系统原点的位置偏移. |
bboxSize | [bboxSize: initializeOnly type SFVec3f
CDATA "-1 -1 -1"] 边界盒尺寸: 缺省情况下是自动计算的, 为了优化场景, 也可以强制指定. |
containerField | [containerField: NMTOKEN "children"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoLOD 为多分辨率的地形提供了四叉树的细节层次载入卸载能力. GeoLOD 包含children相关子节点, rootNode根节点和GeoOrigin 节点. 提示: 只有当前载入的子节点是暴露于场景图的. 提示: rootNode 指定根覆盖几何体. 警告: 每次只可以指定一个根覆盖, 不要同时使用rootUrl 和rootNode. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
rootUrl | [rootUrl type MFString CDATA #IMPLIED] 使用rootNode 或 rootUrl 指定根几何体. |
child1Url | [child1Url type MFString CDATA
#IMPLIED] 指定可视范围内载入的四叉树几何节点. |
child2Url | [child2Url type MFString CDATA
#IMPLIED] 指定可视范围内载入的四叉树几何节点. |
child3Url | [child3Url type MFString CDATA
#IMPLIED] 指定可视范围内载入的四叉树几何节点. |
child4Url | [child4Url type MFString CDATA
#IMPLIED] 指定可视范围内载入的四叉树几何节点. |
range | [range type SFFloat CDATA #IMPLIED] (0,infinity) 参照地理坐标系统, 设置从一个中心的可视范围, 用来载入/卸载不同的四叉树. |
center | [center type SFVec3d CDATA #IMPLIED] 参照地理坐标系统, 设置从一个中心的可视范围, 用来载入/卸载不同的四叉树. |
bboxCenter | [bboxCenter: initializeOnly type
SFVec3f CDATA "0 0 0"] 边界盒的中心: 从局部坐标系统原点的位置偏移. |
bboxSize | [bboxSize: initializeOnly type SFVec3f
CDATA "-1 -1 -1"] 边界盒尺寸: 缺省情况下是自动计算的, 为了优化场景, 也可以强制指定. |
containerField | [containerField: NMTOKEN "children"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoMetadata 包括地理信息的一般子类的元数据. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
url | [url: inputOutput type MFString CDATA
#IMPLIED] . 提示: 字符串可以是多值, 用引号分割每个字符串 [ "http://www.url1.org" "http://www.url2.org" "其它网址." ].. 提示: " 的XML 编码 是 " (字符实体). 警告: http链接要严格匹配目录和文件名的兼容性! 提示: url 中的每个空格符用 %20 替换掉. |
data | [data IDREFS #IMPLIED] 执行这个数据的所有节点的列表 如果不指定, GeoMetadata 节点适用于整个场景. |
summary | [summary type MFString CDATA #IMPLIED] 使用Metadata keyword=value 字符串对 metadata keyword=value字符串对 VRML 97 编码时在summary下跟keyword=value字符串对. |
description | [description type SFString CDATA
#IMPLIED] 用户进行简单识别数据集的名称, 比如"San Francisco, CA". |
title | [title type SFString CDATA #IMPLIED] 主要文本描述或数据集内容的摘要, 比如 "LANDSAT 7 satellite imagery taken over northern Scotland" |
coordinateSystem | [coordinateSystem type SFString CDATA
#IMPLIED] 再现数据使用的地理坐标系统, 比如GDC, UTM, LCC, 之类. 对于UTM系统, 同时以"UTM Zx" (1 <= x <= 60)格式指定地区号 比如, "UTM Z11" |
horizontalDatum | [horizontalDatum type SFString CDATA
#IMPLIED] 地理基准点的名称, 比如 "W84" |
verticalDatum | [verticalDatum type SFString CDATA
#IMPLIED] 地理基准点的名称, 比如 "W84" |
ellipsoid | [ellipsoid type SFString CDATA
#IMPLIED] 地理椭圆体的名称, 比如 "WE" |
extent | [extent type SFString CDATA #IMPLIED] 数据集在指定坐标系统中的边界坐标 以以下顺序排列最东eastmost, 最南southmost, 最西westmost, 最北northmost, 最小高度minimum elevation, 最大高度maximum elevation 例子 GDC: "-180.0 -90.0 180.0 90.0 0.0 2000.0" |
resolution | [resolution type SFString CDATA
#IMPLIED] 米制的分辨率(地面距离采样). |
originator | [originator type SFString CDATA
#IMPLIED] 作者, 代理商, 组织, 出版者之类的数据, 举例来说 "Martin Reddy, SRI International, Menlo Park, CA 94025" |
copyright | [copyright type SFString CDATA
#IMPLIED] 数据的相关版权声明, 例子 "(c) Copyright 2000, SRI International. All rights reserved. Freely distributable." |
date | [date type SFString CDATA #IMPLIED] 数据有效的日期/时间(or date/time range) 使用格式 YYYY MM DD [HH:MM] 格式是4位数年 时间是24-小时格式 GMT时间 两个时间用- 连接 例子: 1999 01 01 00:00 - 1999 12 31 23:59. |
metadataFormat | [metadataFormat type SFString CDATA
#IMPLIED] GeoMetadata节点url 属性制定外部metadata描述格式url 例子: "FGDC", "ISO TC211", "CEN TC287", "OGS", etc. |
dataUrl | [dataUrl type SFString CDATA #IMPLIED] 单个或多个源数据的url链接, 这些源数据适合用来创建VRML 节点. |
dataFormat | [dataFormat type SFString CDATA
#IMPLIED] 自由文本字符串描述源数据的格式, 比如 "USGS 7.5-min DEM" |
containerField | [containerField: NMTOKEN "children"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoOrigin 指定了一个局部坐标系统以增加地理精度. 提示: 每个场景中只使用一个坐标系统 因此推荐使用USE引用这唯一的GeoOrigin节点. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
geoCoords | [geoCoords type SFVec3d CDATA #IMPLIED] 定义了绝对地理位置(和绝对的局部坐标框架). |
rotateYUp | [rotateYUp type SFBool (true|false)
"false"] rotateYUp true 旋转使用GeoOrigin旋转节点的坐标 使局部上方向是相对VRML Y 轴的 rotateYUp false 意味着上方向是相对于行星表面的 rotateYUp true 允许在 NavigationInfo modes FLY, WALK下适当的导航. |
containerField | [containerField: NMTOKEN "geoOrigin"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() GeoPositionInterpolator |
GeoPositionInterpolator 在地理坐标系统中进行对象动画. GeoPositionInterpolator 可以包括一个 GeoOrigin 节点. 典型输入: ROUTE someTimeSensor.fraction_changed TO someInterpolator.set_fraction 典型输出: ROUTE someInterpolator.value_changed TO destinationNode.set_attribute. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
key | [key type MFFloat CDATA #IMPLIED] 定义线性插值的时间间隔(关键点), 按照顺序增加, 对应相应的keyValue. 提示: key 和keyValue的数量必须一致! |
keyValue | [keyValue type MFVec3d CDATA #IMPLIED] 对应key的相应关键值, 用来进行相应时间段的线性插值. 提示: key 和keyValue的数量必须一致! |
set_fraction | [set_fraction type SFFloat CDATA #FIXED
""] set_fraction 输入一个key 值, 以进行相应的keyValue 输出. |
value_changed | [value type SFVec3f CDATA #IMPLIED] 按照相应的key和keyValue对, 输出相应时间段的线性插值 |
geovalue_changed | [geovalue_changed type SFVec3d CDATA
#IMPLIED] 插值输出geoSystemd定义的地理坐标. |
containerField | [containerField: NMTOKEN "children"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoTouchSensor 返回对象上指点设备所指的点的地理坐标. GeoTouchSensor 可以包含GeoOrigin 节点. 提示: 传感器影响同一级的节点及其子节点. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
enabled | [enabled type SFBool (true|false)
"true"] 设置传感器节点是否有效. |
isActive | [isActive type SFBool (true|false)
#FIXED ""] 当传感器的状态改变时, isActive true/false 发送事件. 按下鼠标主键时isActive=true, 放开时isActive=false. |
hitGeoCoordinate_changed | [hitGeoCoordinate_changed type SFVec3d
CDATA #IMPLIED] 事件输出在子节点局部坐标系统点击点的定位, 值为GeoTouchSensor节点同一级的局部地理坐标系统. |
hitPoint_changed | [hitPoint_changed type SFVec3f CDATA
#IMPLIED] 事件输出在子节点局部坐标系统点击点的定位, 值为几何体的坐标 (不是地理坐标). |
hitNormal_changed | [hitNormal_changed type SFVec3f CDATA
#IMPLIED] 事件输出了点击点的表面的法线向量. |
hitTexCoord_changed | [hitTexCoord_changed type SFVec2f CDATA
#IMPLIED] 事件输出了点击点的表面的纹理坐标. |
isOver | [isOver type SFBool (true|false) #FIXED
""] 当指点设备移动过传感器表面时发送事件. |
touchTime | [touchTime type SFTime CDATA #IMPLIED] 当传感器被指点设备点击时产生时间事件. |
containerField | [containerField: NMTOKEN "children"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
top credits help | |
![]() |
GeoViewpoint 使用地理坐标指定视点位置. GeoViewpoint 可以包含GeoOrigin 节点. 因为GeoViewpoint 必须能在地理坐标系统的曲面中运行, 所以它包含Viewpoint 和NavigationInfo的属性. |
DEF | [DEF ID #IMPLIED] DEF给这个节点定义了唯一的ID, 这样在其它节点里就可以引用这个节点. 提示: 为DEF命名时,使用有意义的描述性的名称可以帮助规范文件, 以提高文件可读性. |
USE | [USE IDREF #IMPLIED] USE用来引用DEF定义的节点ID, 同时忽略其它的属性和子对象. 提示: 使用USE引用其它的对象而不是复制节点可以提高性能. 警告: 使用USE的代码不要包括DEF或其他的属性值! |
geoSystem | [geoSystem: CDATA "GD" "WE" ] 定义所使用的地理坐标系统. 支持值: GDC UTM GCC |
position | [position CDATA "0 0 100000"] 视点位置, 相对局部坐标系统, 并使用相应的地理坐标. |
orientation | [orientation CDATA "0 0 1 0"] 视点方向(轴, 弧度角) , 相对局部坐标系统, 缺省为Z轴方向. 提示: 这个方向从缺省的(0 0 -1)方向变化而来. 提示: +Y 对应局部区域的上方向(椭圆体表面切线方向的法线), -Z 点指向北极, +X 指向东方 1 0 0 -1.57 始终看向地面. |
navType | [navType CDATA "EXAMINE ANY"] 输入一个或多个变量: "EXAMINE" "WALK" "FLY" "ANY" "NONE". 提示: 设置type="EXAMINE" "ANY"可以提高操控性. |
headlight | [headlight type SFBool (true|false)
"true"] 打开/关闭方向性灯光, 这个灯光一直指向观测方向, 为场景提供缺省照明. |
fieldOfView | [fieldOfView CDATA "0.785398" (0..pi) 弧度值设定的视点可视角度. 小的视角相当于长镜头, 大视角相当于广角镜头. |
jump | [jump type SFBool (true|false) "true"] 立刻转换到这个镜头设置 (jump值为true), "或平滑的动态转换到这个镜头(jump值为false). |
speedFactor | [speedFactor CDATA "1"] [0..+infinity) 用户在场景中移动速度的比例因素, (米/秒). |
set_bind | [set_bind type SFBool (true|false)
#FIXED ""] 输入事件set_bind为true激活这个节点, 输入事件set_bind为false禁止这个节点. 就是说设置bind 为true/false 将在堆栈中弹出/推开 (允许/禁止) 这个节点. |
set_position | [set_position CDATA "0 0 100000"] 视点位置, 相对局部坐标系统, 并使用相应的地理坐标. |
set_orientation | [set_orientation CDATA "0 0 1 0"] 视点方向(轴, 弧度角) , 相对局部坐标系统, 缺省为Z轴方向. 提示: 这个方向从缺省的(0 0 -1)方向变化而来. 提示: +Y 对应局部区域的上方向(椭圆体表面切线方向的法线), -Z 点指向北极, +X 指向东方 1 0 0 -1.57 始终看向地面. |
bindTime | [bindTime CDATA #FIXED ""] 当节点被激活/停止时发送事件. |
isBound | [isBound type SFBool (true|false)
#FIXED ""] 当节点激活时发送true事件, 当焦点转到另一个节点时发送false事件. |
containerField | [containerField: NMTOKEN "children"] containerField 是field标签的前缀, 表明了子节点和父节点的关系. 比如: geometry Box, children Group, proxy Shape. containerField 属性只有在X3D场景用XML编码时才使用. |
class | [class CDATA #IMPLIED] class 是用空格分开的类的列表, 保留给XML样式表使用. 只有X3D场景用XML编码时才支持class 属性. |
http://17de.com/x3d/ 保留版权