




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
虚拟现实三维建模课程设计
——虚拟校园虚拟现实三维建模课程设计
——虚拟校园1目录摘要课程设计目的虚拟校园概念及建设目标功能展示数据来源关键技术小结目录摘要2系统设计架构图系统设计架构图3摘要为了在计算机中更好的表现现实的世界,让我们能够更加真实地在计算机世界中展现出现实世界的魅力,也为了让更多的人们看到我们在现实世界中不可能见到的场景,我们利用虚拟现实技术和可视化技术更好的实现了这一点。与此同时高校的数字化校园建设是一个涵盖范围很广的领域,其建设过程所需要解决的问题也相当复杂。本文针对华北水利水电大学的校园的具体情况,分析建设数字校园的目的,选择建设数字校园的关键技术及方法,提出数字校园应该具备那些基本功能,并详细讨论实现相关功能的过程和手段。摘要为了在计算机中更好的表现现实的世界,让我们能4课程设计开发目的我国高校信息系统建设始于20世纪80年代,当时主要是单机版应用,解决重点业务环节的电算化,替代高强度的手工劳动,如排课系统、账务管理系统、人员管理系统等。当前许多高校都在积极研究虚拟现实技术及其应用,并相继建起了虚拟现实与系统仿真的研究室,将科研成果迅速转化实用技术,如北京航天航空大学在分布式飞行模拟方面的应用;浙江大学在建筑方面进行虚拟规划、虚拟设计的应用;哈尔滨工业大学在人机交互方面的应用;清华大学对临场感的研究等都颇具特色。有的研究室甚至已经具备独立承接大型虚拟现实项目的实力。虚拟学习环境虚拟现实技术能够为学生提供生动、逼真的学习环境,如建造人体模型、电脑太空旅行、化合物分子结构显示等,在广泛的科目领域提供无限的虚拟体验,从而加速和巩固学生学习知识的过程。亲身去经历、亲身去感受比空洞抽象的说教更具说服力,主动地去交互与被动的灌输,有本质的差别。虚拟实验利用虚拟现实技术,可以建立各种虚拟实验室,如地理、物理、化学、生物实验室等等,拥有传统实验室难以比拟的优势。课程设计开发目的我国高校信息系统建设始于20世5第二章数字化校园的概念、建设目标2.1数字化校园的概念2.2数字化校园的建设目标2.2.1在教学方面2.2.2在科研方面2.2.3在管理方面2.2.4在公共服务体系方面2.2.5在学校社区服务方面第二章数字化校园的概念、建设目标2.1数字化校园的概念62.1数字化校园的概念传统上说,数字化校园是在传统校园的基础上,利用先进的信息化手段和工具,以统一的管理和安全策略,将校园各项资源数字化,形成的一个数字空间,使得现实校园在空间和时间上延伸开来。包括网络基础设施、数据中心、网络基本服务系统、一卡通系统、电话系统、有线电视系统、广播系统、会议系统、计算中心、数字图书馆、数字多媒体教室、数字语音室、电子公告屏、安防系统、楼宇控制(门禁)系统、应用软件系统等方面。当然这只是传统意义上的概念,当我们结合虚拟现实时又会产生出另外一种意义的数字校园,也就是我们在课程设计中需要完成的三维数字化校园。2.1数字化校园的概念传统上说,数字化校园是在72.2数字化校园的建设目标2.2.1在教学方面充分利用网络技术、多媒体技术等实现高质量教学资源、信息资源和智力资源的共享与传播,促进高水平的师生互动,促进主动式、协作式、研究型的学习,从而形成开放的、高效的、个性化的教学模式,更好地培养学生的分析问题能力、解决问题能力和创新能力;2.2数字化校园的建设目标2.2.1在教学方面82.2.2在科研方面充分利用校园网、互联网,促进科研资源和设备的共享,加快科研信息传播,促进国际性学术交流,开展网上合作研究,并且利用网络促进最新科研成果向教学领域的转化,以及科研成果的产业化和市场化,从而大大提高科研的创新水平和辐射力;2.2.2在科研方面充分利用校园网、互联网,促进科研资源和92.2.3在管理方面充分利用现代信息技术实现职能管理的自动化、信息化,实现各部门之间的数据共享与协调,提高决策的科学性和民主性,提高管理的质量和效率,形成充满活力的现代新型管理体制;2.2.3在管理方面充分利用现代信息技术实现职能管理的自102.2.4在公共服务体系方面建立覆盖全校的、主干千兆的高速网络,提高面向全校师生的基本网络服务、正版软件服务、技术支持服务等等;建立高质量的数字化的图书馆、多媒体教室、语音室、会议室等;在校园内建立统一的电子身份认证系统,从而为学校高水平的教学、科研和管理等提供强有力的支撑;2.2.4在公共服务体系方面建立覆盖全校的、主干千兆的112.2.5在学校社区服务方面
结合后勤社会化改革的需要,建立电子化的社区服务环境,网络、电话、有线电视进入社区,并开展各种网络化、电子化的服务项目,如一卡通电子商务、电子医疗、电子监控等,为师生员工提供便捷、高效、集成、健康的生活和休闲娱乐服务,形成智能型的社区服务系统。2.2.5在学校社区服务方面结合后勤社会化改革的需12小结其实,数字化校园是一个过程、一种境界。它随着技术的发展而发展,随着人们办公方式和习惯以及管理思想变化而变化。
小结其实,数字化校园是一个过程、一种境界。它随着技术的发13第三章功能展示3.1模型的建立3.1.1树模型的建立3.1.2湖面模型3.1.3路灯模型3.1.4光线设置3.2算法功能展示3.2.1三维模型的导入3.2.2音效的添加3.2.3雾效果3.2.4漫游3.2.5线框模型3.2.6天空包围盒第三章功能展示3.1模型的建立14第四章数据来源
空间数据获取技术主要有遥感、遥测、GPS等技术,属性数据的获取技术主要有传统测量、统计资料等。在数字校园系统中,数据的存储管理方式尤为重要,它决定了数据处理及空间查询等诸多功能的运行效率。通过数字地球技术获取华北水利水电大学的空间信息,比如地理位置,建筑物情况,学校道路等,加以储存和组织,以此建设虚拟校园,更为建设“数字校园”作铺垫。
通过将实际测量的数据导入到计算机,然后基于AutoCAD利用南方CASE进行绘图,绘制出校园的基本地形图平面模型,为后期的基础建模准备数据。第四章数据来源空间数据获取技术主要有遥感、遥15第五章数字校园的关键技术及方法虚拟现实技术建模技术数据库技术网络信息技术算法设计第五章数字校园的关键技术及方法虚拟现实技术16虚拟现实技术的概念虚拟现实(VirtualReality)是指运用计算机技术生成一个逼真的、并具有视觉、听觉、触觉等效果的可交互、动态世界,人们可以对该虚拟世界中的虚拟实体进行操纵和考察。它的基础是高级的三维图形技术、问题求解工具、多媒体技术、网络通信技术、数据库、信息系统、专家系统、面向对象技术和智能决策支持系统等技术的集成。虚拟现实技术的概念虚拟现实(VirtualRe17虚拟现实技术特征(1)沉浸性使之所创造的虚拟环境能使学生产生“身临其境”感觉,使其相信在虚拟环境中人也是确实存在的,而且在操作过程中它可以自始至终的发挥作用,就像真正的客观世界一样。(2)交互性是在虚拟环境中,学生如同在真实的环境中一样与虚拟环境中的任务、事物发生交互关系,其中学生是交互的主体,虚拟对象是交互的客体,主体和客体之间的交互是全方位的。(3)构想性是虚拟现实是要能启发人的创造性的活动,不仅要能使沉浸于此环境中的学生获取新的指示,提高感性和理性认识,而且要能使学生产生新的构思。(4)动作性是指学生能以客观世界的实际动作或以人类实际的方式来操作虚拟系统,让学生感觉到他面对的是一个真实的环境。(5)自主性是虚拟世界中物体可按各自的模型和规则自主运动。虚拟现实技术特征(1)沉浸性使之所创造的虚拟环境能使学生产生18网络信息技术该技术主要是建设新一代高速通信网络,实现电话网、有线电视网和互联网的互联,建成综合业务数字网(ISDN)。由于数字校园覆盖的面积相对不大,可采用蓝牙技术实现短程无线上网,近几年来,华北水利水电大学大学对校园网络进行了全面改造,取得了可喜的成绩,实现了办公楼、学生宿舍宽带上网,尽管有时网速比较差,但总体来说还是相当不错的。特别是最近,在校园内也实现了短程无线网络覆盖,这是很令人兴奋的,同学们可在校园内随时随地上网。网络信息技术该技术主要是建设新一代高速通信网络,实现电话19建模技术该技术是利用当前比较流行的建模软件,比如说大家经常用的CAD、3dmax,还有就是Maya来建立出真实世界的简化模型,然后根据现实的色彩、光线、视觉效果来进行真实模型的后期渲染,这是虚拟现实技术的可视化表达的第一步,也是最基本的一步。在基本模型建立过程中,需要处理好各个模型的比例问题,以及拓扑关系,以便于是整个场景看起来更加协调,真实,美观。建模技术该技术是利用当前比较流行的建模软件,比如说大家20算法设计首先是对现实世界的TIN约束,还有对模型的简化剖分,这些都是需要在算法中实现的功能。在碰撞检测算法中需要建立模型的格网索引,但是比较优的应该是四叉树、八叉树、哈希索引等方法。漫游中需要设计矩阵的变换,向量的乘法,优化的算法会带来更高的运行效率和内存的节省。算法设计首先是对现实世界的TIN约束,还有对模型的简化剖21然后是实现三维模型在窗体中的导入,在导入的时候综合考虑到我们的模型以及所加材质的协调性,最关键的是如何将模型中已经建立好的有一定坐标值得模型导入到我们的程序去,这里涉及到坐标转换和相关的矩阵的运算,向量的积。然后是实现三维模型在窗体中的导入,在导入的时候综合考虑22在模型导入以后是最终的也是最重要的就是碰撞检测以及漫游算法的实现,在碰撞检测中主要就是实现观察者位置坐标与物体坐标的求交运算,判断观察者的位置是在物体的里面还是外边(当然如果实现了碰撞检测的话,不可能出现在物体的内部),如果观察者与物体接近时只需要将观察者的位置沿着边面进行向左右或者向后面做平移,最简单的就是不做任何处理,也不让观察者的位置继续前移。漫游就是在场景中实现前后左右的移动,通过键盘来控制漫游。在模型导入以后是最终的也是最重要的就是碰撞检测以及漫游算法23后期的算法是对整个系统的一个装饰,比如说音效的调用,还有雾效果的添加,天空包围盒是为了让场景看起来更加真实,同时也是对整个场景的一个外壳限制,主要的天空类型可以有正方形、球形或者是仅仅一张平面图。后期的算法是对整个系统的一个装饰,比如说音效的调用,还24第六章基础建模6.1树模型的建立6.2湖面的制作6.3路灯模型的建立6.4建筑群的制作6.5光线的处理第六章基础建模6.1树模型的建立256.1树模型的建立在建立树模型的时候,我们首先想到的是模型中自带的ACE扩展模型,显示效果也可以,但是这些远远不能满足我们在现实世界建模的需要,因此必须要实现自己的模型建立,另外一种方法就是我们利用软件的毛发系统建立的树模型,但是该模型也存在一定的问题,就是我们建立的模型越精细,模型所占的内存就会越大,所以这种树模型我们不能用太多,其中最简单的树模型的表示方法就是直接利用树的图片来表示,首先利用photoshopcs6制作出黑白图6.1树模型的建立在建立树模型的时候,我们首26虚拟现实课程设计27虚拟现实课程设计28虚拟现实课程设计29虚拟现实课程设计30虚拟现实课程设计31虚拟现实课程设计32虚拟现实课程设计33虚拟现实课程设计34然后在材质球里面设置漫反射和不透明的属性,建立出平面树的模型最终树的表示效果为:然后在材质球里面设置漫反射和不透明的属性,建立出平面树的模型35虚拟现实课程设计36虚拟现实课程设计37虚拟现实课程设计38虚拟现实课程设计39虚拟现实课程设计40虚拟现实课程设计41虚拟现实课程设计426.2湖面的制作湖面的制作主要采用NUBRS曲面,通过修改点的位置来调整整个曲面的形状6.2湖面的制作湖面的制作主要采用NUBRS曲面,通过修改43建立之后,利用材质编辑球为湖面加上相应的材质,最终的制作效果如图所示:建立之后,利用材质编辑球为湖面加上相应的材质,最终的制作效果44虚拟现实课程设计45虚拟现实课程设计46虚拟现实课程设计476.3路灯模型的建立路灯的柱子是看似圆形的不规则图形,但是也有一定的规律,所以可以利用软件中的车削这一工具来制作灯柱,而对于路灯的试题本身可以是由四个平面来围成,中间利用半径比较小的圆柱来连接,而最上面的盖子也可以利用NUBRS曲面来制作6.3路灯模型的建立路灯的柱子是看似圆形的不规则图形,但是48灯柱的制作灯柱的制作49虚拟现实课程设计50虚拟现实课程设计51虚拟现实课程设计52虚拟现实课程设计53虚拟现实课程设计54虚拟现实课程设计556.4建筑群的制作在设计建筑时为了节省空间,我们主要采用了挤出的方法,但是为了更加真实,需要为建筑赋予比较真实的材质,然后对于一些需要特殊处理的建筑,利用布尔或者塌陷将他们做成比较真实的外观,本来想着利用photoshopcs6制作出比较精细的图片,然后为建筑群赋予特别外观,但是由于时间问题,只能做到这一步,后来有时间的话,在最后整一下吧。6.4建筑群的制作在设计建筑时为了节省空间,我们主要采用56虚拟现实课程设计57虚拟现实课程设计58虚拟现实课程设计59虚拟现实课程设计60虚拟现实课程设计61虚拟现实课程设计62虚拟现实课程设计63虚拟现实课程设计646.5光线的处理良好的光线可以让模型的色彩不可折扣的表现出来,因此需要对整个场景的光线进行设置,按数字键8可以调出我们的环境设置器,进行环境光的设置当然在场景中的所有景物、建筑都是采用对应的工具来设置的,在此不能一一介绍,相信学过软件的同学,也都知道如何去建立这些简单的模型。6.5光线的处理良好的光线可以让模型的色彩不可折扣的表现出65最终结果展示最终结果展示66虚拟现实课程设计67虚拟现实课程设计68虚拟现实课程设计69虚拟现实课程设计70虚拟现实课程设计71虚拟现实课程设计72第七章算法设计关键代码展示音效的添加模型的导入设置天空包围盒漫游向量的运算线框模式第七章算法设计关键代码展示音效的添加737.1音效的添加
InitFMOD(); //初始化音频文件FSOUND_Stream_Play(FSOUND_FREE,mp3back);//播放背景音乐returnTRUE;
//初始化成功TRUE 函数定义GLvoidInitFMOD(void){ if(FSOUND_Init(44100,32,0)) {mp3=FSOUND_Sample_Load(0,"Data/Mssj.mp3",FSOUND_2D,0); }}GLvoidFreeFMOD(void){if(mp3!=NULL) { FSOUND_Sample_Free(mp3); }}7.1音效的添加InitFMOD(); 747.2模型的导入打开文件 m_FilePtr=fopen(strFileName,"rb");如果文件打开失败 if(!m_FilePtr) { sprintf(strMessage,"3DS文件不存在!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); returnfalse; }7.2模型的导入打开文件75读取3ds文件的第一个Chunk ReadChunk(&chunk);检查是否是3ds文件 if(chunk.ID!=PRIMARY) { sprintf(strMessage,"读取文件t失败!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); fclose(m_FilePtr); returnfalse; }读取3ds文件的第一个Chunk76开始读取3ds文件 ReadPrimary(chunk.length-6);计算每个顶点的法线量 ComputeNormals();关闭打开的文件 fclose(m_FilePtr); m_FilePtr=NULL;开始读取3ds文件77对有纹理的材质载入该纹理 for(inti=0;i<m_3DModel.numOfMaterials;i++) { if(m_3DModel.pMaterials[i].isTexMat) { if(!BuildTexture(m_3DModel.pMaterials[i].mapName.string,m_3DModel.pMaterials[i].texureId)) { //纹理载入失败 sprintf(strMessage,"3DS纹理文件载入失败!",m_3DModel.pMaterials[i].mapName.string); MessageBox(NULL,strMessage,"Error",MB_OK); } } }对有纹理的材质载入该纹理787.3设置天空包围盒设置天空盒中心为a(cx,cy,cz) floatx=cx-width/2.0f; floaty=cy-height/2.0f; floatz=cz-length/2.0f;选择天空盒背面纹理 glBindTexture(GL_TEXTURE_2D,skyTexture[0]);设置纹理的边界的填充方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);7.3设置天空包围盒设置天空盒中心为a(cx,cy79开始绘制四边形 glBegin(GL_QUADS);设置纹理坐标和背面四边形的四个点位置 glTexCoord2f(1.0f,0.0f);glVertex3f(x+width,y, z); glTexCoord2f(1.0f,1.0f);glVertex3f(x+width,y+height,z); glTexCoord2f(0.0f,1.0f);glVertex3f(x, y+height,z); glTexCoord2f(0.0f,0.0f);glVertex3f(x, y, z); glEnd();开始绘制四边形80选择天空盒面纹理 glBindTexture(GL_TEXTURE_2D,skyTexture[1]); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);选择天空盒面纹理817.4漫游左右移动CameravoidCCamera::StrafeCamera(floatspeed){ m_vPosition.x+=m_vStrafe.x*speed; m_vPosition.z+=m_vStrafe.z*speed; m_vView.x+=m_vStrafe.x*speed; m_vView.z+=m_vStrafe.z*speed;}7.4漫游左右移动Camera82前后移动CameravoidCCamera::MoveCamera(floatspeed){ CVector3vView=m_vView-m_vPosition; m_vPosition.x+=vView.x*speed; m_vPosition.z+=vView.z*speed; m_vView.x+=vView.x*speed; m_vView.z+=vView.z*speed;}前后移动Camera83确认键盘控制的移动判断是否按下向上键或‘W'键 if(GetKeyState(VK_UP)&0x80||GetKeyState('W')&0x80) { MoveCamera(MOVESPEED); //向前移动Camera }判断是否按下向下键或'S'键 if(GetKeyState(VK_DOWN)&0x80||GetKeyState('S')&0x80) { MoveCamera(-MOVESPEED); //向后移动Camera }确认键盘控制的移动判断是否按下向上键或‘W'键84判断是否按下向左键或'A'键 if(GetKeyState(VK_LEFT)&0x80||GetKeyState('A')&0x80) { StrafeCamera(-MOVESPEED); //向左移动Camera }判断是否按下向右键或'D'键 if(GetKeyState(VK_RIGHT)&0x80||GetKeyState('D')&0x80) { StrafeCamera(MOVESPEED); //向右移动Camera }判断是否按下向左键或'A'键85向量的运算计算向量的叉乘CVector3CVector3::CrossProduct(constCVector3&rhs)const{ returnCVector3(y*rhs.z-z*rhs.y,z*rhs.x-x*rhs.z,x*rhs.y-y*rhs.x);}计算向量的点乘floatCVector3::DotProduct(constCVector3&rhs)const{ returnx*rhs.x+y*rhs.y+z*rhs.z;}向量的运算计算向量的叉乘86计算向量的长度floatCVector3::GetLength()const{ return(float)sqrt((x*x)+(y*y)+(z*z));}计算向量的长度的平方floatCVector3::GetSquaredLength()const{ return(x*x)+(y*y)+(z*z);}计算向量的长度87向量的旋转绕X轴旋转向量,返回旋转后的向量CVector3CVector3::GetRotatedX(doubleangle)const{ if(angle==0.0) return(*this); floatsinAngle=(float)sin(M_PI*angle/180); floatcosAngle=(float)cos(M_PI*angle/180); returnCVector3(x,y*cosAngle-z*sinAngle,y*sinAngle+z*cosAngle);}绕X轴旋转向量voidCVector3::RotateX(doubleangle){ (*this)=GetRotatedX(angle);}向量的旋转绕X轴旋转向量,返回旋转后的向量887.5线框模式If(linemodel){glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);}Else{glPolygonMode(GL_FRONT_AND_BACK,GL_FULL);}7.5线框模式If(linemodel)89第八章主要技术难题及解决方案模型建立之平面树的建立模型建立之模型过大模型渲染之材质的显示与隐藏算法设计之3dmax文档的导入、碰撞检测、漫游算法设计之天空包围盒第八章主要技术难题及解决方案模型建立之平面树的建立90模型建立之平面树的建立在建立树模型的时候可以有以下几种方法:
一是:就是最简单的利用软件中自带的已经建立好的模型;
二是:利用建模软件的毛发系统,可以制作出比较精细的树模,尤其对于柳树这一类线条比较明显的树木,效果比较好;
三是:对于一些有叶子的树木,我们可以首先制作出叶子和树干以及树枝这些基本的模型,然后利用合并将叶子有序的加载到树枝上,制作出精美的树木来;四是:也是最简单的树模型,就是直接用一张简单的树木的照片来表示树木,实际却是一张照片。
当然还有最最最为简单的一种就是你什么都不用想,直接去找“度娘”,然后点击下载按钮就可以了。模型建立之平面树的建立在建立树模型的时候可以有以下几种方法:91
对于用照片来显示树模型的方法来说,首先需要利用PS软件来制作出需要显示的树木的照片的黑白两色的照片副本来,然后同时保留着两张照片,打开材质编辑器,在其中一个未用的材质编辑球里面加载一张彩色的树的照片,然后在不透明度上设置为图片的黑白副本的照片。然后将材质加载到一个平面上,就可以制作出和照片中一模一样的树模型,设置为黑白图片是因为在有些软件中默认为不可见,而白色是可见区域,比如说在3dmax中。对于用照片来显示树模型的方法来说,首先需要利用PS软件92虚拟现实课程设计938.2模型建立之模型过大建立模型也是在模型中增加内容的过程,也是内存增加的过程,随着模型的建立,内容会越来越多,机器会越来越慢,甚至会导致死机,软件崩溃等问题,因此提前做好备份时必须的,另外就是选择比较好的方法去优化我们的模型,在软件中有相关的设置,可以帮助我们来优化模型,对于其中的设置我们选择最初的默认就可以了。8.2模型建立之模型过大建立模型也是在模型中增加内容的948.3模型渲染之材质的显示与隐藏为了让整个场景看起来更加真实,我们选择在加材质的时候就让其显示在模型上面,但是对于其中一些是无法显示的,只有在渲染的时候才可以在场景中看到我们最为真实的模型,这是我们不想发生的,因此需要寻找一定的方法来显示我们所有材质,比如说通过调整坐标,对象坐标、世界坐标、实际通道等。尤其在平面树的建立过程中,该问题特别棘手。因为物体的才是有涉及到透明问题。8.3模型渲染之材质的显示与隐藏为了让整个场景看起958.4算法设计之3dmax文档的导入、碰撞检测、漫游首先在到导入模型的时候要考虑模型过大的问题,为此我们已经在模型建立的过程中对模型进行了优化;在添加碰撞检测的时候,其实就是最基本的求交运算,在前面我们已经提到对我们的模型进行三角剖分,或者四边形剖分,以及建立TIN约束在漫游算法中,是有一个观察点的位置,有一个观察方向,然后给观察这一个前进的速度就可以实现前进或者后退8.4算法设计之3dmax文档的导入、碰撞检测、漫游首先968.5算法设计之天空包围盒天空可以让整个场景都变得更加真实,更加清晰。在天空设计的时候,我们可以制作成方块形状,也可以制作成球形的天空包围盒。8.5算法设计之天空包围盒天空可以让整个场景都变得更加97第九章结束语通过此次课程设计,我们学到了许多知识,其中最重要的就是团队合作精神的确立,这是做一项团体工作的基础,另外在设计的过程中,我们一边自学完成vc++6.0,一边复习使用一起拿学过的3dmax软件进行建模,同时使用了photoshopcs6来处理一些照片,以备以后材质和基础模型的建立使用。第九章结束语通过此次课程设计,我们学到了许多知识,其98附录小组分工:本小组共有6名成员,三个负责程序方面的设计,三个负责建模和文档的书写,最重成果由本小组所有成员经过两周的不懈努力设计而成,每个人都作出了自己不可磨灭的贡献,若不是本小组所有成员的努力,我们的最重成果不会如此完美,希望在以后的学习中,本小组成员能够更加努力,精诚合作,为制作出一个完整的项目贡献自己的力量。附录小组分工:本小组共有6名成员,三个负责程序方面的设计,三99小组成员姓名(按学号):
岳湑爽201101021
罗鹏201101022
贾士琛201101024
高克阳201101025
高骞201101026
蒲军政201101029所在院系:资源与环境学院
专业:地理信息系统小组成员姓名(按学号):100
指导老师:杨成杰老师刘文玉老师
101注意事项1、数字化校园的建设是一个庞大的系统工程,需要有一个整体解决方案,需要统一的互操作标准,要消除“信息孤岛”;2、要处理好管理应用与教学应用的关系:以管理应用为切入点,以教学应用为基本目标;3、在数字校园建设中,需要“三分技术、七分管理、十二分数据”,需要管理、技术、观念三个到位,更需要管理、技术和观念不断更新,而且三者要有机的结合;管理是基础,观念是关键,技术是保障;4、数字化校园的建设会引起管理组织结构的重组;数字化校园的建设需要人们观念的变化,素质的提高;注意事项1、数字化校园的建设是一个庞大的系统工程,需要有一个102参考文献:[1]陈浩磊,邹湘军,陈燕,刘天湖,虚拟现实技术的最新发展与展望[J]中国科技论文在线,2011[2]李湘德,彭斌,《虚拟现实技术发展综述》,创新论坛,2004[3]梁华勇,《虚拟现实技术及其在高校中的应用》,2005[4]吴迪,黄文骞,《虚拟现实技术的发展过程及研究现状》,2002[5]孙倩娜,《虚拟现实技术的发展及其在教育中的应用》,2011[6]陈琦丽等,《虚拟现实技术及其应用》,2010[7]张菁张天驰陈怀友,《虚拟现实技术及应用》,2011[8]郭冬青,《OpenGL高级编程与可视化系统开发——高级编程篇》,2006参考文献:[1]陈浩磊,邹湘军,陈燕,刘天湖,虚拟现实103
谢谢大家!!!
104虚拟现实三维建模课程设计
——虚拟校园虚拟现实三维建模课程设计
——虚拟校园105目录摘要课程设计目的虚拟校园概念及建设目标功能展示数据来源关键技术小结目录摘要106系统设计架构图系统设计架构图107摘要为了在计算机中更好的表现现实的世界,让我们能够更加真实地在计算机世界中展现出现实世界的魅力,也为了让更多的人们看到我们在现实世界中不可能见到的场景,我们利用虚拟现实技术和可视化技术更好的实现了这一点。与此同时高校的数字化校园建设是一个涵盖范围很广的领域,其建设过程所需要解决的问题也相当复杂。本文针对华北水利水电大学的校园的具体情况,分析建设数字校园的目的,选择建设数字校园的关键技术及方法,提出数字校园应该具备那些基本功能,并详细讨论实现相关功能的过程和手段。摘要为了在计算机中更好的表现现实的世界,让我们能108课程设计开发目的我国高校信息系统建设始于20世纪80年代,当时主要是单机版应用,解决重点业务环节的电算化,替代高强度的手工劳动,如排课系统、账务管理系统、人员管理系统等。当前许多高校都在积极研究虚拟现实技术及其应用,并相继建起了虚拟现实与系统仿真的研究室,将科研成果迅速转化实用技术,如北京航天航空大学在分布式飞行模拟方面的应用;浙江大学在建筑方面进行虚拟规划、虚拟设计的应用;哈尔滨工业大学在人机交互方面的应用;清华大学对临场感的研究等都颇具特色。有的研究室甚至已经具备独立承接大型虚拟现实项目的实力。虚拟学习环境虚拟现实技术能够为学生提供生动、逼真的学习环境,如建造人体模型、电脑太空旅行、化合物分子结构显示等,在广泛的科目领域提供无限的虚拟体验,从而加速和巩固学生学习知识的过程。亲身去经历、亲身去感受比空洞抽象的说教更具说服力,主动地去交互与被动的灌输,有本质的差别。虚拟实验利用虚拟现实技术,可以建立各种虚拟实验室,如地理、物理、化学、生物实验室等等,拥有传统实验室难以比拟的优势。课程设计开发目的我国高校信息系统建设始于20世109第二章数字化校园的概念、建设目标2.1数字化校园的概念2.2数字化校园的建设目标2.2.1在教学方面2.2.2在科研方面2.2.3在管理方面2.2.4在公共服务体系方面2.2.5在学校社区服务方面第二章数字化校园的概念、建设目标2.1数字化校园的概念1102.1数字化校园的概念传统上说,数字化校园是在传统校园的基础上,利用先进的信息化手段和工具,以统一的管理和安全策略,将校园各项资源数字化,形成的一个数字空间,使得现实校园在空间和时间上延伸开来。包括网络基础设施、数据中心、网络基本服务系统、一卡通系统、电话系统、有线电视系统、广播系统、会议系统、计算中心、数字图书馆、数字多媒体教室、数字语音室、电子公告屏、安防系统、楼宇控制(门禁)系统、应用软件系统等方面。当然这只是传统意义上的概念,当我们结合虚拟现实时又会产生出另外一种意义的数字校园,也就是我们在课程设计中需要完成的三维数字化校园。2.1数字化校园的概念传统上说,数字化校园是在1112.2数字化校园的建设目标2.2.1在教学方面充分利用网络技术、多媒体技术等实现高质量教学资源、信息资源和智力资源的共享与传播,促进高水平的师生互动,促进主动式、协作式、研究型的学习,从而形成开放的、高效的、个性化的教学模式,更好地培养学生的分析问题能力、解决问题能力和创新能力;2.2数字化校园的建设目标2.2.1在教学方面1122.2.2在科研方面充分利用校园网、互联网,促进科研资源和设备的共享,加快科研信息传播,促进国际性学术交流,开展网上合作研究,并且利用网络促进最新科研成果向教学领域的转化,以及科研成果的产业化和市场化,从而大大提高科研的创新水平和辐射力;2.2.2在科研方面充分利用校园网、互联网,促进科研资源和1132.2.3在管理方面充分利用现代信息技术实现职能管理的自动化、信息化,实现各部门之间的数据共享与协调,提高决策的科学性和民主性,提高管理的质量和效率,形成充满活力的现代新型管理体制;2.2.3在管理方面充分利用现代信息技术实现职能管理的自1142.2.4在公共服务体系方面建立覆盖全校的、主干千兆的高速网络,提高面向全校师生的基本网络服务、正版软件服务、技术支持服务等等;建立高质量的数字化的图书馆、多媒体教室、语音室、会议室等;在校园内建立统一的电子身份认证系统,从而为学校高水平的教学、科研和管理等提供强有力的支撑;2.2.4在公共服务体系方面建立覆盖全校的、主干千兆的1152.2.5在学校社区服务方面
结合后勤社会化改革的需要,建立电子化的社区服务环境,网络、电话、有线电视进入社区,并开展各种网络化、电子化的服务项目,如一卡通电子商务、电子医疗、电子监控等,为师生员工提供便捷、高效、集成、健康的生活和休闲娱乐服务,形成智能型的社区服务系统。2.2.5在学校社区服务方面结合后勤社会化改革的需116小结其实,数字化校园是一个过程、一种境界。它随着技术的发展而发展,随着人们办公方式和习惯以及管理思想变化而变化。
小结其实,数字化校园是一个过程、一种境界。它随着技术的发117第三章功能展示3.1模型的建立3.1.1树模型的建立3.1.2湖面模型3.1.3路灯模型3.1.4光线设置3.2算法功能展示3.2.1三维模型的导入3.2.2音效的添加3.2.3雾效果3.2.4漫游3.2.5线框模型3.2.6天空包围盒第三章功能展示3.1模型的建立118第四章数据来源
空间数据获取技术主要有遥感、遥测、GPS等技术,属性数据的获取技术主要有传统测量、统计资料等。在数字校园系统中,数据的存储管理方式尤为重要,它决定了数据处理及空间查询等诸多功能的运行效率。通过数字地球技术获取华北水利水电大学的空间信息,比如地理位置,建筑物情况,学校道路等,加以储存和组织,以此建设虚拟校园,更为建设“数字校园”作铺垫。
通过将实际测量的数据导入到计算机,然后基于AutoCAD利用南方CASE进行绘图,绘制出校园的基本地形图平面模型,为后期的基础建模准备数据。第四章数据来源空间数据获取技术主要有遥感、遥119第五章数字校园的关键技术及方法虚拟现实技术建模技术数据库技术网络信息技术算法设计第五章数字校园的关键技术及方法虚拟现实技术120虚拟现实技术的概念虚拟现实(VirtualReality)是指运用计算机技术生成一个逼真的、并具有视觉、听觉、触觉等效果的可交互、动态世界,人们可以对该虚拟世界中的虚拟实体进行操纵和考察。它的基础是高级的三维图形技术、问题求解工具、多媒体技术、网络通信技术、数据库、信息系统、专家系统、面向对象技术和智能决策支持系统等技术的集成。虚拟现实技术的概念虚拟现实(VirtualRe121虚拟现实技术特征(1)沉浸性使之所创造的虚拟环境能使学生产生“身临其境”感觉,使其相信在虚拟环境中人也是确实存在的,而且在操作过程中它可以自始至终的发挥作用,就像真正的客观世界一样。(2)交互性是在虚拟环境中,学生如同在真实的环境中一样与虚拟环境中的任务、事物发生交互关系,其中学生是交互的主体,虚拟对象是交互的客体,主体和客体之间的交互是全方位的。(3)构想性是虚拟现实是要能启发人的创造性的活动,不仅要能使沉浸于此环境中的学生获取新的指示,提高感性和理性认识,而且要能使学生产生新的构思。(4)动作性是指学生能以客观世界的实际动作或以人类实际的方式来操作虚拟系统,让学生感觉到他面对的是一个真实的环境。(5)自主性是虚拟世界中物体可按各自的模型和规则自主运动。虚拟现实技术特征(1)沉浸性使之所创造的虚拟环境能使学生产生122网络信息技术该技术主要是建设新一代高速通信网络,实现电话网、有线电视网和互联网的互联,建成综合业务数字网(ISDN)。由于数字校园覆盖的面积相对不大,可采用蓝牙技术实现短程无线上网,近几年来,华北水利水电大学大学对校园网络进行了全面改造,取得了可喜的成绩,实现了办公楼、学生宿舍宽带上网,尽管有时网速比较差,但总体来说还是相当不错的。特别是最近,在校园内也实现了短程无线网络覆盖,这是很令人兴奋的,同学们可在校园内随时随地上网。网络信息技术该技术主要是建设新一代高速通信网络,实现电话123建模技术该技术是利用当前比较流行的建模软件,比如说大家经常用的CAD、3dmax,还有就是Maya来建立出真实世界的简化模型,然后根据现实的色彩、光线、视觉效果来进行真实模型的后期渲染,这是虚拟现实技术的可视化表达的第一步,也是最基本的一步。在基本模型建立过程中,需要处理好各个模型的比例问题,以及拓扑关系,以便于是整个场景看起来更加协调,真实,美观。建模技术该技术是利用当前比较流行的建模软件,比如说大家124算法设计首先是对现实世界的TIN约束,还有对模型的简化剖分,这些都是需要在算法中实现的功能。在碰撞检测算法中需要建立模型的格网索引,但是比较优的应该是四叉树、八叉树、哈希索引等方法。漫游中需要设计矩阵的变换,向量的乘法,优化的算法会带来更高的运行效率和内存的节省。算法设计首先是对现实世界的TIN约束,还有对模型的简化剖125然后是实现三维模型在窗体中的导入,在导入的时候综合考虑到我们的模型以及所加材质的协调性,最关键的是如何将模型中已经建立好的有一定坐标值得模型导入到我们的程序去,这里涉及到坐标转换和相关的矩阵的运算,向量的积。然后是实现三维模型在窗体中的导入,在导入的时候综合考虑126在模型导入以后是最终的也是最重要的就是碰撞检测以及漫游算法的实现,在碰撞检测中主要就是实现观察者位置坐标与物体坐标的求交运算,判断观察者的位置是在物体的里面还是外边(当然如果实现了碰撞检测的话,不可能出现在物体的内部),如果观察者与物体接近时只需要将观察者的位置沿着边面进行向左右或者向后面做平移,最简单的就是不做任何处理,也不让观察者的位置继续前移。漫游就是在场景中实现前后左右的移动,通过键盘来控制漫游。在模型导入以后是最终的也是最重要的就是碰撞检测以及漫游算法127后期的算法是对整个系统的一个装饰,比如说音效的调用,还有雾效果的添加,天空包围盒是为了让场景看起来更加真实,同时也是对整个场景的一个外壳限制,主要的天空类型可以有正方形、球形或者是仅仅一张平面图。后期的算法是对整个系统的一个装饰,比如说音效的调用,还128第六章基础建模6.1树模型的建立6.2湖面的制作6.3路灯模型的建立6.4建筑群的制作6.5光线的处理第六章基础建模6.1树模型的建立1296.1树模型的建立在建立树模型的时候,我们首先想到的是模型中自带的ACE扩展模型,显示效果也可以,但是这些远远不能满足我们在现实世界建模的需要,因此必须要实现自己的模型建立,另外一种方法就是我们利用软件的毛发系统建立的树模型,但是该模型也存在一定的问题,就是我们建立的模型越精细,模型所占的内存就会越大,所以这种树模型我们不能用太多,其中最简单的树模型的表示方法就是直接利用树的图片来表示,首先利用photoshopcs6制作出黑白图6.1树模型的建立在建立树模型的时候,我们首130虚拟现实课程设计131虚拟现实课程设计132虚拟现实课程设计133虚拟现实课程设计134虚拟现实课程设计135虚拟现实课程设计136虚拟现实课程设计137虚拟现实课程设计138然后在材质球里面设置漫反射和不透明的属性,建立出平面树的模型最终树的表示效果为:然后在材质球里面设置漫反射和不透明的属性,建立出平面树的模型139虚拟现实课程设计140虚拟现实课程设计141虚拟现实课程设计142虚拟现实课程设计143虚拟现实课程设计144虚拟现实课程设计145虚拟现实课程设计1466.2湖面的制作湖面的制作主要采用NUBRS曲面,通过修改点的位置来调整整个曲面的形状6.2湖面的制作湖面的制作主要采用NUBRS曲面,通过修改147建立之后,利用材质编辑球为湖面加上相应的材质,最终的制作效果如图所示:建立之后,利用材质编辑球为湖面加上相应的材质,最终的制作效果148虚拟现实课程设计149虚拟现实课程设计150虚拟现实课程设计1516.3路灯模型的建立路灯的柱子是看似圆形的不规则图形,但是也有一定的规律,所以可以利用软件中的车削这一工具来制作灯柱,而对于路灯的试题本身可以是由四个平面来围成,中间利用半径比较小的圆柱来连接,而最上面的盖子也可以利用NUBRS曲面来制作6.3路灯模型的建立路灯的柱子是看似圆形的不规则图形,但是152灯柱的制作灯柱的制作153虚拟现实课程设计154虚拟现实课程设计155虚拟现实课程设计156虚拟现实课程设计157虚拟现实课程设计158虚拟现实课程设计1596.4建筑群的制作在设计建筑时为了节省空间,我们主要采用了挤出的方法,但是为了更加真实,需要为建筑赋予比较真实的材质,然后对于一些需要特殊处理的建筑,利用布尔或者塌陷将他们做成比较真实的外观,本来想着利用photoshopcs6制作出比较精细的图片,然后为建筑群赋予特别外观,但是由于时间问题,只能做到这一步,后来有时间的话,在最后整一下吧。6.4建筑群的制作在设计建筑时为了节省空间,我们主要采用160虚拟现实课程设计161虚拟现实课程设计162虚拟现实课程设计163虚拟现实课程设计164虚拟现实课程设计165虚拟现实课程设计166虚拟现实课程设计167虚拟现实课程设计1686.5光线的处理良好的光线可以让模型的色彩不可折扣的表现出来,因此需要对整个场景的光线进行设置,按数字键8可以调出我们的环境设置器,进行环境光的设置当然在场景中的所有景物、建筑都是采用对应的工具来设置的,在此不能一一介绍,相信学过软件的同学,也都知道如何去建立这些简单的模型。6.5光线的处理良好的光线可以让模型的色彩不可折扣的表现出169最终结果展示最终结果展示170虚拟现实课程设计171虚拟现实课程设计172虚拟现实课程设计173虚拟现实课程设计174虚拟现实课程设计175虚拟现实课程设计176第七章算法设计关键代码展示音效的添加模型的导入设置天空包围盒漫游向量的运算线框模式第七章算法设计关键代码展示音效的添加1777.1音效的添加
InitFMOD(); //初始化音频文件FSOUND_Stream_Play(FSOUND_FREE,mp3back);//播放背景音乐returnTRUE;
//初始化成功TRUE 函数定义GLvoidInitFMOD(void){ if(FSOUND_Init(44100,32,0)) {mp3=FSOUND_Sample_Load(0,"Data/Mssj.mp3",FSOUND_2D,0); }}GLvoidFreeFMOD(void){if(mp3!=NULL) { FSOUND_Sample_Free(mp3); }}7.1音效的添加InitFMOD(); 1787.2模型的导入打开文件 m_FilePtr=fopen(strFileName,"rb");如果文件打开失败 if(!m_FilePtr) { sprintf(strMessage,"3DS文件不存在!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); returnfalse; }7.2模型的导入打开文件179读取3ds文件的第一个Chunk ReadChunk(&chunk);检查是否是3ds文件 if(chunk.ID!=PRIMARY) { sprintf(strMessage,"读取文件t失败!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); fclose(m_FilePtr); returnfalse; }读取3ds文件的第一个Chunk180开始读取3ds文件 ReadPrimary(chunk.length-6);计算每个顶点的法线量 ComputeNormals();关闭打开的文件 fclose(m_FilePtr); m_FilePtr=NULL;开始读取3ds文件181对有纹理的材质载入该纹理 for(inti=0;i<m_3DModel.numOfMaterials;i++) { if(m_3DModel.pMaterials[i].isTexMat) { if(!BuildTexture(m_3DModel.pMaterials[i].mapName.string,m_3DModel.pMaterials[i].texureId)) { //纹理载入失败 sprintf(strMessage,"3DS纹理文件载入失败!",m_3DModel.pMaterials[i].mapName.string); MessageBox(NULL,strMessage,"Error",MB_OK); } } }对有纹理的材质载入该纹理1827.3设置天空包围盒设置天空盒中心为a(cx,cy,cz) floatx=cx-width/2.0f; floaty=cy-height/2.0f; floatz=cz-length/2.0f;选择天空盒背面纹理 glBindTexture(GL_TEXTURE_2D,skyTexture[0]);设置纹理的边界的填充方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);7.3设置天空包围盒设置天空盒中心为a(cx,cy183开始绘制四边形 glBegin(GL_QUADS);设置纹理坐标和背面四边形的四个点位置 glTexCoord2f(1.0f,0.0f);glVertex3f(x+width,y, z); glTexCoord2f(1.0f,1.0f);glVertex3f(x+width,y+height,z); glTexCoord2f(0.0f,1.0f);glVertex3f(x, y+height,z); glTexCoord2f(0.0f,0.0f);glVertex3f(x, y, z); glEnd();开始绘制四边形184选择天空盒面纹理 glBindTexture(GL_TEXTURE_2D,skyTexture[1]); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);选择天空盒面纹理1857.4漫游左右移动CameravoidCCamera::StrafeCamera(floatspeed){ m_vPosition.x+=m_vStrafe.x*speed; m_vPosition.z+=m_vStrafe.z*speed; m_vView.x+=m_vStrafe.x*speed; m_vView.z+=m_vStrafe.z*speed;}7.4漫游左右移动Camera186前后移动CameravoidCCamera::MoveCamera(floatspeed){ CVector3vView=m_vView-m_vPosition; m_vPosition.x+=vView.x*speed; m_vPosition.z+=vView.z*speed; m_vView.x+=vView.x*speed; m_vView.z+=vView.z*speed;}前后移动Camera187确认键盘控制的移动判断是否按下向上键或‘W'键 if(GetKeyState(VK_UP)&0x80||GetKeyState('W')&0x80) { MoveCamera(MOVESPEED); //向前移动Camera }判断是否按下向下键或'S'键 if(GetKeyState(VK_DOWN)&0x80||GetKeyState('S')&0x80) { MoveCamera(-MOVESPEED); //向后移动Camera }确认键盘控制的移动判断是否按下向上键或‘W'键188判断是否按下向左键或'A'键 if(GetKeyState(VK_LEFT)&0x80||GetKeyState('A')&0x80) { StrafeCamera(-MOVESPEED); //向左移动Camera }判断是否按下向右键或'D'键 if(GetKeyState(VK_RIGHT)&0x80||GetKeyState('D')&0x80) { StrafeCamera(MOVESPEED); //向右移动Camera }判断是否按下向左键或'A'键189向量的运算计算向量的叉乘CVector3CVector3::CrossProduct(constCVector3&rhs)const{ returnCVector3(y*rhs.z-z*rhs.y,z*rhs.x-x*rhs.z,x*rhs.y-y*rhs.x);}计算向量的点乘floatCVector3::DotProduct(constCVector3&rhs)const{ returnx*rhs.x+y*rhs.y+z*rhs.z;}向量的运算计算向量的叉乘190计算向量的长度floatCVector3::GetLength()const{ return(float)sqrt((x*x)+(y*y)+(z*z));}计算向量的长度的平方floatCVector3::GetSquaredLength()const{ return(x*x)+(y*y)+(z*z);}计算向量的长度191向量的旋转绕X轴旋转向量,返回旋转后的向量CVector3CVector3::GetRotatedX(doubleangle)const{ if(angle==0.0) return(*this); floatsinAngle=(float)sin(M_PI*angle/180); floatcosAngle=(float)cos(M_PI*angle/180); returnCVector3(x,y*cosAngle-z*sinAngle,y*sinAngle+z*cosAngle);}绕X轴旋转向量voidCVector3::RotateX(doubleangle){ (*this)=GetRotatedX(angle);}向量的旋转绕X轴旋转向量,返回旋转后的向量1927.5线框模式If(linemodel){glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);}Else{glPolygonMode(GL_FRONT_AND_BACK,GL_FULL);}7.5线框模式If(linemodel)193第八章主要技术难题及解决方案模型建立之平面树的建立模型建立之模型过大模型渲染之材质的显示与隐藏算法设计之3dmax文档的导入、碰撞检测、漫游算法设计之天空包围盒第八章主要技术难题及解决方案模型建立之平面树的建立194模型建立之平面树的建立在建立树模型的时候可以有以下几种方法:
一是:就是最简单的利
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 托管班学生托管合同协议书
- 手房买卖合同买方有利
- 项目落地实施全周期工作方案
- 影视剧设备租赁合同书
- 外卖合同范本大全
- 顺丰物流运输合同
- 合租协议书范本
- 委托租赁协议合同
- 挖掘机设备采购合同
- 个人借款居间合同
- 《趣味数学幻方》课件
- 牛津3000正序和乱序词汇表
- 广州猎德大桥三维曲面塔清水混凝土施工技术
- 产品设计思维 课件 第5章 产品设计的形式思维
- Unit2Letscelebrate!Usinglanguage课件-高中英语
- 我国糖尿病视网膜病变临床诊疗指南2022解读
- Python数据挖掘实战全套教学课件
- 高级茶艺师技能鉴定(协会版)备考题库-下(多选、判断题汇总)
- 中美欧规范桩基承载力计算设计对比
- 钢筋工程隐蔽检查验收记录表
- 区块链技术应用开发项目可行性分析报告
评论
0/150
提交评论