Vega二次开发技术介绍_第1页
Vega二次开发技术介绍_第2页
Vega二次开发技术介绍_第3页
Vega二次开发技术介绍_第4页
Vega二次开发技术介绍_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vega介绍Vega是什么?Vega能干什么?Vega的构成Vega的二次开发Vega是什么?Vega是软件MultiGen的一部分。虚拟现实软件MultiGen由两部分组成:1、Creator2、VegaVega能干什么?Creator用来建立三维模型Vega的作用:将三维模型渲染成场景在场景上浏览、查询实例演示Vega的构成Lynx软件多种动态联接库(DLL)、函数库(Lib)应用程序接口(API)Vega各个组成部分的作用DLL、Lib的作用Lynx软件的作用API的作用DLL、Lib的作用Vega内核完成所有具体的工作函数之间通过自动的相互调用构成Vega内部工作机制Vega内核以“类”的形式组织类:封装了函数和数据的集合不必了解类的“内幕”,只要使用类的函数就可以使用类的数据,操作类Vega“类”与之类似:通过函数对类设置参数,以控制操作;通过函数从类中获取参数,以得到信息结论一Vega应用程序所要做的工作就是给一些必要的类设置或获取必要的参数Lynx软件的作用图形用户界面软件(运行Lynx软件,显示界面)以图形界面的形式,供用户设置环境、操作参数定义、生成和预览Vega应用程序参数设置结果生成、存储在ADF文件

API的作用二次开发应用程序接口编程实现参数设置可在程序运行过程中,改变运行参数和操作方式本次课程内容只涉及二次开发,似乎只与API有关,与Lynx无关,实际并非如此。Vega基本类基本的类包括:System,GraphicsStates,Windows,Channels,Observers,MotionModels,Scenes,Paths,Objects,DatabaseManager,Players,Environments,EnvironmentEffects,Lights,Isecors,Volumes,ColorTable,InputDevices,Pathing,Navigators。关于各类的作用请看讲义关于Vega类的说明类内一些参数是必设项,必须设置类与类之间存在着关联,必须正确建立这些关联关系二次开发编程必须用语句实现每一种关联关系Lynx可以自动建立这些关联关系关于Lynx软件的进一步说明Lynx软件首先用缺省值为每一个类设置参数Lynx软件自动建立各类之间的关联关系用户使用Lynx软件实际上是对缺省值进行修改,以实现特定的目标利用Lynx软件进行二次开发用Lynx软件建立一个最简单的ADF文件,各类参数已自动设置(缺省值),各类之间的关联已自动建立只需要编程实现对少量特定参数的设置或修改,就可以实现特定的目标结论二

用Lynx软件建立ADF文件,并用ADF文件设置系统,可以使我们将精力集中在特定的问题上,大大减少编程工作量编程的有关问题Vega三种应用程序模型:经典模型,主程序为main();标准的Windows应用程序,主程序为WinMain();基于MFC的Windows应用程序。main()简单直观,以main()形式的应用程序为例来介绍Vega的二次开发技术。VisualC编辑器的设置(请学员设置,方法见讲义)Vega应用程序模式vgInitSys();初始化系统

vgDefineSys(“myapp.adf”);定义系统

vgConfigSys();设置系统

while(1){实时循环体

vgSyncFrame();循环同步控制

vgFrame();调用内部函数

}Vega应用程序说明应用程序前半部分设置系统循环体是实现场景动画浏览的程序部分一般在循环体前设置各个类的参数,根据需要少量参数可在循环体内设置编制你的第一个Vega应用程序用VC建立一个工作组输入并修改程序选一个ADF文件加入程序编译运行程序用Lynx建立一个基本的ADF文件

打开Lynx界面鼠标右键单击类面板窗口“ActiveModules”中,清除除第一项“Vega”之外的所有选项存储,得到一个ADF文件用“记事本”打开该文件,显示其内容应用环境的设置

设置环境三步曲

vgInitSys()vgDefineSys(“myapp.adf”)vgConfigSys()ADF文件的作用一般用来设置我们所不关心的类特定的类最好重新设置vgCommon类它是一个公共类,提供一些各类都能使用的操作常用的类有:命名、获取命名:vgName,vgGetName

属性设置、属性修改:vgProc,vgGetProc

定位、获取定位:vgPos,vgGetPos其它类(用到时介绍)vgWindow类

