描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302456513丛书名: 水木书荟
本书是目前虚拟现实领域中*前沿的计算机互动游戏教科书,是集计算机“互联网 ”、3D交互设计、游戏设计、多媒体技术、虚拟人设计、粒子烟火、动画游戏设计、信息地理以及人工智能于一身的实用教科书。全书内容丰富,叙述由浅入深,思路清晰,结构合理,实用性强,并配有大量的X3D互动游戏交互设计源程序实例,使读者可以轻松掌握X3D互动游戏交互技术。
第1章X3D互动游戏交互设计概述
1.1虚拟现实技术
1.1.1虚拟现实技术及基本特性
1.1.2虚拟现实技术的分类
1.1.3虚拟/增强现实和可穿戴智能设备
1.1.4虚拟现实常用的几种交互方式
1.2增强现实技术
1.2.1增强现实系统原理
1.2.2X3D增强现实软件建模技术
1.2.3X3D增强现实技术的应用
1.3可穿戴智能设备
1.3.1可穿戴智能设备交互方式及交互技术
1.3.2可穿戴智能设备的发展与应用
1.4VR/AR互动游戏体感交互技术
1.4.1VR/AR互动游戏体感游戏平台
1.4.2VR/AR互动游戏体感游戏技术
1.4.3VR/AR体感互动游戏中的传感器技术
第2章X3D互动游戏开发环境与文件架构
2.1VR/AR互动娱乐媒体开发平台
2.1.1虚拟现实项目开发平台
2.1.2增强现实项目开发平台
2.1.3角色动画生成系统
2.1.4动作捕捉系统
2.2X3D互动游戏开发环境
2.2.1写字板X3D互动游戏编辑器
2.2.2X3D专用编辑器
2.2.3Vizx3D集成开发环境
2.2.4BS Studio集成开发环境
2.2.5Xj3D浏览器的安装与运行
2.3X3D互动游戏设计
2.3.1X3D互动游戏格式
2.3.2X3D互动游戏类型声明
2.3.3X3D互动游戏概貌
2.4X3D互动游戏场景结构设计
2.4.1X3D互动游戏场景设计
2.4.2X3D互动游戏文件注释
第3章X3D互动游戏建模交互设计
3.1X3D互动游戏几何建模算法分析
3.2X3D互动游戏几何建模分析
3.2.1X3D互动游戏几何建模结构分析
3.2.2X3D互动游戏几何建模语法剖析
3.3X3D互动游戏几何建模开发设计
3.3.1X3D球体造型设计
3.3.2X3D圆锥体造型设计
3.3.3X3D圆柱体造型设计
3.3.4X3D立方体造型设计
3.3.5X3D文字造型设计
3.4X3D互动游戏路灯造型项目开发案例
3.4.1X3D路灯造型项目开发设计
3.4.2X3D路灯造型项目案例
第4章X3D互动游戏场景交互设计
4.1X3D互动游戏场景算法分析
4.2X3D互动游戏场景建模分析
4.2.1X3D互动游戏场景结构分析
4.2.2X3D互动游戏场景语法剖析
4.3X3D互动游戏场景开发与设计
4.3.1X3D互动游戏Transform设计
4.3.2X3D互动游戏Group设计
4.3.3X3D互动游戏Inline设计
4.3.4X3D互动游戏Switch设计
4.3.5X3D互动游戏Billboard设计
4.3.6X3D互动游戏Anchor设计
4.4X3D互动游戏建模重定义技术和重用技术
4.4.1X3D互动游戏建模重定义技术
4.4.2X3D互动游戏建模重用技术
4.4.3X3D互动游戏重用技术设计与案例
4.5X3D互动游戏旋转的地球仪案例
4.5.1X3D互动游戏旋转的地球仪案例分析
4.5.2X3D互动游戏旋转的地球仪案例设计
4.5.3X3D互动游戏旋转的地球仪场景设计
第5章X3D互动游戏高级建模设计
5.1X3D互动游戏高级建模分析
5.1.1X3D互动游戏空间点和线算法分析
5.1.2X3D互动游戏空间平面算法分析
5.1.3X3D互动游戏空间曲面算法分析
5.1.4X3D互动游戏Extrusion算法分析
5.2X3D互动游戏高级建模语法剖析
5.3X3D互动游戏高级建模开发与设计
5.3.1X3D互动游戏PointSet设计
5.3.2X3D互动游戏IndexedLineSet设计
5.3.3X3D互动游戏IndexedFaceSet设计
5.3.4X3D互动游戏ElevationGrid设计
5.3.5X3D互动游戏Extrusion设计
5.4X3D互动游戏臂力健身器案例
5.4.1X3D互动游戏臂力健身器案例分析
5.4.2X3D互动游戏臂力健身器案例设计
第6章X3D互动游戏交互光影渲染设计
6.1X3D互动游戏光影效果渲染设计
6.1.1X3D互动游戏光影效果渲染原理
6.1.2X3D互动游戏光影效果渲染分析
6.1.3X3D互动游戏光影设计
6.2X3D互动游戏光影效果语法剖析
6.3X3D互动游戏背景光影渲染开发设计
6.3.1X3D互动游戏交互全景技术
6.3.2X3D互动游戏交互点光源设计
6.3.3X3D互动游戏交互平行光源设计
6.3.4X3D互动游戏交互聚光灯光源设计
前言
随着计算机软、硬件和“互联网 ”的迅猛发展以及人机交互设备的不断更新换代,互动游戏技术已渐渐地走入人们的生活,例如通信及娱乐的移动终端设备的使用(iPad、智能手机等),但这种交互还处于初级阶段。如果要实现真正身临其境的交互设计,还需要配备虚拟现实硬件设备和软件产品,以及以虚拟现实技术为代表的前沿的主流互动游戏交互形式。深度互动游戏交互设计以增强现实可穿戴设备为载体进行深度互动,例如虚拟头盔、虚拟体验馆、智能手表、智能手环、智能背包、智能鞋等。交互设计又称互动设计(Interaction Design),交互设计是指人与机器互动设计,旨在通过设计让电子产品、环境、系统和服务等更好地为人类服务。交互设计以人为设计中心,围绕人的情感、生理、心理等因素进行更合理的设计,体现人的感觉器官,如听觉、视觉、嗅觉、触觉、味觉、语言沟通等元素,这都是交互设计的重要因素。交互设计是一门将计算机、互联网技术、艺术设计、人工智能、微电子技术、传感器技术以及可穿戴技术相结合的高新技术。人机交互(HumanComputer Interaction,HCI)是指人与计算机之间以一定的交互方式或交互界面来完成确定任务的人与计算机之间的信息交换过程,就是人如何通过一定的交互方式让计算机完成他所希望完成的任务。在20世纪60—70年代,早期人机交互只有以键盘输入的字符界面交互; 到了20世纪80—90年代,以Windows窗口、图符、菜单、按钮以及鼠标为基础的图形用户界面(GUI)逐渐成为当时计算机用户界面的主流。近年来,以用户为中心的系统设计思想增进人机交互的自然性、提高人机交互的效率是用户界面的主要研究方向。虚拟现实和增强现实技术提供了多通道用户界面的设计理念和思想,包括语言、姿势输入、头部跟踪、视觉跟踪、立体显示、三维交互技术、感觉反馈自然语言界面等。人体本身肢体的任何部分都可以成为人机对话的通道,例如肢体、手势、语言、视觉、听觉、肌肉电波、脑波以及情感交流等。多媒体设计从单媒体到多媒体再到互动多媒体,人们的通信方式一直在变革和发展。从单媒体依靠单一方式进行传播到多媒体技术的发展,多媒体技术是单媒体的复合与拓展,整合了文字、图形、图像、音频以及视频等各种传播方式,更加多元化。互动游戏交互设计在多媒体技术的基础上更进一步融合虚拟/增强现实技术,具有更强的实时交互和使人身临其境的沉浸感受,并集成了文字、图像、数据、音频、视频、流媒体、3D动画、3D游戏、体感交互技术以及可穿戴技术等,实现“互联网 ”沉浸式实时互动游戏交互设计理念。目前虚拟互动技术已完成人机交互部分,有多种与自然或虚拟世界的仿真模拟,并利用虚拟现实和增强现实技术进行互动游戏交互设计,突出的是体感互动技术和可穿戴技术。互动游戏高级互动技术可用于高级虚拟现实互动游戏编程。同时,X3D与服务器交互应用,触摸交互传感技术、声音和视频相结合,并使用跨平台的互动技术、流媒体等。 X3D增强现实技术作为计算机的前沿科技,是宽带网络、多媒体、游戏设计、虚拟人设计、信息地理与人工智能相融合的高新技术,是把握未来网络、多媒体、游戏设计、虚拟人设计、信息地理及人工智能的关键技术。X3D虚拟现实技术是目前计算机领域中前沿的科技,是21世纪初在国内、外刚刚兴起的一种新型语言,其发展前景十分广阔,潜力巨大。X3D是互联网三维立体图形的国际通用软件标准,定义了如何在多媒体中整合基于网络传播的动态交互三维立体效果。X3D第二代三维立体网络程序设计语言在网络上创建逼真的三维立体场景,开发与设计三维立体网站和网页程序,利用它可以运行X3D程序直接进入Internet,还可以创建虚拟数字城市、网络超市、虚拟网络法庭、网络选房与展销等,从而改变了目前网络与用户交互的二维平面的局限性,使用户在网络三维立体场景中实现动态、交互和感知交流,体验具有身临其境的感觉和感知。2004年8月,X3D已被国际标准组织ISO正式批准,成为国际通用标准。X3D大有一统网络三维立体设计的趋势,具有划时代的意义。X3D可以在不同的硬件设备中使用,并可用于不同的应用领域,例如虚拟游戏、互动游戏、军事模拟仿真、科学可视化、航空航天模拟、多媒体再现、工程应用、信息地理、虚拟旅游、考古、虚拟教育及娱乐等领域。X3D互动游戏交互设计具有以下特点。(1) 丰富的多媒体功能: 能够实现各种多媒体的制作,例如在三维立体空间场景几何体上播放影视节目、环场立体声等。(2) 强大的网络功能: 在网络上创建三维立体的X3D场景和造型进行动态交互浏览、展示和操作,也可以通过运行X3D程序直接接入Internet,创建三维立体网页和网站等。(3) 程序驱动功能: X3D突出的特点是利用程序支持各种本地和网络三维立体场景及造型。(4) 游戏动画设计: 利用虚拟现实语言开发设计游戏软件,例如虚拟驾驶、跑车游戏、虚拟飞行、虚拟围棋、虚拟象棋、虚拟跳棋、弹球、网络游戏等。(5) 虚拟人动画设计: 实现虚拟人行走运动设计,例如行走、坐立、运动、交谈、表情、喜、怒、哀、乐等。(6) 创建虚拟现实三维立体造型和场景,提供3D、2D场景和造型功能、变换层级、光影效果、材质、多通道/多进程纹理绘制,实现更好的三维立体交互界面。(7) 信息地理设计: 利用虚拟现实语言开发数字地球、数字城市、城市规划与设计以及虚拟社区等。(8) X3D/CAD组件: 在X3D上提供了CAD节点与X3D文件相结合进行软件项目的开发与设计,可以极大地提高软件项目的开发效率。(9) X3D事件工具组件: 该组件的名称是EventUtilities,当在COMPONENT语句中引用这个组件时需要使用这个名称。(10) X3D自定义节点设计: 使开发者可以根据实际项目的需求开发与设计用户需要的新节点、节点类型以及接口事件等,以满足软件项目开发的需要。(11) 用户动态交互功能: 基于鼠标的选取和拖曳,体验键盘输入的交互感。利用脚本实现程序与脚本语言交互设计,可以动态地改变场景,还可以利用数据手套、虚拟头盔、三维鼠标、力反馈器等虚拟/增强现实可穿戴硬件设备进行游戏的交互设计。(12) 人工智能: 主要体现在X3D具有感知功能上,利用动态感知和传感器节点实现用户与场景和造型之间的智能动态交互感知效果。本书使读者了解计算机在软件开发和编程方面如何利用目前国际上的开发工具和手段开发设计互动游戏。本书全面、详细地阐述了X3D的语法结构、数据结构定义、概貌(profile)、组件(component)、等级(level)、节点(Node)、域(Field)等,突出语法定义中每个“节点”中域的域值描述,并结合具体的实例源程序深入浅出地进行引导和讲解,激发读者的学习兴趣。为了使读者能够更快地掌握X3D互动游戏交互设计,本书配有大量的编程实例源程序,而且都在计算机上经过了严格的调试并通过,供读者参考。本书由张金钊编写,参与本书编写的还有张金镝教授以及深圳市鲸落新时尚网络科技有限公司的徐健经理。“知而获智,智达高远”,探索和开发获得未知领域知识,凝聚智慧高瞻远瞩才能有所突破和创新。“知识改变命运,教育成就未来”,只有不断地探索、学习和开发未知领域才能有所突破和创新,为人类的进步做出应有的贡献。“知识是有限的,而想象力是无限的”,想象力在发散思维的驱动下在浩瀚的宇宙空间中驰骋翱翔。希望广大读者在X3D虚拟游戏世界中充分发挥自己的想象力,实现您的全部梦想。由于时间仓促,编者水平有限,书中的缺点和不足在所难免,敬请读者批评指正。作者电子邮箱: zhzjza@21cn.com。编者2017年3月
PQ=(x1-x2)2 (y1-y2)2 (z1-z2)2
空间直线算法是由空间的两个平面相交产生的交线,即空间直线。如果两个相交的平面方程分别为A1x B1y C1z D1=0和A2x B2y C2z D2=0,那么空间直线上的任意点的坐标应同时满足这两个平面的方程,即空间直线算法满足方程组。该方程组称为空间直线的一般方程,即空间直线的算法。
A1x B1y C1z D1=0
A2x B2y C2z D2=0
通过空间中一个直线的平面有无限多个,只要在这无限多个平面中任意选取两个,把这两个平面方程联合起来,所形成的方程组就是空间直线的一般方程。如果一个向量平行于一条直线,这个向量就称为这条直线的方向向量。直线上的任一向量都平行于该直线的方向向量。已知过空间一点可画一条直线平行于一已知直线,当直线上的一点M0(x0,y0,z0)和它的一方向向量s={m,n,p}为已知时,直线的方程就完全确定。设点M(x,y,z)是直线上的任一点,那么向量M0M与直线的方向向量s平行,两个向量的对应坐标成比例。M0M={x-x0,y-y0,z-z0},s={m,n,p},得空间直线点向式方程:
x-x0m=y-y0n=z-z0p
空间直线上点的坐标为(x,y,z),直线的任一方向向量s的坐标(m,n,p)称为这条直线的一组方向数。空间直线上点的坐标(x,y,z)还可以用另一个变量t(称为参数)的函数来表示,则:
x=x0 mty=y0 ntz=z0 pt
这个方程组被称为空间直线的参数方程,即空间直线的参数方程算法。5.1.2X3D互动游戏空间平面算法分析空间平面算法分析涵盖空间平面点法式方程、平面的一般方程以及平面的截距式方程。如果一向量垂直于一个平面,这个向量就称为该平面的法线向量,平面上的任一向量均与该平面的法线向量垂直。已知过空间一点可以画而且只能画一平面垂直于一已知直线,当平面上的一点M0(x0,y0,z0)和它的一个法线向量n={A,B,C}已知时,平面的方程就确定了。设M(x,y,z)是平面上的任一点,那么向量M0M必与平面的法线向量n垂直,即它们的数量积等于零。n·M0M=0由于n={A,B,C},M0M={x-x0,y-y0,z-z0},则有:
A(x-x0) B(y-y0) C(z-z0)=0
这就是平面上任一点M的坐标(x、y、z)所满足的方程,这样的方程称为平面方程。由于该方程是由平面上的一点M0(x0,y0,z0)以及它的一个法线向量n={A,B,C}来确定的,所以把该方程称为点法式方程。因为任一平面都可以用它上面的一点及法线向量来确定,所以任何一个平面都可以用三元一次方程来表示。设有以下三元一次方程:
Ax By Cz D=0
任取满足该方程的一组数(x0,y0,z0),即Ax0 By0 Cz0 D = 0,把上述两个等式相减得方程形式,还原为A(x-x0) B(y-y0) C(z-z0)=0。由此可知,任一三元一次方程的图形总是一个平面,该方程称为空间平面的一般方程算法。其中x、y、z的系数就是该平面的一个法线向量n的坐标,即n={A,B,C}。一般情况下,如果一个平面与X、Y、Z三轴分别交于Px(a,0,0)、Py(0,b,0)、Pz(0,0,c)三点,那么该平面的方程如下:
xa yb zc=1
这个方程称为平面的截距式方程,a、b、c分别称为平面在X、Y、Z轴上的截距。5.1.3X3D互动游戏空间曲面算法分析空间曲面算法分析是针对复杂曲面进行设计的,在空间解析几何中,曲面的概念是把任何曲面看作点的几何轨迹。在这种情况下,假设曲面S与三元方程有以下关系: 曲面S上任一点的坐标都满足该方程; 不在曲面S上的点的坐标都不满足该方程。
F(x,y,z)=0
那么该方程就称为曲面S的方程,曲面S就称为该方程的图形。例如,设球心在点M0(x0,y0,z0),半径为R的球面方程为(x-x0)2 (y-y0)2 (z-z0)2=R2。如果球心在原点,那么x0=y0=z0= 0,从而球面方程为x2 y2 z2=R2。那么方程x2 y2 z2-2x 4y=0表示怎样的曲面?经过配方,原方程变为(x-1)2 (y 2)2 z2=5,即原方程表示球心在点M0(1,-2,0)、半径为R2=5的球面。5.1.4X3D互动游戏Extrusion算法分析在X3D互动游戏文件中,Extrusion挤出造型节点用于创建挤出造型,创建挤出造型过程类似于工业生产制造中一种加工材料的流体通过一个金属板的模型孔,按照模型孔的设计被挤压成为一个新的造型,这个过程就是挤出。例如铁丝就是铁水通过挤压模型挤出来的。Extrusion挤出造型节点可视为更具变化的Cylinder圆柱体节点。Extrusion挤出造型节点算法分析主要由crossSection域和spine域的域值设计决定。crossSection域控制断面形状,是一系列的二维轮廓线,可以组成圆形、正方形、三角形、菱形以及多边形等,如图51所示。
图51常见的几种断面(XZ)形状
spine域定义了一系列的三维路径,crossSection域定义的断面的几何中心沿着spine域路径创建造型。spine域定义的路径可以是一条直线路径、曲线路径、螺旋线路径或封闭路径等,如图52所示。
图52断面几何中心路径变化图
5.2X3D互动游戏高级建模语法剖析X3D互动游戏高级建模语法剖析主要针对PointSet、IndexedLineSet、IndexedFaceSet、ElevationGrid、Extrusion节点的语法进行定义、分析和设计。1. PointSet点节点PointSet点节点设计是用来生成几何点造型的,并为其定位、着色和创建复杂的造型。PointSet点节点通常作为Shape模型节点中的geometry子节点。PointSet点节点包含了Color和Coordinate子节点,以再现一系列三维色点。Color值或Material emissiveColor 值可以指定画线或画点的颜色,用户可以使用和背景不同的Color 值或Material emissiveColor 值。在增加 geometry或 Appearance节点之前应先插入一个Shape节点。在浏览器处理此场景内容时可以用符合类型定义的原型 ProtoInstance来代替。PointSet点节点语法定义了一个用于确定点的属性名和域值,利用PointSet点节点的域名、域值、域的数据类型以及事件的存储/访问权限的定义来创建一个效果更加理想的三维立体空间点造型。利用PointSet点节点中的Color 和Coordinate子节点等参数创建X3D三维立体空间点造型。PointSet点节点表示一个几何点节点,可以创建一个三维立体空间点造型,根据开发与设计需求设置空间物体点的坐标和点的颜色来确定空间中的点。用户还可以利用Appearance外观和Material材料节点来描述PointSet点节点的纹理材质、颜色、发光效果、明暗以及透明度等。PointSet点节点的语法定义如下:
DEFID
USE IDREF
containerField geometry
*ColorNULLSFNode子节点
*CoordinateNULLSFNode子节点
class
/>PointSet点节点设计包含域名、域值、域数据类型以及存储/访问类型等,节点中的数据内容(架构)包含在一对尖括号中,用一对表示。域数据类型描述SFNode域,含有一个单节点。事件的存储/访问类型描述表示域(属性)的存储/访问类型,包括inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)以及inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。PointSet节点包含DEF、USE、Color、Coordinate、containerField以及class域等。其中*表示子节点。 containerField域: 表示容器域是field域标签的前缀,表示了子节点和父节点的关系。该容器域的名称为geometry,包含几何节点,例如geometry Box、children Group、proxy Shape。containerField属性只有在X3D场景用XML编码时才使用。 class域: 用空格分开的类的列表,保留给XML样式表使用,只有X3D场景用XML编码时才支持class属性。 DEF: 为节点定义一个名字,给该节点定义的ID,在其他节点中就可以引用这个节点。在用DEF为节点命名时,使用有意义的描述性的名称可以规范文件,以提高X3D文件的可读性。该属性是可选项。 USE: 用来引用DEF定义的节点ID,即引用DEF定义的节点名字,同时忽略其他的属性和子对象。注意是使用USE引用其他的节点对象而不是复制节点,可以提高性能和编码的效率。该属性是可选项。2. IndexedLineSet线节点IndexedLineSet线节点是一个三维立体线几何节点,该节点可以包括Color节点和Coordinate节点。Color 值或Material emissiveColor 值可以指定画线或画点的颜色。注意,线不受光照的影响,不能做贴图,它们不做碰撞检测。用户可以使用和背景不同的Color值或Material emissiveColor值。如果用原来给IndexedFaceSet定义的Coordinate points编写,index值需要循环到初始顶点,以使每个多边形的轮廓闭合。在增加 geometry或 Appearance节点之前应先插入一个Shape节点。在浏览器处理此场景内容时可以用符合类型定义的原型 ProtoInstance来代替。IndexedLineSet线节点是使用线来构造空间造型。X3D文件中的线是虚拟世界中两个端点之间的直线。如果想确定一条直线,就必须指定这条线的起点和终点,剩下的事由X3D浏览器解决。同样,用户也可以在X3D中创建折线,多个直线构成角度并在端点连接起来就成了折线。浏览器是按点的顺序来连接直线的,在列表前面的点先进行连接。IndexedLineSet线节点是将许多线集合在一起,并给每一条线一个索引(Index)。将索引1的点坐标和索引2的点坐标相连,将索引2的点坐标与索引3的点坐标相连,以此类推,就形成了一个空间折线。IndexedLineSet节点创建有关线的立体几何造型,包括直线和折线,该节点也常作为Shape模型节点中的geometry子节点。IndexedLineSet线节点指定了一个几何线节点,可以创建一个三维立体空间线造型,根据开发与设计需求设置空间物体线的坐标和线的颜色来确定空间的线。用户还可以利用Appearance外观和Material材料节点来描述IndexedLineSet线节点的纹理材质、颜色、发光效果、明暗以及透明度等。IndexedLineSet线节点语法定义了一个用于确定线的属性名和域值,利用IndexedLineSet线节点的域名、域值、域的数据类型以及事件的存储/访问权限的定义来创建一个效果更加理想的三维立体空间线造型。利用IndexedLineSet线节点中的coordIndex、colorPerVertex、colorIndex、set_coordIndex、set_colorIndex域等参数可以创建X3D三维立体空间线造型。IndexedLineSet线节点的语法定义如下:
DEFID
USE IDREF
coordIndexMFInt32initializeOnly
colorPerVertextrueSFBoolinitializeOnly
colorIndexMFInt32initializeOnly
set_coordIndexMFInt32inputOnly
set_colorIndexMFInt32initializeOnly
containerField geometry
*ColorNULLSFNode子节点
*CoordinateNULLSFNode子节点
class
/>IndexedLineSet线节点包含域名、域值、域数据类型以及存储/访问类型等,节点中的数据内容(架构)包含在一对尖括号中,用一对表示。域数据类型描述MFInt32域是一个多值含有32位的整数; SFBool域是一个单值布尔量,取值范围为[true | false]; SFNode域含有一个单节点。事件的存储/访问类型描述表示域(属性)的存储/访问类型,包括inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)以及inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。IndexedLineSet线节点包含DEF、USE、coordIndex、colorPerVertex、colorIndex、set_coordIndex、set_colorIndex、Color、Coordinate、containerField以及class域等。其中*表示子节点。 coordIndex域: 指定了按照顺序以坐标索引来使用Coordinates节点提供坐标。编号的起点为0,在一组设置间可以使用逗号分隔,以便于用户阅读代码,使用-1来分隔每一组线。如果渲染的Coordinate point点集原来是定义用在IndexedFaceSet上,索引值可能需要重复每个起点的值以封闭多边形。 colorPerVertex域: 指定了一个Color 节点被应用于每个顶点上(true)还是每个多边形上(false),默认值为true。 colorIndex域: 指定了按照顺序以索引来使用颜色。如果渲染的Coordinate point点集原来是定义用在IndexedFaceSet上,索引值可能需要重复每个起点的值以封闭多边形。 set_coordIndex域: 指定了按照顺序以坐标索引来使用Coordinates节点提供坐标。编号的起点为0,在一组设置间可以使用逗号分隔,以便于用户阅读代码,使用-1来分隔不同的多边形索引。 set_colorIndex域: 指定了按照顺序以索引来使用颜色。 containerField域: 表示容器域是field域标签的前缀,表示了子节点和父节点的关系。该容器域的名称为geometry,包含几何节点,例如geometry Box、children Group、proxy Shape。containerField属性只有在X3D场景用XML编码时才使用。 class域: 用空格分开的类的列表,保留给XML样式表使用,只有X3D场景用XML编码时才支持class属性。 DEF: 为节点定义一个名字,给该节点定义的ID,在其他节点中就可以引用这个节点。在用DEF为节点命名时使用有意义的描述性的名称可以规范文件,以提高X3D文件的可读性。该属性是可选项。 USE: 用来引用DEF定义的节点ID,即引用DEF定义的节点名字,同时忽略其他的属性和子对象。注意是使用USE引用其他的节点对象而不是复制节点,可以提高性能和编码的效率。该属性是可选项。3. IndexedFaceSet面节点IndexedFaceSet面节点是一个三维立体几何面节点,表示一个由一组顶点构建的一系列平面多边形形成的3D立体造型,该节点可以包含Color、Coordinate、Normal、TextureCoordinate节点。在增加 geometry或Appearance节点之前应先插入一个Shape节点。在浏览器处理此场景内容时可以用符合类型定义的原型 ProtoInstance来代替。IndexedFaceSet面节点创建一个由面组成的立体几何造型,该节点也常作为Shape模型节点中的geometry子节点。在X3D文件中创建面是通过IndexedFaceSet 节点来实现的,创建立体几何造型也可组成实体模型并对其进行着色。IndexedFaceSet节点通常作为造型节点的geometry域的值。IndexedFaceSet面节点语法定义了一个用于确定面的属性名和域值,利用IndexedFaceSet面节点的域名、域值、域的数据类型以及事件的存储/访问权限的定义来创建一个效果更加理想的三维立体空间面造型。用户可以利用IndexedFaceSet面节点中的coordIndex、colorPerVertex、colorIndex、set_coordIndex、set_colorIndex域等参数创建X3D三维立体空间面造型。IndexedFaceSet面节点定义了一个几何面节点,用于创建一个三维立体空间面造型,根据开发与设计需求设置空间物体面的点坐标和线的颜色来确定空间的面。用户还可以利用Appearance外观和Material材料节点来描述IndexedFaceSet面节点的纹理材质、颜色、发光效果、明暗以及透明度等。IndexedFaceSet面节点的语法定义如下:
评论
还没有评论。