第三讲 VRML三维模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)如果要设置为appearance Appearance{material Material{ }}, 则表示包含一个默认材质节点,几何体采取默认材质的光照,呈现 浅灰色造型,有亮度比。 举例:
造型的外观设计
Material材质节点:设置有关材质的属性,可以创建出金属、玻璃 、石头等属性。 Material节点 语法 Material { diffuseColor 0.8 0.8 0.8 #exposedField SFColor ambientIntensify 0.2 #exposedField SFFlot specularColor 0 0 0 # exposedField SFColor emissiveColor 0 0 0 # exposedField SFColor shininess 0.2 #exposedField SFFlost transparency 0 #exposedField SFFlot }
appearance 域 定义立体造型的外观特征,值可为空或 Appearance节点; 当为空,表示立体造型外观为白色无光照效 果; 当为Appearance节点时,可以为造型设置材 质、色彩、纹理等外观属性。
基本的三维立体造型
geometryBaidu Nhomakorabea 定义立体造型的几何形状,域值可以选择为空或十种造型节点:
造型的空间变换Transform
VRML中创建的立体造型都是以默认坐标系的原 点为中心进行的,当创建多个时,会重叠在一 起,而且不可能多个模型都在空间的同一个位 置,因而需要进行相关的变换。 Transform坐标变换节点用于创建一个新的坐标 系,通过对坐标系的平移、旋转、缩放操作, 实现对立体造型位置、角度、缩放比例的改变。
造型的空间变换
children域(数组)
设定参与坐标变换的所有子节点; 默认值为空,表示不含任何节点;
translation域 (三维)
变换后,新坐标系的原点与原始坐标系原点在XYZ方 向上的距离。 默认值为0 0 0 ,与原始坐标系重合,没有偏移。
造型的空间变换
rotation域 (4维)
四种简单的几何造型节点:
Box立方体节点; Sphere球体节点; Cone圆锥体节点; Cylinder圆柱体节点; PointSet点集节点 IndexedLineSet线集节点 IndexedFaceSet面集节点 Extrusion挤出造型节点 ElevationGrid网格标高造型节点
geometry域的四种简单的造型节点
3.Cone立方体节点 创建以原点为中心,以Y轴为对称轴的圆锥体几何造型 格式: 节点名称 域名称 域值 #域值类型 Cone{ bottomRadius 1.0 # SFFloat height 2.0 # SFFloat side TRUE # SFBool bottom TRUE # SFBool } bottomRadius设置了圆锥体底面半径尺寸 height设定圆锥体的高度 side是否创建圆锥体的锥面,默认值为TRUE bottom是否创建圆锥体的底面,默认值为TRUE 举例: 3-3cone.wrl
0 0
30 0.524
45 60 90 120 135 150 180 0.785 1.047 1.571 2.094 2.356 2.618 3.141
默认值为0.0 0.0 1.0 0.0,表示新坐标系以Z轴为旋转轴,但不发 生旋转。
造型的空间变换
scale域 (三维)
设定新坐标系在 XYZ方向上的缩放系数。 默认值为1.0 1.0 1.0,表示在XYZ方向上均无 缩放。
设定新坐标系与原始坐标系进行旋转的旋转轴和旋转角度。
前三个值,表示在原坐标系中的一点; 旋转轴为原坐标系的原点与前三个值表示的点的连线; 旋转轴的方向为原坐标系的原点指向与前三个值表示的点; 旋转方向,按右手法则,由第四个值的正、负来确定旋转方向; 旋转角度由第四个值来确定,按照弧度值来确定。
五种复杂几何造型节点:
一种文本造型节点:
Text文本造型节点
本节课的主要内容: appearance域 geometry域的四种简单的造型节点
geometry域的四种简单的造型节点
1.Box立方体节点 用来创建以坐标原点为中心的正方体、长方体几何造型。 格式: 节点名称 域名称 域值 #域值类型 Box{ size 2.0 2.0 2.0 #SFVce3f } size域的域值设定了三维立方体几何造型的尺寸大小,默认值为 2.0 2.0 2.0,是一个以坐标原点为中心,长、宽、高为2.0单位的立 方几何造型。 举例 3-1box.wrl
geometry域的四种简单的造型节点
4.Cylinder圆柱体节点 创建以坐标原点为中心,以Y轴为对称轴的圆柱体几何造型 格式: 节点名称 域名称 域值 #域值类型 Cylinder{ radius 1.0 #SFFloat height 2.0 #SFFloat side TRUE # SFBool bottom TRUE # SFBool top TRUE # SFBool } top是否创建圆柱体的顶面,默认值为TRUE 举例:3-4cylinder.wrl
造型的外观设计
specularColor域
设定镜面反射光的颜色。 入射角等于反射角是镜面反射的基本原理。 设置了镜面反射,会因观察角度变化感受到强弱不 同的反射效果。 默认值为0 0 0 ,反射光为黑色。
emmisiveColor域
设定发光物体产生光的颜色。 默认值为0 0 0,表示不发光。
第三章 VRML三维立体造型
大纲
创建三维立体造型 造型的空间变换
基本的三维立体造型
在VRML中,创建三维立体造型是最重要、最基础的工作; Shape节点是VRML核心节点;学会了Shape造型节点,就掌握了 vrml设计的基本内容。 Shape节点定义了立体造型的几何形状、尺寸、色彩、材质、纹 理等外观特征; 语法格式: Shape{
geometry域的四种简单的造型节点
2.Sphere球体节点 创建以坐标原点为中心的球体几何造型; 格式: 节点名称 域名称 域值 #域值类型 Sphere{ radius 2.0 #SFFloat }
radius域的域值表示球体的半径,默认值为1.0单位;
举例:3-2 sphere.wrl
自由练习
appearance域
2.texture域的域值用来设定立体造型表面静态或者动态 的纹理贴图。该域包括三种不同类型的纹理节点: ImageTexture图像纹理节点、MovieTexture电影纹理节 点和PixelTexture像素纹理节点。默认值为空,表示无 纹理贴图。(后面章节介绍) 3.textureTransform域的域值用于对使用的纹理贴图进 行坐标变换。该域包含一个TextureTransform纹理坐标 变换节点,对texture域中纹理节点指定的纹理贴图进行 裁剪、旋转设置,使相同的纹理贴图产生不同的纹理效 果。(后面章节介绍)
appearance域
Appearance节点 语法格式: Appearance{ material NULL #exposedField SFNode texture NULL #exposedField SFNode textureTransform NULL #exposedField SFNode } 1. material域用于设定立体造型外观的材质属性,包括颜色、透明 度、发光度、反光度等。域值包含一个Material材质节点或者取 NULL空值,造型外观材质属性是通过Material材质节点来设置的。 (1)该域值的默认值为空,即appearance Appearance { }或者 appearance Appearance{material NULL},表示几何体本身为发 白光的材质,造型为纯白色,无亮度对比。
Shape空间造型模型节点:
appearance NULL #exposedField SFNode 外观节点 geometry NULL #exposedField SFNode 几何节点
} exposedField SFNode 表示为暴露域,其域值是节点。
基本的三维立体造型
造型的空间变换
Transform变换节点用于创建一个或多个不同于默认(原始)坐标系的新 坐标系。 Transform结点的语法
Transform{ children [] #exposedField MFNode 参与变换的造型节点集 translation 0 0 0 #exposedField SFVec3f 新坐标系的平移值 rotation 0 0 1 0 #exposedField SFRotation 新坐标系的旋转 scale 111 #exposedField SFVec3f 新坐标系的缩放系数 scaleOrientation 0 0 1 0 #exposedField SFRotation bboxCenter 000 #SFVec3f bboxSize -1 -1 -1 #SFVec3f center 000 #exposedField SFVec3f addChildren #eventIn MFNode removeChildren #eventIn MFNode }
造型的空间变换
Center域 设定了一个三维坐标点来指定一个适当的空间旋转中心。 默认值是0.0 0.0 0.0,表示变换的中心点为原始坐标系的 原点。 注意:center域是一个旋转和缩放时公用的域值。
造型的空间变换
请记住:在VRML文件中规定了一个固定的坐标系变化 顺序。当Transform节点中指定了translation、rotation、 scale、scaleOrientation、center域等多个操作时,无 论编辑程序中各个域值的排列顺序如何,浏览器默认执 行顺序为 先缩放 再旋转 后平移
造型的外观设计
diffuseColor域
设定物体的漫反射颜色:当光照射在物体表面时,物体表面向 各个方向反射的基本色彩。 域值由三个浮点值组成,分别代表红、绿、蓝三原色(RGB) 。 默认值为0.8 0.8 0.8,浅灰色。
ambientIntensity域
设定有多少环境光线被物体表面反射。 环境光各向同性,以diffuseColor*ambientIntensity来计算。 默认值为0.2。
造型的空间变换
scaleOrientation域 (4维) 用于设定旋转轴和旋转角度。 scaleOrientation域的域值类型与与rotation域的域值类型相 同,即scaleOrientation域值制定的是一个旋转轴、旋转方向 和旋转角度。与rotation域不同之处在于scaleOrientation域 并不能真正地旋转坐标系。 即: 新坐标系的旋转是为了方便缩放操作,先按照旋转后的新 坐标系进行缩放,然后再将坐标系旋转回原方位 默认值是0.0 0.0 1.0 0.0,表示旋转轴为Z轴,缩放操作前坐标 系无旋转。
造型的外观设计
shininess域
设定物体表面的亮度。 取值范围从漫反射表面的0到高度抛光表面的1;
较小的取值表示像纤维材质; 较大的取值表示像金属材质。
默认值为 0.2。
Transparency域
设定物体的透明度。 取值范围从不透明的0到完全透明的1。 默认值为0.0,表示不透明。