《第5讲VRP交互展示及Lua的应用.ppt》由会员分享,可在线阅读,更多相关《第5讲VRP交互展示及Lua的应用.ppt(34页珍藏版)》请在三一办公上搜索。
1、第5讲 VRP交互展示及Lua的应用,1,任课教师:刘 辉电子邮件:,2,1,【主要内容】,1.1 几何造型节点语法定义,几何造型实物结点是一个成员结点,就放在主编组结点里面,1 VRML的几何造型(1),3,Shapeappearance NULLgeometry NULL,定义立体造型的外观特征,定义立体造型的几何形状,1.2 文本造型Text,1 VRML的几何造型(2),4,举例,1.2 文本造型文本外观节点FontStyle,1 VRML的几何造型(2),5,举例,1.3 几何造型综合练习,1 VRML的几何造型(3),6,练习:在lantern.wrl的基础上,完成下图所示的场景,
2、1.3 几何造型综合练习,1 VRML的几何造型(4),7,练习:完成下图场景,2 VRML造型外观设计(1),8,2.1 外观节点层次结构,2 VRML造型外观设计(2),9,2.1 外观节点语法格式,2 VRML造型外观设计(3),10,2.2 材质节点语法格式,2 VRML造型外观设计(4),11,2.2 材质节点示例,Material.wrl,2 VRML造型外观设计(5),12,2.3 图片型的表面材质节点语法格式,2 VRML造型外观设计(6),13,2.3 图片型的表面材质节点示例,ImageTexture.wrl,2 VRML造型外观设计(7),14,2.4 表面材质转换节点语
3、法格式,2 VRML造型外观设计(8),15,2.4 表面材质转换节点示例,textureTransform.wrl,2 VRML造型外观设计(9),16,2.5 影像纹理节点语法格式,2 VRML造型外观设计(10),17,2.5 影像纹理节点示例,moiveTexture.wrl,2 VRML造型外观设计(11),18,2.6 造型的材质设计,2 VRML造型外观设计(12),19,2.6 造型的材质设计,material-材质.wrl,2 VRML造型外观设计(13),20,2.6 综合练习,在浅灰色背景下,完成一组5个透明度不同的绿色球体,其透明度transparency依次为0,0.
4、25,0.5,0.75,1。球中间穿过一根黄色的棍。场景如下图所示。,3 VRP脚本及Lua语言(1),21,3.1 完成场景演示,场景演示,3 VRP脚本及Lua语言(2),22,3.2 Lua语言,Lua是一种脚本编程语言,于1994年,由巴西里约热内卢天主教大学的研究人员设计开发,“Lua”这个名字是葡萄牙语单词“月亮”。,与一般脚本语言如 PHP、Perl、JavaScript 等不同,Lua被称为是一种嵌入式 脚本语言,Lua最著名的应用是在暴雪公司的网络游戏 魔兽世界 中。,3 VRP脚本及Lua语言(3),23,3.2 Lua语言,Lua最极小 的体积和简单 的语法引人注目的特点
5、:以提供相对全面的功能。以简洁 的API实现与宿主语言最方便 的接口。,3 VRP脚本及Lua语言(4),24,3.2 Lua语言工作流程,宿主语言建立Lua解释器对象。将宿主语言实现的Lua扩展(若有),如函数等,注册到Lua解释器中,供其使用。读入Lua源程序或预先编译后的Lua程序(可以从文件、字符串、网络等任意来源)。执行读入的Lua程序。,4 VRP脚本及Lua语言(5),25,3.3 Lua安装,4 VRP脚本及Lua语言(6),26,3.4 Lua应用物体父子关系的绑定,function chushi()sys.DoScript(“粘贴物体到物体,秒针,秒中心,0”)sys.Do
6、Script(“粘贴物体到物体,分针,分中心,0”)sys.DoScript(“粘贴物体到物体,时针,时中心,0”)end,4 VRP脚本及Lua语言(7),27,3.4 Lua应用系统时间的获取,function chushi()m_Hour=0(换行)m_Minute=0(换行)m_Second=0m_Hour=os.date(%H)m_Minute=os.date(%M)m_Second=os.date(%S)s=0(换行)m=0(换行)h=0s=math.rad(m_Second*6)m=math.rad(m_Minute+(m_Second/60)*6)h=math.rad(m_Ho
7、ur+(m_Minute/60)*30).end,4 VRP脚本及Lua语言(8),28,3.4 Lua应用时钟正常运转,sys.DoScript(设置定时器,运行,1,1000,运行),function shijian()s_rotate=0m_rotate=0h_rotate=0s_rotate=math.rad(6)m_rotate=s_rotate/60h_rotate=s_rotate/3600sys.DoScript(旋转模型,秒中心,0,0/0/.s_rotate.,)sys.DoScript(旋转模型,分中心,0,0/0/.m_rotate.,)sys.DoScript(旋转模
8、型,时中心,0,0/0/.h_rotate.,)end,4 VRP脚本及Lua语言(3),29,3.4 Lua应用视图实时刷新,sys.DoScript(设置窗口非活跃时是否保持画面刷新,1),4 VRP脚本及Lua语言(9),30,3.4 Lua应用滚轮控制,function start()start_xy=sys.DoScript(点击点鼠标位置)start_count=string.find(start_xy,/)start_x=string.sub(start_xy,1,(start_count-1)sys.DoScript(设置定时器,dingwei,1,50,dingwei)end
9、function last()last_xy=sys.DoScript(点击点鼠标位置)last_count=string.find(last_xy,/)last_x=string.sub(last_xy,1,(last_count-1)end,4 VRP脚本及Lua语言(10),31,3.4 Lua应用滚轮控制,function rotate()if last_xstart_x thensys.DoScript(旋转模型,滚轮,0,0/0/0.1,)sys.DoScript(旋转模型,分中心,0,0/0/.(m_rotate*60).,)sys.DoScript(旋转模型,时中心,0,0/0/.(h_rotate*300).,)end start_x=last_xend,本节小结,32,了解VRML中几何造型节点文本造型的使用;了解造型外观的材质和纹理属性 掌握造型外观属性的语法构成 Lua在VRP中的应用 系统时钟案例关键步骤,作业,33,课后练习 复习课件示例代码上机实验上机实验5,谢谢!,34,