导航

随笔分类 -  虚拟现实技术

关于虚拟现实的一些技术和编程方法
摘要:Vega提供了一种转换工具可以把asf文件里面的flt模型文件转换为fst文件格式。Vega的Fast文件格式(fst)为系统尽可能快地加载模型到场景中提供了一种有效的途径。Fst文件的数据方式与Vega场景里的需要的方式非常相似,所以可以非常快的载入。其他的文件格式在加入Vega场景时都需要做大量的处理工作,这在处理少量数据或静态调入时对系统运行时间没有什么影响,但是在需要动态实时调入模型数据尤其是大大规模地形数据时就有很大的延迟,影响浏览效果。 通常情况下,fst文件里不存储纹理文件,因为有可能几个fst文件用同样的纹理文件,这样就使fst文件变的更小,加载速度比更快。本文前边也提到场景的实时调入也包含纹理的实时调入,如果模纹理总量超过硬件纹理内存的容量,甚至超过系统内存的容量,在浏览过程中,频繁交换内存或硬盘中的纹理,就很难保证其实时性。因此,可以把纹理文件存储在fst文件里,这样也可以大大的提高载入的实时性。 创建好的FLT模型文件,如果转化成FST格式的二进制文件,并将模型纹理包含其中可以大大加快系统的加载速度,提高运行效率,特别是对于大型的模型 阅读全文

posted @ 2007-06-05 11:02 yunbo 阅读(2914) 评论(0) 推荐(0)

摘要:好多朋友都问过这个问题,记得以前回答过的,现在总结一下,与大家分享。 办法共有三种: 1、当然是在其他机器上安装Vega,哈哈开玩笑。 2、是自己打包动态库,和lelicence,注意,动态库你可以随便放,只要保证你的程序能找到它(一般编程的书有教怎样找动态库的),licence文件你必须放到和你自己机器上一模一样的文件夹位置。 3、其实方法三才是正确的做法 Vega有开发版和运行版之分,平常我们大家用的就是开发版,现在最高是3.7.1,运行版就是专门用来解决vega开发的应用程序在其他机器上运行的,运行版其实上就是Vega的几个基本动态库+licence,运行版和开发版有对应关系,找美国厂家买运行版时必须提供你买开发版的用户信息,当然运行版的价钱要便宜的多的,现在运行版最高是3.6, 在开发版的机器上静态编译你的Vega程序,(运行版不提供特效、大地形管理等模块的dll,所以你必须静态编译),在project-settings-c++-General-Preprocessor definitions 阅读全文

posted @ 2005-09-21 01:18 yunbo 阅读(1553) 评论(1) 推荐(0)

摘要:在Creator中制作动态喷泉和动态的水池是采用一组图片循环显示的方法来实现的。具体设置如下: 首先要确定好几张循环显示的喷泉或水的图片。这种图片可以在max或其他三维软件中生成动态模型,输出序列图片,然后每相隔5帧取一张图片,一般取三张即可满足要求。如果是喷泉的图片必须是有Alpha通道的。 我们以做一个动态喷泉为例: 在Creator中建立一个Group节点,再在此Group节点下建立3个Object节点,每个Object中又各建立一个face。 因为现在建立的是一个喷泉,所以建立的面片应该是垂直的,如果是水面则为水平面片。所建立的三个面片必须是形状相同及等大小的,并且完全重合在一起。 依次给三个面片赋上你准备好的纹理。赋予图片纹理是要按照你所建立的面片顺序来赋予的。譬如说你的纹理为penquan-1、penquan-2、penquan-3,赋予纹理时依顺序次赋予给p1、p2、p3。这样图片循环显示时则是按照penquan-1、penquan-2、penquan-3的顺序来显示的。 给三个面片赋上纹理后选择此喷泉的group节点。打开 阅读全文

posted @ 2005-09-21 00:47 yunbo 阅读(1282) 评论(1) 推荐(0)

摘要:一、DR的应用 1、首先建立DR和应用程序 2、DR的建立包括对系统master/slave的设置,确定系统拥有的virtual pipelines 3、要实现一个工作在DR模式下的应用程序,还必须在.acf文件中增加一个 channel,pipelines,windows,pipeline ID 二、建立DR 初始化要求: ·系统用网络连接在一起 ·每个系统安装相同版本的vega prime ·MASTER要拥有运行DR的许可 ·DR的建立 ·在每个系统上开启MPI Agent ·在master系统上开启DRUtil ·对配置进行检查,确保MPI Agent 的role 分配正确,如果相应的系统的角色分配不对则在MPI AGENT 中修改。 ·为每个mpi agent 分配一个virtual monitor。 ·为验证MPI agent 配置的真确性 可以按如下方式操作:test-choose virtual monitors。 ·验证slaver可以 阅读全文

posted @ 2005-09-21 00:42 yunbo 阅读(1596) 评论(1) 推荐(0)

