Vega Prime 虚拟现实开发技术

TabControl初始化设计技巧

对于主对话框的TabControl 控件的初始化,首先需要为主窗口类建立三个成员变量。图10.2.14设置tabControl 成员变量第二个和第三个成员变量为功能窗口的变量。图10.2.15添加窗口类成员窗口类成员,还需要在构造函数里赋初值,在析构函数里销毁指针成员变量。图10.2.16窗口成员初始化和销毁准备工作完成后,即可在OnInitDialog()函数中完成TabControl的初始化工作。图10.2.17TabControl 初始化运行效果如图10.2.18所示。
理论教育 2023-11-25

VegaPrime虚拟现实开发技术概述

Vega Prime 安装完成后,很有必要认识一下它的文件结构及资源。pdf 目录如图1.3.3所示,这些是开始使用Vega Prime 编程的第一手资料。图1.3.3pdf 目录结构Vega Prime 也提供了大量的示例供开发者学习借鉴。图1.3.5vegaprime 目录结构在图1.3.4所示的turorials 目录下能够找到一个tornado 目录,其结构如图1.3.6所示。图1.3.6tornado 目录结构完整了解Vega Prime的安装目录结构后,可以让开发者完全清楚自己所拥有的资源,这是进行Vega Prime 程序开发的第一步。
理论教育 2023-11-24

控制父子关系-VegaPrime虚拟现实开发技术

但相对于父节点,子节点是静止不动的。对于父子关系的设置,代码非常灵活自由,主要有:直接利用addChild 方法。利用vpTransform 对象,把转换作为父节点的儿子,把子节点作为转换的儿子,这样也可以建立父子关系。图6.17.1定义坦克为汽车的子物体运行程序,点击运行按钮,将出现图6.17.2所示的画面,键盘控制汽车的同时,坦克将随汽车一起运动。图6.17.2添加坦克为汽车的孩子
理论教育 2023-11-24

使用多线程:VegaPrime虚拟现实开发技术

在多数情况下,一个应用程序只有一个用户界面线程。工作者线程没有消息处理程序,因此不能处理任何事件或窗口消息。图4.1.2创建线程下面是AfxBeginThread 函数的参数说明:● ThreadFunction:需要在线程中执行的函数名称。表4.1.2所示为预定义的用来设置线程优先级的整数值。表4.1.2线程相对优先级● StackSize:指定分配给要创建的线程的堆栈内容的大小。线程的优先级由母进程优先级和线程优先级共同决定。
理论教育 2023-11-24

VegaPrime使用指南

Vega Prime 包含所有创建虚拟现实应用程序的API,另外还专门设计了图形操作工具LynX Prime。LynX Prime 能够简化应用程序的开发过程,不用编写代码,只需通过可视化编辑界面进行配置,就能够开发出虚拟现实应用程序。同时,LynX Prime 还提供了一个预览功能,让开发者对虚拟现实应用程序的开发达到所见即所得的效果。
理论教育 2023-11-24

通道屏幕视频录制类设计成果

通道屏幕视频录制主要是利用Windows 系统的vfw32.lib 库,继承通道订阅类的功能,在vpChannel::EVENT_POST_DRAW 事件中完成帧数据的提取。这些信息在类的构造函数中都进行了初始化,某些指针变量在析构函数中进行了处理。第五步,视频写入操作主要在下面这个事件响应函数中完成,其功能主要是锁定帧数据,抓取写入视频流,解锁,其代码如下:具体代码如图9.7.1所示。图9.7.1通道屏幕视频录制功能设计
理论教育 2023-11-25

物体平面影子效果-虚拟现实开发技术

把该目录添加到VP 程序管理目录下:pSearchPath_mySearchPath->append;正常添加飞行物体对象,这里需要注意的是:飞行对象需要离开地面一定的距离,才能实现平面光照影子效果。vpObject* pObject_flight=new vpObject();pObject_flight->setName;pObject_flight->setTranslate;pObject_flight->setRotate;添加平面光照影子的效果对象:vpShadowPlanar* pShadowPlanar_myShadowPlanar=new vpShadowPlanar();pShadowPlanar_myShadowPlanar->setName;pShadowPlanar_myShadowPlanar->setEnable;pShadowPlanar_myShadowPlanar->setEffectiveRange;PublicMember::CTS_s_pInstancesToUnref->push_back;最后,实现平面光照影子效果的配置代码,与观察者关联,设置光源,添加平面光照影子对象:pObserver_myObserver->addAttachment;pShadowPlanar_myShadowPlanar->setLightSourceCelestial;pShadowPlanar_myShadowPlanar->addCaster;其详细代码如图6.22.1所示。图6.22.2飞行物体平面影子效果
理论教育 2023-11-25

