当前位置:首页 > 商业/管理/HR > 管理学资料 > ch6_1 VRML三维立体造型
第六章VRML三维立体造型主要内容三维立体造型是VRML中最重要、最基础的工作。造型节点shape可以定义造型的几何形状、尺寸、颜色、材质和纹理等外观特征。学会shape造型节点,就掌握了VRML设计的基本内容。6.1VRML造型节点-shape6.2简单造型节点6.3外观设计-Appearance节点6.4复杂造型节点6.5文本造型2010/10/25MondayVMUSST吴恩启26.1Shape节点Shape节点提供了几种能直接用来创建虚拟场景的标准造型,包括自然界中最基本的几何造型,如正方体、球体、圆锥体、圆柱体。而这些几何造型由其本身的几何尺寸和外观共同控制。Shape节点定义了一个VRML造型所具有的几何尺寸和外观,这些特征定义了VRML虚拟空间中创建和放置在空间中的造型。所有的VRML造型均使用shape节点创建2010/10/25MondayVMUSST吴恩启36.1Shape节点shape节点的语法定义:Shape{AppearanceNULL#exposedFieldSFNodeGeometryNULL#exposedFieldSFNode}2010/10/25MondayVMUSST吴恩启46.1Shape节点Appearance域定义立体造型的外观特征,域值可以选择为空域NULL或appearance{}节点。若选择NULL,表示立体造型外观为白色无光照效果若选择appearance{}节点,可通过域值和子节点迚一步设定材质、色彩、纹理等外观属性Geometry域定义立体造型的几何形状,域值可以选择NULL或10种造型节点,包括4种简单几何造型节点(box,sphere,cone,cylinder)、5种复杂几何造型节点(pointSet,IndexedLineSet,IndexedFaceSet,Extrusion,ElevationGrid)、1种文本造型节点(Text)。默认值NULL,表示没有创建任何几何立体造型节点2010/10/25MondayVMUSST吴恩启56.2简单造型节点Box节点Sphere节点Cone节点Cylinder节点2010/10/25MondayVMUSST吴恩启6Box节点用来创建长方体的原始几何造型,一般作为Shape节点中geometry域的域值。语法格式如下:Box{size6.03.02.0#FieldSFVec3f}size域的域值必须大于0.0,缺省值为2.02.02.0例题:6-1长方体建模2010/10/25MondayVMUSST吴恩启7Sphere节点Sphere节点描述了一个球体的几何造型其节点语法格式如下:Sphere{radius1.0#fieldSFFloat}其域值设定了以坐标原点为中心的三维球体的半径大小。默认值为1.0例:6-2球体建模2010/10/25MondayVMUSST吴恩启8cone节点cone节点定义了一个圆锥体的原始造型语法格式:Cone{bottomRadius1.0#fieldSFFloatheight2.0#fieldSFFloalsideTRUE#fieldSFBoolbottomTRUE#fieldSFBoo1}例:6-3圆锥体,6-4无底圆锥体问题:圆锥底面中心坐标在哪儿?2010/10/25MondayVMUSST吴恩启9Cylinder节点Cylinder节点定义了一个圆柱的原始造型。其语法定义如下:Cylinder{radius1.0#fieldSFFIoatheight2.0#fieldSFFloatbottomTRUE#fieldSFBoolsideTRUE#fleldSFBooltopTRUE#fieldSFBool}例:6-5圆柱体2010/10/25MondayVMUSST吴恩启106.3Appearance节点Appearance节点指定物体造型的外观属性,语法格式:Appearance{materialNULL#explosedFieldSFNode#定义造型外观的材料属性textureNULL#explosedFieldSFNode#应用于造型的纹理影像textureTransformNULL#explosedFieldSFNode#纹理映射时所用的纹理映射坐标变换}2010/10/25MondayVMUSST吴恩启11Material节点Material{diffuseColor0.80.80.8#explosedFieldSFColor#材料的漫反射颜色,决定造型的颜色ambientIntensity0.2#explosedFieldSFFloat#有多少环境光被该表面反射,乘diffuseColor计算specularColor000#设定物体镜面反射光线的颜色emissiveColor000#发光物体产生的光的颜色shininess0.2#explosedFieldSFFloat#设定物体表面的亮度transparancy0#explosedFieldSFFloat#设定物体的透明度}2010/10/25MondayVMUSST吴恩启12Material节点例:6-6红色球2010/10/25MondayVMUSST吴恩启13Material节点设计几个例子:6-7红、绿、蓝、黄、蓝绿立方体,6-6红色球设定反射颜色6-8丌同材质的圆柱体;6-9透明度丌同的正方体2010/10/25MondayVMUSST吴恩启14Texture节点-hereTexture域的域值指定了一个应用于造型的纹理映像。纹理映射是一种用来加入细节的技术,其通过将纹理图根据几何体的外形,按一定规则映射到物体的表面。使用纹理能使物体更具有真实感,产生如木纹、大理石、水面等效果。VRML提供有三种纹理节点:Imagetexture图像纹理节点PixelTexture像素纹理节点MovieTexture电影纹理节点针对纹理还可利用TextureTransfonn迚行平移、缩放、旋转等变换。在VRML中,能用来作创建纹理图的格式有JPEG(.jpg),GIF(.gif),PNG(.png)和MPEG(.mpg)。2010/10/25MondayVMUSST吴恩启15Texture节点纹理坐标-----一个重要的概念由一个二维平面坐标系(ST)定义,S表示横轴,T表示纵轴纹理图的左下角像素位于纹理坐标系的原点(0,0),右上角像素位于(1,1)。由(0,0)(1,0)(1,1)(0,1)所围成的矩形就是纹理图默认的原始区域无论纹理图实际尺寸大小,如何缩放,纹理图的左下角总是位于纹理坐标系的(0,0),右上角总是位于(1,1)。若使用纹理重复,相当于把原始区域的纹理图进行copy并逐次拼接,每次copy使S轴或T轴的纹理坐标加1,负向则减1.2010/10/25MondayVMUSST吴恩启16Imagetexture节点ImageTexture节点是图像纹理节点,其节点语法如下:ImageTexture{url[]#exposedFieldMFStringrepeatSTRUE#fieldSFBoolrepeatTTRUE#fieldSFBool}url域值所指定的必须是JPEG,GIF或PNG文件格式的文件。该图像文件被读入,作为纹理映射造型。repeatS:图像纹理是否沿S方向(水平)重复粘贴repeatT:图像纹理是否沿T方向(垂直)重复粘贴如果不使用textureTransform对纹理图进行缩放处理,浏览器会自动调整纹理图大小,使其恰好填充好造型表面。只有需要缩小纹理图,使其小于造型表面时,才需设置repeatS,repeatT2010/10/25MondayVMUSST吴恩启17Imagetexture节点例:6-10imagetexture6-11造型大小不同的图像纹理6-12简单造型的图像纹理2010/10/25MondayVMUSST吴恩启18PixelTexture节点pixelTexture节点是像素纹理节点,没有url域,丌必调用外部纹理文件,而是利用image域直接生成纹理。其节点语法如下:PixelTexture{Image000#exposedFieldSFImagerepeatSTRUE#fieldSFBoolrepeatTTRUE#fieldSFBool}2010/10/25MondayVMUSST吴恩启19PixelTexture节点image域的值指定了用来对造型进行纹理映射的纹理映像的大小和像素值。该域值的前两个值必须为整数,分别表示以像素为单位的映像宽度、映像的高度,每一个像素的字节数。第三个值可在0,1,2,3,4这几个数中取值,其中:•0表示静止造型纹理,•1表示灰度,•2表示alpha灰度,•3表示RGB颜色,•4表示alphaRGB。alpha表示像素的透明程度。2010/10/25MondayVMUSST吴恩启20PixelTexture节点例:6-13pixeltexture2010/10/25MondayVMUSST吴恩启21MovieTexture节点MovieTexture节点是电影纹理MovieTexture{url[]#exposedFieldMFStringLoopFALSE#exposedFieldSFBoolspeedl.0#exposedFieldSFFloatstartTime0#exposedFieldSFTimestopTime0#exposedFieldSFTimerePea1STRUE#fieldSFBoolrepeatTTRUE#fieldSFBoolduration_changed#eventoutSFTime电影播放持续时间,sisActive#eveltoutSFBool}2010/10/25MondayVMUSST吴恩启22MovieTexture节点例:6-14电影纹理2010/10/25MondayVMUSST吴恩启23textureTransform节点textTransform域的域值指定了在纹理映射到一个造型时所使用的二维纹理坐标变换。相对原始纹理坐标系建立了一个新的纹理坐标系统TextureTransform{translation0.00.0#exposedFeildSFVec2frotation0.0#exposedFeildSFFloatscale1.01.0#exposedFeildSFVec2fcenter0.00.0#exposedFeildSFVec2f}translation域的值指定了新的纹理坐标系的原点和原始纹理坐标系原点在S和T方向上的距离。该域值的第一个值为S方向的距离,第二个值为T方向的距离Scale:纹理坐标系的缩放系数。Center:坐标系原点2010/10/25MondayVMUSST吴恩启24textureTransform节点例:6-15纹理坐标旋转变换2010/10/25MondayVMUSST吴恩启25textureTransform节点例:6-16纹理坐标缩放变换2010/10/25MondayVMUSST吴恩启26上机作业11.使用简单造型节点,创建一个边长1.5的正方体,中间穿过一个半径为0.3,高度为6的圆柱体造型,并为正方体和圆柱体添加丌同颜色和材质2.创造四个丌同的几何造型,分别添加图像纹理,像素纹理,电影纹理2010/10/25MondayVMUSST吴恩启27迚入下一部分第六章VRML三维立体造型----复杂造型节点2010/10/25MondayVMUSST吴恩启28
本文标题:ch6_1 VRML三维立体造型
链接地址:https://www.777doc.com/doc-4146151 .html