VP中文教程 - Vega Prime培训教材.doc_第1页
VP中文教程 - Vega Prime培训教材.doc_第2页
VP中文教程 - Vega Prime培训教材.doc_第3页
VP中文教程 - Vega Prime培训教材.doc_第4页
VP中文教程 - Vega Prime培训教材.doc_第5页
免费预览已结束,剩余76页可下载查看

下载本文档

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

文档简介

华力创通公司仿真系统技术部 版权所有Vega Prime培训教材Version 1.2 for Windows 2000, Windows XP Professional Edition, Solaris 8.0, and Red Hat 8.0 Linux 北京华力创通科技有限公司仿真系统事业部2003年12月说明4第一章 开始6介绍6使用VP和LP6VP应用的组成7启动LP8退出LP8保存9LP的界面构成9第二章 创建你的场景13介绍13Prime连接13添加和浏览物体14小结21第三章 运动方式和观察者22介绍22运动和观察22设置观察者22创建Transforms24添加运动模式26添加碰撞检测27定义通道30修改视窗36小结37第四章 环境38介绍38环境设置38定义环境38添加光点40小结42第五章 特效42介绍42添加特效42制作碎片效果43制作龙卷风效果43为粮仓制作特效53小结53第六章 运行应用53介绍53编译和运行tornado应用程序54建立VC编译环境54小结55附录一 Vega Prime API56介绍56设置API56初始化56vpApp类57定义语句58配置59仿真循环59仿真更新59关闭60VP最小的应用60附录二 tornado应用程序61介绍61程序剥析6125说明本书主要介绍如何掌握Vega Prime的基本用法。您可以根据书的内容在自己的工作地点学习使用Vega Prime。本书将介绍Vega Prime实时应用、Lynx Prime用户界面,和Vega Prime工具箱的基本用法。您将学会如何创建一个能够移动的模块,小范围地形,特殊效果和爆炸的实时3D应用。我们建议您按本书的章节顺序依次学习。因为书中的章节是按创建和创建过程遇到的相应主题顺序依次排列。因此本书也是一个使用方便,按主题顺序的参考书。学习完成本书内容,您将能够完成以下操作:n 创建一个应用结构文件(ACF)文档,包括相关的静态和动态物体,多通道视角,动作执行规化和特殊效果。n 建立一个微软开发演示工作平台,用于编辑您的Vega Prime应用。准备工作n 在您学习本书内容时,请先安装Vega Prime并按书内容操作软件。n 本书只包括为Window设定的文件路径。如果您在Solaris或Linux中使用Vega Prime,缺省路径为/usr/local/MultiGen-Paradigm/n 完整的应用结构文件和代码位于C:ProgramFilesMultiGen-Paradigmresourcestutorialsvegaprimedesktop_tutortor nadocompleted_ACF 目录下,使得转入程序任何部分或检查运行结果都非常容易。n 用于参考的文件(PDF格式)在C:Program FilesMultigen-Paradigmdocsvegaprimepdf 目录下。第一章 开始介绍Vega Prime(以下简称VP)是一个实时三维驱动的工具包。LP(以下简称LP)是用来定义VP中的类及其参数的人机交互界面,定义好的内容可以保存到一个文件中。这部分内容描述了VP的结构和用户界面。使用VP和LPVP最好与LP一起使用。尽管VP包含了创建一个应用所需的所有API,但LP简化了开发过程,而且LP允许开发者无需编写代码即可创建一个应用。LP是一个编辑器,用于增加不同种类的模型,为模型定义参数。这些参数都存贮于应用配置文件(ACF)中的一个模型结构内,例如观察者的位置,模型及它们在场景中的位置,在场景中的移动,光线,环境效果,及目标硬件平台。ACF文件包含了VP在初始化和运行时所需的信息。您可以在Active Preview(动画预览)中查看你所定义的内容。AP可以允许您使用交互式方法进行配置ACF,Active Preview会根据变化信息持续修改ACF内容。当出现变化,AP将用新的数据更新VP仿真窗口内容。您同样可以用C+语言编写程序使场景更加生动。您可以根据应用中的特殊场景修改模型的参数。当一个模型建立完成后,您可以修改它位置。VP应用同样可以将ACF加载到一个图像数据流中。当您编辑完应用后,它就成为一个可运行的3D实时应用!VP系统结构如你需要了解更多LP内容及它如何与VP一起工作,请查询Vega Prime程序员指南。VP应用的组成应用程序应用程序控制场景,模型在场景中的移动,和场景中其它大量的动态模型。实时应用程序包括汽车驾驶,动态模型的飞行,碰撞检测,和特殊效果,如爆炸。您在VP外的开发平台创建应用程序,并将文件以.ccp格式存档。它就包含了C+可以调用的VP库的功能和分类。在编辑完成后就形成了一个可执行的实时3D应用文件。应用配置文件应用配置文件包含了VP应用在初始化和运行时所需的一切信息。通过编译不同的ACF文件,一个VP能够生成不同种类的应用。ACF文件为扩展Mark-up语言(XML)格式。您可以使用VP编辑器LP来开发一个ACF,然后您可以使用VP API动态地改变应用中模型运动。对于实时应用来说,ACF不是必要的,但它可以将改动信息进行译码,记录在.cpp程序中,这样可以为您节省大量的时间。模型包以前,通常是通过计算机辅助设计系统或几何学来创建单个模型,但这些方法在实时应用很难进行编码。现在,可以使用MulitGen Creator和ModelBuilder 3D,以OpenFlight的格式来创建实时3D应用中所有独立的模型。可以使用Creator Terrain Studio(CTS),以MetaFlight格式来生成大面积地形文件。并可以使用这两种格式在VP中增加模型文件。启动LP在本章开始前,请先安装好VP,并正确建立许可协议。帮助文件夹安装在:C:ProgramFilesMultigen-Paradigmresourcestutorialsvegaprimedesktop_tutortornadodata目录下,它包含了本书所有练习的所需的源文件。请参照Vega Prime启动指南,以获取安装和运行的有关信息。您可以根据操作系统的类型来打开LP:n 如操作系统是Windows,请按开始-程序-MultiGen-Paradigm-Vega Prime顺序点击,然后从第二级目录中启动LP。你也可以点击桌面上LP的快捷键启动程序,这个快捷键应在安装程序时创建完成。n 如操作系统是Solaris或是Linux,请打开命令窗口,在命令行中输入LP,启动该程序。退出LP如需退出LP,选择文件-退出,或同时按Ctrl和Q键。您也可单击窗口上方的标准关闭键。保存我们建议您经常在LP操作过程中进行保存。这样在出现突然停电或系统故障时,不会丢失数据。LP在文件目录中提供了所有标准文件工具。你必须学会使用这些工具。Save 保存这在这个文件,我们建议您在修改原文件前进行保存,快捷键:Ctril+S。Save As 以其它文件进行存档。自动给文件名附加.acf或.mft后缀。LP的界面构成LynX Prime用户界面包括四个部分:实例树形显示区(Instance Tree View),用户操作区(GUI View),应用程序区(API View),和工具条(Toolbar)和目录区(Menus)。所有这些区域将显示同一选定的对象的信息,但是这些信息是以不同格式进行安排的。你可以在一个或多个工作区进行操作来定义ACF。GUI View用户操作区在用户界面中显示ACF模型及相关的参数,操作起来十分方便。你可以从一个下拉菜单中选择参数,也可在空格处输入参数。当您打开Lynx Prime,第一个显示的用户操作窗口叫myKernel,这是Vega Prime中Kernal类型中的一个实例。Kernel即是应用的起始点。Instance Tree View实例树形显示区显示目前正在操作的ACF文件和文件中包含的所有模型。实例树用一个等级结构显示了模型间的关系,及与它们的上级模型和下级模型的关系。通过实例树你可以直观的了解到应用中的模型之间的联系。如果您选定等级中一个模型,在所有的操作区中同时显示这个模型的有关信息。 如果一个模型在文件中的不同的地方被使用,在这个模型的文件名旁就标有蓝色的箭头。向下的箭头表示文件第一次被使用。向上的箭头表示这个模型的其它应用。如上面图例所示,MyPipeline的子目录MyWindow调用MyChannel,这是MyChannel第一次被调用,所以在它旁边标有一个向下的箭头。MyChannel后又被myObserver调用,所以这时在它旁边标有一个向上的箭头。当您选定一个图标时,图标的属性和当前的参数就会显示在用户操作区和API区。API ViewAPI区显示选定的模型的所有可能的变量。在这里可以定义模型的值,就象在用户操作区一样。但是在API中,你可以直接给变量赋值。当您更改应用中的参数时,你可参考API区中要使用的变量的值。ToolbarLynX Prime工具条包括所有操作模型及属性的快捷按钮。这些功能同样可以在LynX Prime的目录中找到。New File创建一个新的,含有默认类型值的ACF文件。Open File打开文件浏览器,你就可以选择一个ACF文件加载到LynX Prime。所选定的ACF文件将替换目前正在显示的ACF文件。如果目前显示文件已经更改过并且还没有存盘,LynX Prime将会在打开文件浏览器之前提醒您保存更改。Save File保存当前的ACF。如果这个文件没有保存过,你可以在显示的对话框中输入文件名和保存目录。Create Instance将显示一个对话框,其中包含可以增加的模型类型列表。也可以根据名称或范围在对话框中显示或分类这些项目。Cut Instance将当前选定的模型拷贝到剪切板,并从当前的ACF文件中移走。Copy Instance拷贝当前选定的模型到剪切板,但模型仍留在ACF文件中。Paste Instance将剪切板中所存的模型加到当前ACF文件中。只有剪切板中含有模型才能执行此操作。Delete Instance从当前的ACF中移走选定的模型。将会出现一个对话框提示您进行删除或取消操作。删除操作不会在剪切板中留下模型的拷贝。Backward显示前一步显示。Forward显示下一个。只有操作过退后键才能操作这一步。Views在LynX Prime中四个不同的操作区之间转换:n 用户操作区在上面,同时API区在下面n API区在上面,同时用户操作区在下面n 只显示用户操作区n 只显示API区Active Preview当LynX Prime中的参数发生变化时,显示运行一个基本Vega Prime应用,这个应用接收LynX Prime的发送的参数。您可以在您的ACF的三维场景显示中移动。ACF Information弹出一个对话框,显示当前ACF文件的信息。这个对话框同样可以用于执行其它ACF文件的操作,和生成一个在当前ACF文件中运行的应用。LP Documentation发布在线帮助阅览器,可以访问到每一个API和构成API各种方法。在线帮助提供Vega PrimeAPI的最新信息。第二章 创建你的场景介绍在您的应用中将要创建一个场景,包括一片郊区,一所农舍,一辆行驶的汽车,和一个谷仓。在下一章中,您将在场景中增加龙卷风,它摧毁所经过的地区的所有东西。在场景中增加一头奶牛,它被龙卷风从地面刮起卷到空中。开始时,您将使用LynX Prime来创建模型。这些文件是Vega Prime的一个类别(myObject)中的实例。Prime连接您将用农舍,汽车和谷仓的模型来实现Prime连接。其中你可以在MultiGen Creator桌面指南中找到农舍的实例,稍做修改后即可完成它的连接。注意!当您学习书中所有操作时,请按书中所标明的文件名或物体名进行操作。您随后运行的应用将按您存在ACF的文件的文件名进行调用。目标这部分的学习目标是使用LynX Prime的基本内容。您将把OpenFlight文件作为物体添加到场景中,并且为它们定位。一个物体对应着一个OpenFlight文件。一个场景就是一个观察者可以浏览到的事件集合。然后您可以在Active Preview(动画预览)中查看场景并在其中移动,也可以交互式修改ACF。在此过程中,您将学到一些基本Vega Prime概念,包括:n 在LynX Prime中创建和存贮一个ACF文件n 熟悉LynX Prime用户操作界面和其它界面n 在您的仿真中加入OpenFlight模型做为物体。n 在场景中添加新的物体。n 在API区更改模型的参数。n 使用动画预览工具预览和修改应用。添加和浏览物体您将把OpenFlight文件作为物体加入到场景中。这些物体包括地形,农舍和汽车文件。您还要给他们固定好位置和方向,然后在动Active Preview中交互式的浏览这些物体。添加地形地形创建是应用的基础。在LynX Prime中为场景类赋一个地形OpenFlight文件值。您可以在Active Preview实时应用中浏览场景,并在其中移动。Step 1 在C盘中创建一个文件夹 “VegaPrime_Desktop_Tutoria”,把所有完成的ACF文件存于这个目录中。Step 2 单击 开始 程序 MultiGen-Paradigm Vega Prime LynX Prime,打开LynXPrime.Step 3 单击Vega Prime的菜单栏中的文件,选择另存于(Save as),弹出对话框,将对话框中的目录改为C:VegaPrime_Desktop_Tutorial,将您的ACF文件重命名为Chapter2.acf。Step 4 单击保存,将您的ACF文件存于C:VegaPrime_Desktop_Tutorial中,对话框关闭,LynX Prime窗口标题条显示新的ACF文件名。Step 5 单击用户操作区顶部的实例键,选择myObject。您也可以在实例树中单击myScene,在它下面选定myObject。myScene实例是myObject的上一级实例。您可单击实例键,从它的选择列表中选择myObject。注意在文件名区中有town.flt文件,它是在默认ACF模板中myScende实例的默认子物体,但是你必须用新的OpenFlight文件来替换它。Step 6 点击Filename区旁的浏览键,在C:Program FilesMultigen- Paradigmresourcestutorialsvegaprimedesktop_tutortornadodataland 目录下选定Prime_Junction.flt文件。当您在对话框中点击Open,Prime_Junction就将替换town.flt文件。Step 7 在API区中在LynX Prime窗口下面,选择myObject的value,将其改为terrain,在用户操作区和实例树区中,myObject改为terrain。Step 8 在实例树区,点击myScene,注意在所有的三个显示区内,都显示terrain是myScene实例的子物体Step 9 保存。预览应用现在您可以在Active Preview中预览您的场景。利用Active Preview你可以实时观测到开发出的应用。Active Preview运行时, 任何ACF参数的变化也会立即显示出来。Step 1 选择Tools下的Active Preview,弹出命令提示窗口,然后Active Preview打开,开始运行Chapter2.acf文件。 注意如果Active Preview充满了您的屏幕,您可以缩小它的尺寸。自先,按Esc键关闭Active Preview窗口,在实例树区内,点击myWindow实例打开myWindow用户操作区,这个实例控制Active Preview窗口,例如,将窗口的长和宽的值改为5,12,形成一个较小窗口。可以用鼠标和键盘来控制场景中的方向,如要在场景中向前进,按住鼠标左键。如要向后退,按住鼠标右键。如要停止(刹车),按下键盘中的X键。将鼠标拉向你,可在场景中向上;将鼠标推离你,可在场景中向下。鼠标固定在窗口的中央,可保持盘旋模式。n 在场景中向前进,按住鼠标左键。n 在场景中向后退,按住鼠标右键。n 如要停止(刹车),按下键盘中的X键。n 将鼠标拉向你,可在场景中向上;n 将鼠标推离你,可在场景中向下。n 鼠标固定在窗口的中央,可保持盘旋模式。Step 2 查看这片区域,这个场景有大片贫脊的土地,但在高山的另一边有一个小湖!Step 3 完成检查后,按Esc关闭Active Preview。加入一个经典农舍。添加农舍也许您已经在Creator Desktop Tutor中建立一个农舍。为这个Desktop Tutor,这个农舍已经进行了修改,并安装在Vega Prime目录中。把农舍作为其它物体加入场景,然后修改它的位置。Step 1 在实例树区,点击myScene,它的用户操作区即显示出来。将农舍作为子物体加在这个用户操作区中的子区。Step 2 在Children区点击创建实例键,为新实例选择Object类型。Step 3 在对话框中选择Object,点击OK。Step 4 在子区点击前进键进入myObject用户操作区。Step 5 在API区,选择myObject的Value,将值改为farmhouse.Step 6 点击在文件名区旁的浏览键,在c:Program FilesMultigen-Paradigmresourcestutorialsvegaprimedesktop_tutortorna dodatafarmhouse目录下选择farmhouse.flt文件。Step 7 在地形中确定农舍的位置,在Position区中输入X,Y,Z的值为(773.822,945.877,-1.000)Step 8 在工具条中点击Active Preview键,在场景中确定农舍的位置(固定在湖边!)。用鼠标和键盘控制在场景中的位置。Step 9 做完后关闭Active Preview。Step 10 保存你的工作。 改变位置尽管上一步农舍被固定在湖边,但我们需要将农舍移到靠近公路和农场的中心区域。这个操作十分简单。Step 1 在farmhouse用户操作区,将农舍的坐标位置改为(1960,1000,0)。Step 2 点击Active Preview键,重新查看农舍的新位置。农舍已经移到山的另一边,现在固定了它的位置。增加汽车在农场中添加一辆汽车非常容易,你可以将汽车固定在靠近农舍的位置,在后面,您将学习让汽车运动起来。Step 1 进入myScene用户操作区。Step 2 在Children区点击创建实例键,选择物体类别为新实例。Step 3 在创建实例对话框中选择Object,单击OK。Step 4 在子区中myObject会突出显示,点击前进键进行myObject用户操作区。Step 5 在API区,选择myObject的Value,将值改为Hummer。Step 6 在用户操作区中,点击文件名称区旁的浏览键,在c:Program FilesMultigen-Paradigmresourcestutorialsvegaprimedesktop_tutortorna dodatadirtyHumv目录下选择humv-dirty.flt文件。Step 7 在位置区输入(1990,1000,0)Step 8 在方向区内输入汽车的头朝向,斜度,转弯度分别为:(140,0,0)车的位置就定为在农舍前的公路上。Step 9 点击工具条动画预览键,在场景中将汽车位置固定在农庄旁。Step 10 关闭Active Preview,保存。添加谷仓这里添加一个大谷仓来储存粮食。Step 1 进入myScene用户操作区。Step 2 在Children区点击创建实例键,选择Object类别为新实例。Step 3 在创建实例对话框中选择Object,单击OK。Step 4 在子区中myObject会突出显示,点击前进键进入myObject用户操作区。Step 5 在API区,选择myObject的Value,将值改为grainStorage(注意大写字母S)。Step 6 在用户操作区中,点击文件名称区旁的浏览键,在c:Program FilesMultigen-Paradigmresourcestutorialsvegaprimedesktop_tutortorna dodatagrainstorage目录下选择grainStorage.flt文件。Step 7 在位置区输入(2450,2465,0)头朝向,斜度,转弯度都为0。Step 8 运行Active Preview,谷仓的位置与农庄保持一定距离。存盘。 小结我们创建了一些模型,并把他们放入场景中。当我们在场景中移动时,这些物体才像是在移动,但这并不是我们希望的最后结果。下一章,我们将讨论观察者,物体的运行方式s,及通道。第三章 运动方式和观察者介绍现在,你已经可以在场景中移动了。如果让场景中的物体也活动起来就好了。运动模式仿真与定位方法不同,例如有飞行,行驶,行走或盘旋。当你将一个运动模式与一个您希望它在场景中运动起来的物体连接起来时,你同样可以将观察点放在或靠近运动物体,这样你就可以感觉到你正用鼠标来控制它的运动。本章,你将学到如何在不同位置上设置观察点,连接运动,定义通道,以实现在同一时间观察场景的不同点。运动和观察目的这个指南将使您学会如何在LynX Prime中定义和定位观察点,以从不同的有利点观察场景。你还将给汽车加上行驶和碰撞检测,为场景中的与汽车相联的土地加上碰撞检测。最后你将设立不同的通道,这样您就能在Active Preview中从不同的观测点观察场景中的物体。目标你将学到以下这些概念:n 定义观察点的位置和朝向n 使用transform来放置观察者n 用运动模块给物体加载运动n 为物体加载碰撞检测n 为Active Preview设置场景的不同观察点。设置观察者一个观察者就是您仿真的观察点。观察所有的物体都是从观察点发出的。在Vega Prime中观察者的起始位置的默认值是地形的原点。原点的通常位置是在西南角或地形的中点。您可以在MultiGen Creator或ModelBuilder 3D中的地形OpenFlight文件中找到原点位置。Prime_Junction.flt地形的默认位置在西南角。在Vega Prime平面地面的坐标系统中,用X,Y,Z来表示观察者的位置。观察者的方向是用坐标系统中的朝向,斜度和转角度的HPR值来表示。让我们来看一下坐标系统是什么样的:观察者的位置是在三维空间中的XYZ坐标点。l +X指向右l -X指向左l +Y指向前l -Y指向后l +Z指向上l -Z指向下观察者的方向是用坐标系统中的朝向,斜度和转角度的HPR值来表示。朝向是指Z轴上的转向:l +H指看向左旋转l -H指看向右旋转斜度指X轴的转向:l +P指向上旋转l -P指向下旋转转角度指Y轴转向:l +R指运动转向右边旋转l -R指运动转向左边旋转现在观察者的位置和方向已经定义好了,我们就要开始让它进行运动了!创建TransformsTransform是一个动态坐标系统。您在场景中设置的位置是物体,特殊效果光线或其它transform的子系统。也就是说,transform的值与父系统有关。这部分将讨论如何将transform做为出发点用于一个观察者,它将设置于汽车的后面。观察者将随着场景中汽车位置的移动而移动。Step 1 打开Chapter2.acf。Step 2 在工具条中点击创建新实例键,打开创建实例的对话框。Step 3 在实例列表中选择transform,点击create。在LynX Prime窗口中显示myTransform用户操作区。Step 4 在API区,将名字改为hummerTransform,这个tranform将用于从汽车上设置我们的观察点。Step 5 在hummerTransform用户操作区,在Parent列表中选择car,这样transform的父系统就是hummer。所有赋于transform的值都与car物体相关联。Step 6 将transform的位置设为(0,-30,5)transform的位置就为在汽车后的30个数据库单位(米),汽车上空5个数据库单位。Step 7 保存您的工作,目录为C:VegaPrime_Desktop_Tutorial。文件名为Chapter3.acf。 为观察者设置目标我们将把观察者的观察角度设置在汽车上。Step 1 在实例树区选择myObserver,打开myObserver操作区。Step 2 注意在Look At Target中的设置为无。Step 3 在Look From Target列表中选择hummerTtransform。Step 4 在更新位置(Update Position)区中清除Enabled的复选框,这样观察者的位置就随汽车的位改变而改变。(您将在下节中学习为汽车加载运动)。Step 5 打开Active Preview(Ctrl+A)。检查观察者的位置应在汽车后面。Step 6 检查完毕后关闭Active Preview。Step 7 保存ACF文件。(Ctrl+S)在下节中,你将学会给汽车添加运动模式。添加运动模式运动模式是一个位置方法,它允许通过使用一些标准输入设备执行经过准确定义的定位方法,这些设备包括,例如:鼠标,键盘和操纵杆。Vega Prime中的vpmotion类是所有运动模式的基础。在上几章中,用来在场景中移动的默认的运动模式叫MotionUFO。这种运动模式是一个无重力运动模式,它可以迅速移动,并且可以移动到任何地方。还有其它运动模式可以支持飞行,行走,驾驶等等。首先您要将UFO运动模式添加到汽车上,然后,您将学习如何更改运动模式。Step 1 从Instance Tree区选择汽车。Step 2 在hummer的用户操作区,在Update Position列表中选择myMotion。Step 3 注意选择Enable复选框,这样汽车就能从运动模式中接收并处理最新的信息。Step 4 打开Active Preview(Ctrl+A)。 注意汽车正以UFO运动模式在地上运动,但这种运动方式对于普通汽车是不正常的。所以我们要更改,选择更好模式以适应汽车的运动。Step 5 关闭Active Preview。更改运动模式MotionUFO适合飞行穿越仿真,但是如果您希望改为行驶穿越仿真,你就必须将运动模式改为MotionDrive,在三种地形中可以应用MotionDrive。使用可以控制运动模式的速度和驾驭动作。另外,还可经常看到汽车驾驭!Step 1 在Instance Tree中选择myMotion,显示myMotion的用户操作区。Step 2 在Type列表中选择MotionDrive。Step 3 在Speed区中将最高速度减小为10.00,以便容易驾驭。Step 4 打开Active Preview,根据窗口下方的提示,用鼠标在场景中行驶您的汽车。试着围绕农庄,并湖边停下。n 按鼠标左键为加速,朝各个方向拖拉鼠标,汽车的方向就随鼠标就动。n 按鼠标右键为减速,连续按右键,汽车就慢慢减速。n 停止运动(刹车),按鼠标中键。n 后退是按鼠标右键并向后拖。Step 5 保存您的设置。您可能觉得汽车一直在下沉,不用担心。您的运动模式不是与地面接触,或者说,您的运动模式根本不能找到地。在添加接触检测后情况就会好一些。添加碰撞检测Isectors是接触检测,一些接触检测有大量复杂的运算,可以支持你用地线夹将运动模式固定在地面。还有一些相对简单的,包含几行代码行的运算,用来区分目标。根据检测类型的不同,您可以在C+程序中编写适当的反应程序,如在墙体前停车。你可以从以下内容选择运算:n Tripod 三条聚集数据的直立线段,指引使用t者到指到目标。Tripod用于在水平地面上。n Bump-六条线段,沿X,Y,Z轴正负方向聚集爆炸。n LOS-单根视线线段,沿Y轴向辐射。它聚集您面前的数据。n HAT-单根线段,沿Z轴辐射,它计算地形上的高度。n XYZPR-计算及斜度和转向n ZPR-计算爆炸点的Z轴方向的斜度和转向n Z-计算Z轴上的爆炸点。在我们指南中,我们将添加一个Isector来用地线夹将汽车固定在地形上,然后给汽车添加一个bump检测爆炸。我们将使用LynX Prime添加这两个运算。添加一个Tripod检测添加之前,你必须创建一个实例来用地夹线通过Isector来固定一个运动模式。Step 1 在myMotion的用户操作区中,点击创建新实例的键,这个按键在Next Position Strategy列表旁边。Step 2 在创建新实例对话框中,选择GroundClamp,点击Ok。Step 3 点前进键显示myGoundClamp用户操作区。Step 4 点击Isector列表旁边的创建新实例键。Step 5 在创建新实例的对话框中选择IsectorTripod,Ground Clamp实例将会使用这个功能来计算爆炸信息。最终运动方法将接触信息反馈给汽车。Step 6 点击前进键显示myisector用户操作区Step 7 将mylsector改名称为tripodIsector.Step 8 保存。设置Tripod检测我们需要将地形做为tripod检测的目标,tripodIsector将用地形来寻找接触,并将信息传递给所有相关的运动模式。Step 1 在tripodIsector用户操作区,在Target列表中选择地形物体作为目标。Step 2 设置选择Render Isectort复选框用于isector显示。如果isector找到地形目标,线条显示为绿色,否则线条显示为红色。Step 3 运行Active Preview,你将能在屏幕上发现从汽车发出三条绿垂直线。Step 4 设置tripod检测的宽度为10,长度为12,这样可以检测更大的接触面。宽度和长度的参数表示三根线彼此之间的距离。重新设置后,三根线的之间距离会拉大,您将能看到地面上三根直线间的三角形联线。但这个三角形不处理任何爆炸信息,而是由这三根垂线处理所有的工作。Step 5 现在,沿湖边驾驭汽车。请注意你现在不会再觉得汽车在向下陷。当心,别开到湖里去。Step 6 现在请开到马路上,开始练习您的驾驭技术。Step 7 将汽车驶离数据库区,当你离开仿真世界的边缘时,汽车发出的三根线呈红色,因为这时他们无法再检测到与地面目标的接触。Step 8 退出Active Preview,别忘了存盘。添加Bump检测如果汽车面前有农舍时,Bump检测就会检验到。注意:如果在LynX Prime定义碰撞检测,那么它无法阻止汽车穿越农舍。你必须在API中定义这个动作,这部分将不在本文范围之内。随后,你要在LynX Prime中添加汽车与房屋相撞时的效果。Step 1 在工具条中点击创建实例键。Step 2 在对话框中选择IsectiorBump。Step 3 点击Create。Step 4 将myIsector改名为bumpIsector。Step 5 将碰撞的宽,长和高的参数设置为10,因为默认设置值太小。Step 6 在Target列表中选择农舍为目标。接触检测将根据边靠边标准检测与农舍的接触。Step 7 打开Isector Mask旁的浏览按键打开Bitmask Editor,bitmask将会把指导地形目标(我们将在后面的指南中建立这些地形目标)从一些检测中排除出去,在检测最新过程中节约时间。Step 8 除了Bit1之外,清除所有的的bit。Bitmask将会显示为0000001。Step 9 点击ok保存bitmask。Step 10 在Position Reference列表中选择汽车目标,碰撞检测自己就会与汽车建立联接。Step 11 在用户操作区中选择Render Isector复选框,以便在Active Preview中查看线段。Step 12 点击Owning Isector Service列表旁的创建实例键,并且选择IsectorServiceInline。在线服务将会为每个结构提供最新的相关的检测,这样就把接触数据存贮起来为以后使用做准备。处理接触信息的流程与处理应用的流程一样。注意:我们不必给tripod检测添加在线服务,因为三角检测不直接联接于运动模式,而运动模式处理最新数据。但是,接触测试不与地夹线或运动模式联接。三角检测本身只确认它的位置与汽车直接相关。在线服务确认每个结构的检测是最新的,这样才能存贮数据。意外收获!如果您不喜欢在汽车后面驾驭汽车,你可以将transform添加在汽车内。Step 1 在hummerTransform用户操作区,将transform的位置改为(-9,-13.2,2.93)。Step 2 运行Active Preview来检测新的设置,你觉得驾驭变得容易了不是更难了?如果你喜欢这个设置,就把它保存起来,如果不,你可将设置改回原来的值(0,-30,5)。Step 3 退出Active Preview,退出前请先保存。定义通道通道就是进入图形窗口的视角。一个窗口可能有几个通道。通道的位置由拖曳区来管理。拖曳区是根据相关窗口的规范值。 通道的默认值是与窗口大小一样,但是你可以调节它的大小。你同样可以调节拖曳区的值来排列或叠加通道。 我们将要用一些观察者来创建通道,然后调节他们。创造新的通道和观察者Step 1 从工具条中点击创建实例键,显示创建实例对话框。Step 2 在Class列表中选择Channel和Observer。Step 3 点击Create。这样你可以同时创建通道和观察者。Step 4 将myChannel 1改名为houseChannel。Step 5 将myObserve 1改名为houseObserver.配置房屋通道要配置房屋通道,要先将房屋观察者和房屋通道联接起来,然后在Active Preview窗口中放置房屋的视角。Step 1 在houseChannel用户操作区,在Used By Observer列表中选择houseObserver。Step 2 在Used By Window列表中选择myWindow。Step 3 在拖曳区输入以下值,在窗口的左上方设定房屋通道。n 左边=0n 右边=0.5n 底边=0.5n 顶边=1Step 4 保存ACF文件。配置房屋观察者Step 1 在houseChannel用户操作区中,点击前进键选择Used By Observer列表中houseObserver。houseObserver用户操作区打开。Step 2 在Scene列表中选择myScene。Step 3 将观察者的位置设为(1280,880,140)。Step 4 选择farmhouse作为注视目标。农舍就一直处于房屋观察者通道的中心。Step 5 注意在Get Position From列表中选择No Selection。Step 6 在Attachments区,点击添加联接按键,选择myEnv与房屋观察者联接,将在houseChannel中有光线显示与myEnv联接。Step 7 运行Active Preview。你将会看到两个窗口,一个是原来的窗口,另一个左上角的窗口显示的是从上向下看农舍的情景。Step 8 退出Active Preview, 注意保存您的设置。让我们在农庄前视点增加更多的通道,再添一个俯视通道。从前方设定一个通道首先,主我们从前方设定一个视角。Step 1 点击工具条上的创建实例键,打开创建对话框。Step 2 在Instances to Create区输入2,创建2个通道。Step 3 在Class列表中选择Channel。Step 4 单击Create。Step 5 转入myChannel1用户操作区。Step 6 将mychannel1改名为portchChannel。Step 7 在拖曳区输入以下值,在Active Preview窗口的左下角设定前方通道位置:n 左边=0n 右边=0.5n 底边=0n 顶边=0.5Step 8 在Used By Window列表中选择myWindow。Step 9 选择Used By Observer列表旁的创建实例键。这样就创建了一个新的观察者,并将porch渠道与新创建的观察联接起来。Step 10 保存。配置前入口观察者Step 1 在Used By区域,点击前进键进入myObserver1用户操作区。Step 2 将myObserver1改名为porchObserver。Step 3 在Scene列表中选定myScene。Step 4 在Attachment区,点击增加联系键来建立与myEnv的联接。这个操作也将增加光线。Step 5 点击Look From Target列表旁的增加实例键来增加一个新的transform,并将它与入口观察者建立联接。Step 6 保存。配置入口transformStep 1 在porchObserver用户操作区,在Look From Targe列表中myTransform旁有前进键,点击此键后显示myTransform用户操作区。Step 2 将myTransform改名为porchTransform。Step 3 将父系统设置为farmhouse。Step 4 设置位置为(3.5,-4,5),设置朝向为180。这个朝向和位置位于农舍的前门向外看。Step 5 运行Active Preview,因为观察设置为入口transform,你可以从入口transform处看到景物,你仍然可能看到农舍,也可从汽车后部看。新设置的通道叠加在原始通道,通道按创建的先后进行排列。所以最新创建的通道在窗口的上方,我们将很快调整原始通道。Step 6 保存ACF文件,退出Active Preview。创建一个俯视通道一个俯视通道可象看地图一样看您的场景。Step 1 在实例树图中,选定myChannel2显示它的用户操作区。Step 2 将myChannel2改名为orthoChannel。Step 3 在Projection列表中选择Orthographic。俯视投影不是一个透视俯视。Step 4 在Frustum区中输入以下参数: 左=-1500 右=1500 下=-1500 顶=1500这个截面参数确定了俯视图的周长大小。Step 5 在Draw区输入以下参数 左=0.5 右=1 底边=0.5 顶边=1俯视图通道位于屏幕的右上角。Step 6 将偏移量定为(0,0,600),将这些输入朝向,斜度和转向值。n 朝向=0n 斜度=-90n 转向=0这个通道向下旋转90度,截取的Z轴上的值为600米,这样屏幕将无法显示物体高于600米的部分。Step 7 在Used By Window列表选定myWindow。Step 8 点击Used By Window列表旁的创建新实例键,为OrthoChannel创建一个新观察者。Step 9 保存。配置Orthographic观察者Step 1 在orthoChannel用户操作区中,点击刚创建的新观察者旁边的前进键。Step 2 将myObserve

温馨提示

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

评论

0/150

提交评论