VegaPrime虚拟现实开发技术-第三方工具使用

DIS/HLA for Vega Prime 基于MAK 公司的网络工具集VR-Link,包括了VR-Link的所有功能,提供来自MAK 产品的灵活和专业的互联技术。另外,创建好的GL Studio 对象能够与用户和其他Vega Prime 对象进行交互。Immersive for Vega Prime 完全支持多节点的分布式渲染。图1.1.9Immersive for Vega Prime 效果图片5.SpeedTree for Vega PrimeSpeedTree 模块能够在实时帧率下进行真实感植被景观的定义与渲染。图1.1.10SpeedTree 效果图片SpeedTree 模块能够对Vega Prime应用中高密度植被进行定义和渲染,并能在达到最佳视觉效果的同时保持原有的渲染效率不变。
理论教育 2023-11-24

使用VC++完成安装步骤

本书是在WindowsXP 系统下,所用Vega Prime 版本为2.0,最终升级为Vega Prime2.0.1,对应的确切开发环境为Visual C++ 7.10。某些VS 2003 版本包含的Visual C++为7.0 版本,请在安装Visual C++环境时确认是Visual C++ 7.10 版本。当然,Vega Prime 2.0 加上Visual C++ 7.10在Win7、Win8 和Win10 下也运行良好。VS 2003的安装界面如图4.1.1所示,其中,只选定安装Visual C++。
理论教育 2023-11-24

VegaPrime虚拟现实开发指南

当然,美工和烘焙模型也能够导入Vega Prime 中。但是,Vega Prime 是一款商业仿真软件,享受其强大功能的同时,需要付费使用,运行时需要License,价格较昂贵。
理论教育 2023-11-24

VegaPrime:配置键盘函数指南

在很多时候,使用键盘控制场景中的物体也是一项基本要求。该函数的具体代码如图6.10.2所示,其中的静态变量PublicMember::CTS_pObject_observer 是定义设置的观察者对象指针,定义方法与前面定义静态成员变量一样。图6.10.1键盘类继承图图6.10.2键盘函数定义完键盘函数PublicMember::CTS_Keyboard 后,还需要把它设置成对应窗口的键盘函数才能真正起作用。图6.10.3所示为改造后的完整主线程程序,请仔细查看其中加粗了字体的代码。图6.10.3Vega Prime应用程序主线程函数
理论教育 2023-11-24

OpenGL绘制几何图形技术

一般情况下,OpenGL 中的点将被画成单个的像素,虽然它可能足够小,但并不会是无穷小。同一像素上,OpenGL 可以绘制许多坐标只有稍微不同的点,但该像素的具体颜色将取决于OpenGL的实现。可以认为,OpenGL的“直线”概念与数学上的“线段”非常接近,它可以由两个端点来确定。OpenGL 提供了一系列函数。前面介绍了关于点、直线和多边形的概念及如何使用OpenGL 来描述点,并使用点来描述几何图形。
理论教育 2023-11-25

OpenGL视图变换

OpenGL 变换实际上是通过矩阵乘法来实现。OpenGL 可以在最底层直接操作矩阵,不过作为初学,这样做的意义并不大。在OpenGL 中,实现这两种功能甚至使用的是同样的函数。OpenGL 之所以这样设计,是为了得到更高的效率。OpenGL 支持两种类型的投影变换,即透视投影和正投影。OpenGL 规定堆栈的容量至少可以容纳32个矩阵,某些OpenGL 实现中堆栈的容量实际上超过了32个。
理论教育 2023-11-25

VegaPrime虚拟现实开发技术:操作DOF及火焰特效

需要注意的是,DOF的命名不能采用默认名称,即d1 等名称。否则,不能依据DOF的名称查找到该DOF。在此例中,命名为turretDOF。图6.19.1DOF 类继承图图6.19.2效果图首先,建立火焰特效,其具体代码如图6.19.3所示。图6.19.3建立火焰特效坦克拥有两个DOF:一个为turretDOF,控制炮塔水平旋转;另一个为barrelDOF,控制炮管上下旋转。
理论教育 2023-11-24

Switch操作技巧,提升实施效率!

Switch 本身是一个节点,它能够包含多个子节点,其功能主要在于控制子节点的渲染显示。图6.18.1Switch 图层结构Switch 节点可以包含多个子节点,每个子节点可以表示出三维对象不同的状态,如图6.18.1所示的完好房子和被破坏的房子两种状态。图6.18.2Switch 类继承图vsSwitch 类视图如图6.18.2所示,开发者可查看系统的自带文档,详细了解其所有功能。否则,可能依据Switch的名称不能查找到该Switch。在farmhouse.flt 文件中,Switch命名为damage。
理论教育 2023-11-24
-已经加载完成-