第四章图像的实时显示4.1简单三维模型绘制4.2复杂三维模型绘制与加载4.3三维模型的渲染开发环境编辑环境:运行vrmlpad.exe,sn号见:cdkey.txt。新建文件时:第一行自动出现#VRMLV2.0utf8此后输入关键字的第一个字母就能显示以该字母开始的关键字选项,可以继续输入其它字母,也可直接选取关键字。存文件时,指定扩展名为lyx,以便用Lyinux浏览器运行。调试和运行环境:运行LyinuxSetup.exe,用户名和密码见:蓝牛高级账户-1.txt。当不需与服务器连接时,可在弹出“登录”窗口后选“取消”按钮,不必输入用户名和密码。以后从编辑环境再启动运行时,先存盘,再用鼠标左键点住文件名,经过屏幕下方的Lyinux浏览器图标,再在浏览器中松开鼠标。为了从各个角度观看立体效果,在运行界面中,按鼠标右键,选中“自由视角”后,即可按住左键旋转视图。开发环境程序中出现system等Lyinux特有的节点时,程序文件的第一行必须是#LyinuxV1.1gb2312为了从各个角度观看立体效果,在运行界面中,按鼠标右键,选中“自由视角”后,即可按住左键旋转视图。可以按Shift+V来实现“自由视角”,但输入方式必须是英文状态。当运行时出现错误信息时,通过“查看”-“侧栏”-“输出”,可以看到在哪一行出错。在Vrmlpad编辑器中,可以通过“工具”-“选项”-“编辑器”,选中“显示行号”,则可快速找到出错行进行修改。物体的显示物体的显示效果由5个方面决定:造型、材质、纹理、光照、摄像机位置。造型:造型,指的是三维物体的几何形体。物体有体积,在三维空间中要占用一定的空间。材料:通俗的讲就是组成物体的材料和物体的质地。在3d虚拟世界里,材质表现为物体如何反射光线。如固有色、反射光线的颜色、自发光、透明度等。纹理:现实世界中充满了大量的视觉细节,这种视觉细节就叫纹理。将现实世界中的景物图片画到、或者映射到虚拟造型上——这就叫做纹理映射技术。纹理映射可以为建模节省大量的时间,不必再为大量的视觉细节生成模型。物体的显示光照:环境中各种光源对物体的显示效果都有影响。在3D虚拟场景中,要设定一个或多个光源,包括光源的类型、颜色、光照强度、位置等。摄像机位置:浏览一个场景,需要有摄像机的存在,在没有摄像机的情况下,浏览器会为场景安排一个默认的透视摄像机,将场景中的所有物体覆盖其中。这个摄像机的位置不是固定的,但方向和视角角度是固定的。在编写程序时,可以定制摄像机节点,设定摄像机的初始位置,在运行过程中可以通过相应值的变化改变摄像机的位置、角度等属性,从而改变浏览时的效果。4.1物体的显示坐标系:Lyinux引擎采用笛卡尔右手坐标系,在三维空间中,X轴的正方向朝右,Y轴的正方向朝上,Z轴的正方向朝向用户(浏览者)。这与3D建模软件3DSMax是不同的,Max中X轴的正方向朝右,Y轴的正方向背向用户,Z轴的正方向朝上。参见:《Lyinux开发基础教程(V1.0).pdf》第二章第三节Lyinux基本概念P18-19Lyinux浏览器中的计量单位P19-21Lyinux的数据类型和域P21-22域类型简单几何体组成的场景设计节点和语法,注意大小写之分Shape见P23-24Appearance见P24Material见P24-25Box,见P25(分析gloup1.lyx)CubeSphereCylinderConeGroup简单几何体组成的场景设计造型和组的应用见P33src/ch3/group2.lyx自己创建一个简单几何体的组合,各几何体采用不同的颜色。创建不同的坐标系Transform节点见P39坐标系的平移和旋转见P40、P43src/ch5/transform2.lyx自己创建多组简单几何体的组合,构成各种复杂模型。简单几何体组成的场景设计Transform节点见P39childre列出了所有子节点。translation230列出了新坐标系的原点。rotation0010.524由原点和指定点(前三位)组成旋转轴,第四位为旋转角度,逆时针旋转为正。scale322给出了X,Y,Z方向上的缩放系数。默认值为111。center0-0.150用于设定旋转的支点、缩放的中心点,为执行translation和rotation后得到的新坐标系中支点的坐标。分析Transform4.lyx和Translform4-test.lyx简单几何体组成的场景设计Separator节点见P55src/ch7/Separator.lyx除有Transform可实现的平移、旋转、缩放功能外,还可以设置相对独立的材质、颜色(Basecolor)、字体等。TransformSeparator节点见P58src/ch7/transformSeparator.lyx与Separator不同的是:设置的材质、颜色、字体等在节点外还起作用。简单几何体组成的场景设计编写一个程序,实现下图的简单图形组合,尺寸和角度自定,保证形状基本相同。3DMax2011安装安装源文件:F:\Tools\3DMax2011运行Autodesk_3ds_Max_2011_Simplified_Chinese_Win_32-64bit.part1.exe安装组件时需要输入序列号(Serialnumber):400-45454545,产品密钥(ProductKey):128C1。见文件“安装说明.txt”第一次运行时需要激活,激活步骤见文件“安装说明.txt”。1)在软件激活界面点击“激活”(Activate)按钮,然后选择“我具有Autodesk提供的激活码”2)运行注册机,从激活界面复制申请码(Requestcode)粘贴到注册机的Request栏中,点击Generate按钮生成激活码(Activation)3)点击注册机上的“MemPatch”按钮(非常重要)4)注册机中复制激活码粘贴到软件激活界面的输入框中,点击“下一步”(Next),完成激活。3DMax2011简介3dsMax2011的工作界面(P10-P31)加载文件“打开文件-选定.max文件的路径工作视图(P13-P14)视图控制区(P15-P24)选择对象(P25-P31)选定渲染器“渲染”-〉“渲染器”-“制定渲染器”-“产品级:”-〉选取“mentalray渲染器”渲染效果单独显示窗口3DMax2011简介创建象棋“标准基本体”-“圆柱图”视图控制区(P15-P24)选择对象(P25-P31)选定渲染器“渲染”-〉“渲染器”-“制定渲染器”-“产品级:”-〉选取“mentalray渲染器”渲染效果单独显示窗口3DMax2011简介制作象棋模型“创建”-〉“标准基本体”-“圆柱体”-鼠标放在坐标中心,按左键拉出适当大小的圆,抬左键,再按左键拉出高度。(1)“修改”-〉“修改器列表”-“拉伸”-拉伸值:-0.1。(2)如果图形上没有显示出边线,可以按F4,显示出来3DMax2011简介(3)在图形上点击右键,选择转换为---转换为可编辑多边形,然后在右上角的修改器列表里选择顶点。(4)在前视图里框选中间的几排点(F-前视图,P-透视图,T-顶视图)3DMax2011简介(5)在工具栏选择均匀缩放工具,将前视图修改为顶视图并进行放大操作,同时观察透视图里物体的比例。(6)再在前视图里框选中间两排的点,再选择缩放工具进行放大,同时观察比例。同时也可以调整模型高度,反复调整以达到合适的比例3DMax2011简介(7)目前这个模型是使用的初始参数,所以边上的环线只有4条,如果觉得边缘不够圆滑,可以在一开始建立模型的时候,增加高度分段和边数。(8)也可转换为可编辑多边形,然后在右上角的修改器列表里选择边。选择中间的一条边,按右边中间位置的“循环”,可马上选上中间一圈的所有的边,然后缩放。象棋的UV展和贴图的生成参考“象棋制作.avi”,制作效果如图。象棋的UV展和贴图的生成在3DMAX里选择导出文件,格式选择OBJ。然后打开UVlayout,点击Load,选择刚才保存的文件。左侧的Dir可以选择文件夹,然后右侧会显示出来那个文件夹里的文件。象棋的UV展和贴图的生成在操作区对模型的UV进行切割,把顶面和底面都切开。把鼠标悬停在要选择的边上,按C键就会看到边被选择上了(红色的是人为选择的,黄色的是程序智能延长的)。选择一圈之后按回车键,就能看到物体被切开了。底面也用同样方法切开。象棋的UV展和贴图的生成在侧边上选择一条线进行切开。把鼠标放在侧面的一条边上,按C健,选择好切口上所有的编后,按shift+S。象棋的UV展和贴图的生成将鼠标悬停在物体上,按D键送入展平区域。在左侧点击Display展开菜单,然后点选UV按钮。象棋的UV展和贴图的生成鼠标悬停在要展开的物体上,按shift+f键,展开UV,当没什么变化之后,按空格,然后等物体完全展开之后再按空格,如此依次将三部分都展开。象棋的UV展和贴图的生成空格+左键进行旋转,空格+中键进行移动,空格+右键进行缩放,将UV放在中间实线的红色框内。也可按中部的AutoFit自动产生红色框。象棋的UV展和贴图的生成在左侧点击Save按钮进行保存,可以在下面的目录里进行重命名,这样就相当于另存为,之后关闭UVlayout。象棋的UV展和贴图的生成将UV保存成图片。打开3DMAX,导入刚才保存的OBJ文件。象棋的UV展和贴图的生成将UV保存成图片。选择模型,在右侧的修改器列表里选择UVW展开,然后点击下面参数中的编辑按钮。象棋的UV展和贴图的生成将UV保存成图片。在弹出的编辑UVW窗口中可以看到刚才展开的UV,在菜单栏选择工具----渲染UV,之后设置宽度和高度为1024,点击渲染UV模版。象棋的UV展和贴图的生成将UV保存成图片。在弹出的窗口中点击左上角的保存图像,选择PNG格式,也可选择为JPG格式。制作贴图将图片用PS打开,在右侧双击图层,选择描边,大小1,位置内部,颜色红色。制作贴图导入扫描好的象棋的图片,在右侧拖动图层,放在UV层下方,调整图片大小,对其UV的边线。制作贴图在底面扫描图片中截取部分木纹,采用复制的方法(不要采用拉伸的方法,否则纹理较粗)同样放入PS,作为侧面的贴图,并且按UV调整大小。制作贴图隐藏UV层,然后保存图片新建图层,在菜单中点击选择----色彩范围,然后点击文字上的颜色,调整颜色容差,把文字清楚的显示出来,点击菜单栏编辑-----填充,选择黑色,然后把其他图层都隐藏。赋予物体贴图切换到3DMAX,点击工具栏的材质编辑器。点选一个标准材质球,然后点击赋予物体。赋予物体贴图点击下面的贴图选项,展开之后点击漫反射颜色后面的none按钮。赋予物体贴图在弹出的窗口中选择位图,然后选择第一次保存的jpg文件点击凹凸后面的none按钮,选择第二次保存的png图片,调整凹凸后面的数值到合适的状态渲染查看状态,可以看到顶面和侧边面颜色深浅度不够吻合,所以要在PS里调整贴图的颜色,然后在3DMAX里重新载入贴图。从3DMax导出模型在3DsMAX2009中文件-导出-保存类型为“VRML97(*.WRL)”,保存到:(设定目录,如D:\test,输入文件名abc,按保存)按保存键后,出现提示框,在下方“位图URL前缀”中使用前缀,“..\maps”,按“确定”,只生成文件abc.wrl,不生成贴图文件在test下建议子目录\maps,将MAX中的贴图文件(*.jpg)拷贝到test\maps中。将生成的abc.wrl也拷贝到test\maps中。在Lyinux中打开abc.wrl,将出现有贴图的三维场景。如果贴图有问题,也可人工添加语句:与material节点并列,加textureImageTexture{urlimages/迷彩.jpg}从3DMax导出模型另一种选择:按保存