摘要:编程实现基于MFC的Vega程序MFCWorkVega,调用刚建立的lynx: 1建立一个单文档的MFC程序,把在zsVegaView.cpp和zsVegaView.h包含进来 2.在MFCWorkVegaView的基类由CView改为zsVegaView,下面增加调用vega 的几个必须函数 const char* CMFCWorkVegaView::getAdfName() { CMFCWorkVegaDoc* doc = (CMFCWorkVegaDoc*)GetDocument(); const char* adfName = doc-GetPathName() ; // If the filename was not given open "VegaWin.adf". if ( strlen( adfName ) == 0 ) return "ocean.adf"; else return adfName; 阅读全文

posted @ 2005-09-21 00:41 yunbo 阅读(1985) 评论(3) 推荐(0)

摘要:在进行分布交互式仿真系统开发和应用过程中,不管是进行各种形式的支撑技术的研究或相关产品的开发,还是面向应用进行分布式作战仿真系统的建设或运行管理,需要明确的关键点是:进行大规模分布式系统建设牵涉到各种技术,包括仿真算法、部队作战模拟技术、计算机网络技术、虚拟现实技术、GIS技术等各方面;无论这些技术多么复杂,或系统建设需要多个部门合作,需要每个参与工作的人员明确系统建设从时间轴将分为军事应用需求定义与分析阶段、分布式仿真系统开发调试阶段、分布式演练运行阶段三个重要时期;从参与建设和应用的人员区分将分为:军事应用需求专家、分布式系统开发调试工程师、参与分布式演练士兵或军官等不同类型的人员。在分布式系统建设的不同时期,参与工作的人员重点不同,系统建设最终目的是构成能够满足某种目的的共军事人员使用的作战仿真系统,系统对参与演练的军事人员的要求要限制在一定范围内,除必要的军事概念要求外,对仿真系统的要求应尽量减少。 一、 军事应用需求定义与分析阶段 这一阶段主要是进行军事概念模型的分析定义。需要以军事应用需求为牵引,以空间概念模型为规范要求,建立分布式仿真系统建设 阅读全文

posted @ 2005-09-21 00:39 yunbo 阅读(1920) 评论(0) 推荐(1)

摘要:运动体提供了一种在场景中控制动态实体方位的手段。和运动体有关的Vega类包括实体、运动模式、体和碰撞检测,一个运动体只能关联一个运动模式或者体,但可以同时关联多个实体和碰撞检测。 相关的属性: VGCOMMON_ENABLED VGPLYR_TYPE VGPLYR_CLASSNUM VGPLYR_TEAM VGPLYR_CSREF VGPLYR_MOTION VGPLYR_SPLINE_NAVIGATOR 相关的函数: vgPlayer* vgNewPlyr ( void ); vgPlayer* vgNewPlyrCopy ( const vgPlayer *src ); vgPlayer* vgFindPlyr ( const char *name ); vgPlayer* vgGetPlyr ( int _index ); int vgGetNumPlyr ( void ); void vgPlyrVol ( vgPlayer *plyr 阅读全文

posted @ 2005-09-21 00:31 yunbo 阅读(1849) 评论(1) 推荐(0)

摘要:1、做一个Switch下面有两个Group,一个是静止的,一个是动画Animate(喷泉那种); 2、在VP或Vega中编程实现坦克走起来后显示动画Group,停下来时显示静止Group; 3、编程控制Animate的速度,当然是根据坦克的速度来控制。 4、Switch、Animate的控制大家可以参考相关的类! 阅读全文

posted @ 2005-09-21 00:26 yunbo 阅读(1033) 评论(2) 推荐(0)

摘要:1screen.width-500)this.style.width=screen.width-500;" border=0>2、screen.width-500)this.style.width=screen.width-500;" border=0>3screen.width-500)this.style.width=screen.width-500;" border=0>4screen.wi... 阅读全文

posted @ 2005-09-21 00:24 yunbo 阅读(2645) 评论(8) 推荐(0)

摘要: 1#include 2#include "vg.h" 3#include "pf.h" 4#include "assert.h" 5 6 7vgPicker *picker = NULL; 8vgObserver *mainObs = NULL; 9vgChannel *mainChan = NULL; 10vgEnv *mainEnv = NULL; 11vgWindow *mainWin = NULL; 12vgGfx *mainGfx = NULL; 13vgScene *mainScn = NULL; 14 15 16void setSystemPointers(); 17void createPicker(); 18v 阅读全文

posted @ 2005-09-21 00:19 yunbo 阅读(1010) 评论(1) 推荐(0)

摘要:基于vega的pick功能与数据库结合的实例 // VRMSTView.cpp : CVRMSTView 类的实现 // #include "stdafx.h" #include "VRMST.h" #include "VRMSTDoc.h" #include "VRMSTView.h" #include ".\vrmstview.h" #include "vg.h" #include "pf.h" #include "vgutil.h" #ifdef _DEBUG #define new DEBUG_NEW #endif vgPicker *g_Picker = NULL; vgObserver *g_obs = NULL; vgChannel *g_chan = NULL; vgEnv *g_env = NULL; vgWindow *g_win = NULL; br 阅读全文

posted @ 2005-09-21 00:12 yunbo 阅读(870) 评论(1) 推荐(0)

