虚拟现实课件_第6章(教师-王洪群).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 VR编程 * * 虚拟现实技术 讲课老师: 王洪群 whq_lanzhou@163.com 工具包和场景图 WorldToolKit JAVA 3D 通用触觉开放软件工具包 PeopleShop VR工具包 一、工具包和场景图 VR工具包:是一个为VR设计的可扩展的面向对象的函数库。被仿真的对象是类的一部分,能继承这些累的默认属性,因而可以简化编程任务。 底层图形语言:OpenGL WorldToolKit Java 3D VRML 通用工具包 GHOST PeopleShop 支持跟踪器、传感手套、HMD和工作台等多种IO设备。专有的 公用的工具包 用于触觉编程 用于军事仿真 场景图:在图形编程或触觉编程中的一项创作任务就是创建场景图。它是虚拟世界中所有对象(可见的或者不可见的)以及世界视图的层次组织。 在应用程序阶段,CPU执行场景图中各个部分(子树)和虚拟相机观察体的相交测试,如果包围体与观察体相交,则它所包含的所有对象送到流水线。 叶节点表示可见对象以及它们的属性(几何、外观和行为),又成外部节点。 内部节点:通常表示变换。用于确定他们的子对象与根对象以及其他对象在空间中的位置关系。 在场景图中,球的叶节点(包含它的几何属性和颜色属性)是内部节点的一个子节点,通过改变内部节点的值,可以反映出球的跳跃效果。当虚拟球被抓住后,它就变成了手掌对象的子节点。 手掌的父节点表示根据用户穿戴的跟踪器数据实现各种变换。 WorldToolKit(WTK) Geometries(几何) Nodes(节点) Viewpionts(视点) WTK工具包的类 Windows(窗口) Lights(光线) Sensors(传感器) Paths(路径) Motion links运动链 宇宙universe WTK的一个场景图的例子 视点 同一场景的多个视图 WorldToolKit(WTK) WTK的一个编程例子: WTgeometry_newsphere();/*使用几何原语*/ WTgeometry_newcone(); WTgeometry_begin();/*自定义几何*/ … WTpoly_addvertex(); WTgeometry_save(); WTgeometrynode_load(hand); WTtexture_load(filename);/*导入纹理*/ WTtexture_setfilter();/*操纵纹理*/ WTpoly_settexturestyle();/*纹理的透明度处理或融合*/ WorldToolKit(WTK) WTK构建场景图的编程例子: /*-----加载手模型几何体----*/ Palm=WTmovnode_load(Root,’Palm.nff’’,1.0);/*根节点*/ ThumbDistal=WTmovnode_load(ThumbProximal,’ThumbDistal.nff,1.0’); IndexProximal=WTmovnode_load(Palm,’indexProximal.nff,1.0’); IndexMiddle=WTmovnode_load(indexproximal,’indexProximal.nff,1.0’); …… /*----构建场景图----*/ WTmovnode_attach(Palm,ThumbProximal); /*拇指与手掌连接*/ WTmovnode_attach(ThumbProximal,ThumbDistal);/*拇指根部和拇指末端连接*/ WTmovnode_attach(Palm,IndexProximal);/*手掌和食指根部*/ WTmovnode_attach(indexProximal,indexMiddle);/*食指根部和食指中部*/ …… WorldToolKit(WTK) WTK构建的一只虚拟手的场景图 WorldToolKit(WTK) WTK的仿真过程: 初始化:WTuniversenew() 加载:WTuniverseload(filename) 进入仿真循环:WTuniversego() 中止整个程序:WTuniversestop() WTuniversesetaction() 传感器对象:WTsensor_new() 创建过程: WTsensor *polhemus,*ball; Ball=WTspaceball_new(SERIAL2);/*把跟踪球Space ball附着在串口2上*/ 视点对象:任何时刻,宇宙只有一个活跃视点,可以通过函数WTuniversegetviewpoint()访问。 WorldToolKit(WTK) WTK传感器的控制例子: Main(){ WT

文档评论(0)

cjp823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档