Vega应用程序必须至少有一个窗口函数vgNewWin创建一个窗口函数vgGetWin获取一个已创建的窗口函数vgWinSize设置窗口大小函数vgWinLabel设置窗口标题窗口部分属性的设置和获取可用函数vgProp和vgGetProp实现窗口由vgConfigSys函数打开,窗口设置必须在vgConfigSys函数之前结论三Window类参数的设置必须在系统设置函数vgConfigSys()之前进行Channel类由于与Window类的紧密联系,其参数的设置也必须在系统设置函数vgConfigSys()之前进行

Vega其它类参数的设置可以在其被使用前进行vgChannel类介绍

频道是窗口上的一个矩形区域,矩形区域中显示的是一个视点看到的部分场景场景不是直接显示在窗口上,而是显示在窗口上的频道中一个窗口可以关联多个频道,一个频道只能和一个视点关联频道设置可以在窗口创建后、频道使用前的时候进行vgChannel类应用

函数vgNewChan创建一个频道函数vgGetChan获取一个已创建的频道函数vgChanWin建立频道与窗口的联系函数vgChanViewport设置频道在窗口中的位置vgObserver类介绍观测者是观看场景的眼睛显示在频道中的景象是与频道相关联的Observer的观看结果影响观看结果的因素有Observer的位置和方位Observer的位置是视点在场景坐标系中的坐标值(x,y,z)Observer的方位由(h,p,r)确定视点坐标系与场景坐标系的关系场景坐标系是固定坐标系、永久坐标系,视点坐标系是临时坐标系场景坐标系是右手螺旋坐标系,它的原点就是视点,场景坐标系y轴方向就是视线方向(h,p,r)决定视点方位,h是水平旋转角(绕z轴)(逆时针为正),p是以视线为轴的旋转角(绕y轴)(顺时针为正),r是俯仰角(绕x轴)(顺时针为正)o’XYZx’y’z’OvgObserver类应用Observer与频道关系密切,必须建立与频道的关联关系三维模型的引入

创建一个数据集用模型文件名命名该数据集调入数据集创建一个object定位object建立数据集与object的关联通过激活object实例来激活三维模型场景将object投入到场景中

结论四三维模型的引入要通过以下步骤1、通过数据集读入模型文件2、通过数据集与object的关联将整个模型变成一个object3、通过对该object有关属性的改变实现对模型的定位、激活4、object只有投入到场景中才能使用

vgMotion类规定和管理各种运动模式

Vega提供了四类运动模式:simple,complex,direct和userdefined前三类为规定的运动模式,共十一种规定的运动模式的设置规定的运动模式的限制userdefined运动模式

Vega为用户定义运动模式的实现提供了一套内部机制内部机制包括:运动模式数据自动传递,运动模式实现函数的自动调用userdefined模式的建立方式定义一个运动模式数据结构变量,为该变量申请空间定义一个运动模式实现函数用一个标识符来代表该运动模式函数(注册)依次将运动模式数据结构变量、运动模式函数标识符与运动模式实例挂钩结论五Vega运动模式的内部机制极大地简化了用户建立自定义运动模式的工作,使用户可将精力集中在运动模式实现函数的实现上运动模式实现函数思路接收传递数据用键盘改变视点坐标或方位数据用新数据设置运动模式(视点)vgPicker类介绍Picker类用来在场景中选取目标和对象选取方法是用鼠标点击场景中的目标目标有两类房屋等人造几何体地形点vgPicker类应用创建一个Picker类实例设置必要的属性建立Picker类与场景、频道的关联关系点击目标,查询信息

Picker类提供了一个函数

vgPerformPickProcessing

用来实现在场景中的点击Picker类提供了不同的函数从Picker提取不同的信息GIS中常用的信息:目标、高程信息总结Vega内核以类的形式组织,使Vega编程的任务成为设置有关类的参数用Lynx完成一个最简单的ADF文件,并用这个文件设置系统,完成大部分类参数的设置,我们只需编程完成特定类少数参数的设置Window类、Channel类参数的设置必须在系统设置函数vgConfigSys()之前进行Vega应用程序模式就是:参数设置部分加循环体部分总结三维模型文件是以Object的形式调入的,经历了文件

数据集(DS)

Object,最后投入场景(Scenes)的过程Observer与Motion关联在一起,通过对Motion的控制实现对Observer的运动控制Vega为userdefined模式设置了内部机制,自定义函数调用模式相对固定,依据该模式,我们只需考虑如何实现自定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论