摘要:VP: vpDOF* m_DOF; m_DOF = vpDOF::find("DOFname"); VEGA: vgObject *object; vgPart *part; object= vgFindObj( "car" );//这里面填的是object 的名字. part=vgFindPart(object,"rudder",NULL);引号里填的是 creator里 car的dof部件的名字。 阅读全文

posted @ 2005-09-21 00:07 yunbo 阅读(759) 评论(1) 推荐(0)

摘要:~虚拟现实论文~ 虚 拟 现 实 & 视 景 仿 真 论 述 1、虚拟现实概念    虚拟现实(Virtual Reality,简称VR),是一种基于可计算信息的沉浸式交互环境,具体地说,就是采用以计算机技术为核心的现代高科技生成逼真的视、听、触觉一体化的特定范围的虚拟环境,用户借助必要的设备以自然的方式与虚拟环境中的对象进行交互作用、相互影响,从而产生亲临等同真实环境的感受和体验。    VR思想的起源可追溯到1965年Ivan Sutherland在IFIP会议上的《终极的显示》报告,而Virtual Reality一词是80年代初美国VPL公司的创建人之一Jaron Lanier提出来的。VR系统在若干领域的成功应用,导致了它在90年代的兴起。虚拟现实是高度发展的计算机技术在各种领域的应用过程中的结晶和反映,不仅包括图形学、图像处理、模式识别、网络技术、并行处理技术、人工智能等高性能计算技术,而且涉及数学、物理、通信,甚至与气象、地理、美学、心理学和社会学等相关。   总的来说,实物虚化、虚物实化和高性能的计算处理技术 阅读全文

posted @ 2005-09-21 00:04 yunbo 阅读(8082) 评论(5) 推荐(0)

摘要:提供下载 阅读全文

posted @ 2005-09-21 00:00 yunbo 阅读(673) 评论(3) 推荐(1)

摘要:Vega是一种用于实时仿真及虚拟现实应用的高性能软件环境和工具。它主要包括两个部分:一个是被称为LynX的图形用户界面的工具箱,另一个则是基于C语言的Vega函数调用库。LynX的主要功能是通过可视化操作建立起三维场景模型,并将其存在一个应用定义文件(.ADF)中,而后应用程序就可以通过调用Vega的C语言函数库来对已建好的三维场景进行渲染驱动。由于Vega起初是作为在SGI UNIX平台上的一个产品,后来才移植到Windows NT平台上的,其移植目标就是确保已存在的UNIX平台上的Vega应用能够很容易地移植到PC平台上,所以其程序设计风格与UNIX程序设计颇为相近。所以开发WINDOWS程序时,有很多问题。 阅读全文

posted @ 2005-09-20 23:49 yunbo 阅读(2105) 评论(2) 推荐(0)

摘要:大家做地形时,都会用到这样哪样的数据格式,下面请看看这个文件,对做地形很有帮助! 阅读全文

posted @ 2005-09-20 23:38 yunbo 阅读(463) 评论(1) 推荐(0)

摘要:1、通用API函数: Vega通用API函数能操作大多数的Vega类和对象(注意不是全部)。 1.1 Vega结构类: Vega的结构类列表列出了Vega中可用类实例的类型,你能看到它们中的大多数都是Lynx面版中的对象。 当用户建立了一个Vega类实例的时候,也就提供了一个指向类结构的指针,MPI提供了函数去操纵这些结构元素, 因此用户不必了解它的数据结构,虽然这个数据结果对用户是透明的。当MPI改变了这个数据结构时,用户原有的 程序代码没有必要跟着改变,所有的数据类型都在vg.h中定义。 VGTYPE_CHAN VGTYPE_MOTION VGTYPE_WINDOW VGTYPE_GFX VGTYPE_OBSERV VGTYPE_ENV VGTYPE_SCENE VGTYPE_ ISECTOR VGTYPE_ SYSTEM VGTYPE_VOL V 阅读全文

posted @ 2005-09-20 23:07 yunbo 阅读(1637) 评论(0) 推荐(0)

摘要:VEGA编程——DOF指南 DOF节点在Creator中可以方便的被创建,也可以使用Local-DOF菜单下的DOF Viewer命令进行交互式的查看,关于如何创建DOF并设置相应的约束条件就不详细讲了,可以参考相应的帮助文档,或者Creator的中文书,如果有的话。 考虑在虚拟场景中有个可以被打开和关闭的门,要在Vega中实现交互控制该门的闭合,怎么办?对了,很简单,DOF! 在Creator中创建一个名为“door”的DOF节点,将门部分的模型,通常是个体节点放置到该节点下,用Set Local命令将DOF原点放置到门轴上,设置其绕门轴的旋转约束,比如绕Z轴,从0到120度。 注意,虽然可以在Creator中使用DOF Viewer查看其运动状态,但是在Vega中它是不会自动开关的,必须通过相应的API函数来控制,下面是一个简单的开门程序,大家可以举一反三,实现开/关门: 阅读全文

posted @ 2005-09-20 23:03 yunbo 阅读(1082) 评论(0) 推荐(0)