毕业设计(论文)-天气雷达产品锥面显示程序设计.doc_第1页
毕业设计(论文)-天气雷达产品锥面显示程序设计.doc_第2页
毕业设计(论文)-天气雷达产品锥面显示程序设计.doc_第3页
毕业设计(论文)-天气雷达产品锥面显示程序设计.doc_第4页
毕业设计(论文)-天气雷达产品锥面显示程序设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

分类号:分类号:TN959.4TN959.4 U U D D C C:D10621-408-(2007)D10621-408-(2007) 0344-00344-0 密密 级:公级:公 开开 编编 号:号:20030221612003022161 成成 都都 信信 息息 工工 程程 学学 院院 学学 位位 论论 文文 天气雷达产品锥面显示程序设计天气雷达产品锥面显示程序设计 论论文作者姓名:文作者姓名: 申申请请学位学位专业专业: :电电子信息工程子信息工程 申申请请学位学位类别类别: : 指指导导教教师师姓姓名名( (职职称称) ): : 论论文提交日期:文提交日期: 2007 年年 06 月月 05 日日 天气雷达产品锥面显示程序设计天气雷达产品锥面显示程序设计 摘摘 要要 天气雷达产品对天气预报有着重要的指示作用,为了提高预报的准确性和形象性,对 目前的雷达终端产品有一定的改进,本文介绍了气象雷达终端锥面图形软件的绘制原理及 软件实现方法,应用 DirectX 工具建立考虑地球曲率的锥面模型,结合 Visual S 2003 编程工具,生成对应各个 Cut 的图像,将生成的图像作为对应的纹理图片,将模型与 图像通过纹理贴图的方法结合在一起,再经过灯光,材质,纹理,视角转换等进行纹理效 果处理,让生成的产品更加逼真,易于使用者操作,最终构成气象雷达终端锥面图形的应 用软件,并提供软件生成产品的图像实例,在软件的终端还加入了用户控制部分,可以对 任意位置的回波信息进行观察,同时在终端提供了大地参考面和雷达站点的简要信息,让 软件的使用者一目了然。 关键词:关键词:雷达体扫数据 实体建模 DirectX Visual S 2003 纹理贴图 The Designing of display program of Weather Radar products Abstract The weather radar products has performed an very important part in the weather forecast.In order to enhance the forecast accuracy and the iconicity, the present radar terminal products had been improved. This article introduces the weather radar terminal three dimensional graph software plan principle and the software realization method, by using the DirectX tool establishment considered the curvature of the earth the conical surface model, unified the Visual S 2003 to program the tool. The production corresponds each Cut the image, and produce the image took corresponding the texture, the model and the image unified in together, the process light, the material quality, the texture, the angle of view transformation and so on carried on processing, let the production the product be more lifelike, the easy user to operate, finally constituted the weather radar terminal three dimensional graph application software, and provides the software production product the image example. Key words: Radar volume scan data Entity modeling DirectX VisualS 2003 Texture map 目录目录 论文总页数:36 1 引言引言.1 1.1 概述概述.1 1.2 天气雷达背景知识介绍天气雷达背景知识介绍.1 1.3 天气雷达产品介绍天气雷达产品介绍.2 1.41.4 研究意义研究意义.3 1.5 开发环境介绍及研究思路开发环境介绍及研究思路.3 2 建立模型建立模型.5 2.1 DIRECTX 基础知识基础知识 .5 2.2 WINDOWS基本编程原理和方法基本编程原理和方法.6 2.3 模型的构成思路和设计原理模型的构成思路和设计原理.9 2.3.1 雷达基数据产品剖析雷达基数据产品剖析.9 2.3.2 程序概要设计流程程序概要设计流程.10 2.3.3 两种模型的对比两种模型的对比.12 2.4 地球曲率对模型的影响地球曲率对模型的影响.16 2.5 模型的效果处理模型的效果处理3.18 2.5.1 灯光效果灯光效果.18 2.5.2 材质效果材质效果.19 2.5.3 3D 转换效果转换效果 .19 2.5.4 模型控制模型控制.20 3 反射率产品图像生成反射率产品图像生成.22 3.1 反射率数据提取反射率数据提取.22 3.2 反射率图像生成反射率图像生成.22 3.3 加载色表文件加载色表文件.23 4 模型与图像结合(纹理贴图)模型与图像结合(纹理贴图).25 4.1 贴图原则贴图原则.25 4.2 纹理贴图效果处理纹理贴图效果处理.25 4.2.1 纹理坐标纹理坐标.25 4.2.2 纹理提交模式纹理提交模式.26 4.2.3 纹理过滤方式纹理过滤方式.27 4.2.4 纹理混合纹理混合.27 4.2.5 纹理透明纹理透明.28 4.2.6 纹理动画及多级纹理纹理动画及多级纹理.28 4.3 产品生成产品生成.29 4.4 外界控制外界控制.31 5 程序设计中需要注意的几个问题程序设计中需要注意的几个问题.32 5.1 关于模型建立的问题关于模型建立的问题.32 5.2 关于色表读取的问题关于色表读取的问题.32 5.3 关于纹理贴图的问题关于纹理贴图的问题.33 结论结论.33 参考文献参考文献.33 致谢致谢.35 声明声明.36 第 1 页 共 30 页 天气雷达产品锥面显示程序设计天气雷达产品锥面显示程序设计 1 引言引言 1.1 概述概述 天气对人类的生产生活都起着非常重要的作用,天气预报则是人类研究天气,掌握天 气,以便更好应用天气的主要手段,因此,天气雷达在天气预报中扮演一个非常重要的角 色。新一代多普勒天气雷达对气象预报者及时,准确的预报天气,将气象给人类带来的灾 害尽可能将降到最低。 新一代多普勒天气雷达的体扫数据提供了强度,速度,谱宽三个基本信息。经过后端 软件处的理,可以演变成多个适用的软件二次产品,给使用者带来方便。目前,我国大多 数气象产品是以二维形式来表示三维结构,最具有代表的是 PPI(Plan Indicator) 、 RHI(Range Height Indicator) 、CAPPI(Constant Altitude Plan Position Indicator),这 些方法之局限于二维表示方法。 本文所采用的方法是通过 DirectX 工具进行锥面实体建立模型,通过 Visual Studio .net 2003 工具读取体扫数据,生成对应模型的天气图片,将二者结合,通过 DirectX 纹 理贴图方法处理,得到实际应用的雷达立体锥面显示软件。 1.2 天气雷达背景知识介绍天气雷达背景知识介绍 气象目标的雷达方程1: (1-2-1) 2 2 2 2 2 3 | 2 1 | 2ln1024 2 Rm mGC ZP P et r 其中雷达天线所接收的回波信号功率; Pr 光速;C 雷达发射机输出的脉冲功率; Pt 发射脉冲宽度; 天线增益;G 天线水平波束宽度; 天线垂直波束宽度; 雷达发射信号波长; 第 2 页 共 36 页 气象目标的复折射指数,对于水滴,当温度为时,0.93;mC0。 2 2 2 | 2 1m | m 雷达反射率因子,在瑞利反射区,;其中为第 i 个降 ze 单位体积 6 Dzie Di 水粒子的直径;R 目标距离。对于本课题主要研究是 雷达反射率因子;将 ze 其进行的立体锥面显示,让雷达产品形象,直观地展现。 通过上面的雷达方程,常规天气雷达的探测原理是利用云雨目标物对雷达所发射电磁 波的散射回波来发现气象目标,并测定其空间位置、强弱分布、垂直结构等;新一代多普 勒天气雷达除了能起到常规天气雷达的这种作用外,它的重大改进是可以利用物理学上的 多普勒效应来测定降水粒子的径向运动速度,并通过这种速度信息来推断降水云体的风速 分布、风场结构特征、垂直气流速度等。具有强探测能力和高探测精度,新一代天气雷达 采用高低两种脉冲重复频率,就 C 波段来说,对台风,暴雨等大范围的强降水天气的监测 距离为 460Km,对雹云、龙卷涡度等小尺度强天气系统的有效监测和识别距离为 230Km, 超过 230Km,将没有速度数据,风暴识别、跟踪和预报未来位置可达 345Km,在 345-460Km 之间虽没有算法应用,但仍有反射率因子产品;先进的实时标校系统,新一代雷达的雷达 参数在建站时都经过仔细的标准和标定,在日常的运行中,实时的或每经过一次体扫之后, 对影响雷达定量的参数进行一次自动校准和检测,以确保雷达对回波强度的准确测量;同 时还具有强大的地物杂波抑制能力;先进的产品算法和智能型的探测分析系统。 1.3 天气雷达产品介绍天气雷达产品介绍 应用多普勒雷达探测到的回波强度、径向速度和速度谱宽基本数据,经过加工处理, 坐标转换和计算生成某些与气象有关的物理量后而产生的数据或图像称为产品。严格来说, 雷达产品约 28 个,只是因为不同的分辨率和不同的数据色标等级,同一个产品又可以分 为多个。因此,共有约 80 个雷达产品的编号是不连续的!根据雷达产品的分类方式不同, 可将雷达产品分为基本产品和导出产品,或基本数据产品、物理量产品、信息产品或者锥 面产品(仰角)和体积产品2。 以前常用的二维雷达产品有平面位置显示(PPI) ,即雷达天线以固定仰角,全方位扫 描的探测方式获取的数据,以极坐标的形式,用不同的彩色色标表示数据值的大小或方向。 距离高度显示(RHI) ,即雷达天线以固定方式以固定方位作俯仰扫描,这种探测方式获取 的数据用不同色标表示数据的大小和方向,以极坐标显示出来的图像产品。如今运用的天 气雷达产品是多种多样的,不同的台站可以根据不同的地理对产品不同需求。根据实际需 求,对雷达体扫数据的强度,速度,谱宽基本信息运用不同算法,得到精简实用产品。在 此,本文主要是对基本的反射率数据进行锥面显示,通过该产品可以直观清楚地了解地形, 云块,风场等对气象的影响,能够逼真的反应外部真实世界,增加用户操作选择功能,对 第 3 页 共 36 页 不同仰角的回波数据进行立体锥面显示,用户通过键盘控制能够对不同位置信息进行全面、 细致研究,将雷达扫描方式的回波信息形象展现给用户,相对于传统的二维产品具有可视 化程度高、立体动态感强的特点。 1.41.4 研究意义研究意义 现代天气雷达产品在天气预报中有着十分重要的参考意义,通过本课题能够直观,形 象,生动地展示雷达产品,让预报者短时间判断天气;从而迅速,果断,准确的做出决策。 立体锥面气象产品可以直观,清楚地了解地形,云块等对气象的影响,能高度逼真的反映 外部真实世界,对气象预报工作者的预报提供了参考依据,让预告工作者能够及时为社会 公众提供最新的天气信息。同时,通过本文的研究,将三维概念在气象领域中的应用提供 给所有关心气象事业发展的人员,将锥面模型的概念应用到天气预报系统中,让真实的世 界反映到天气预报系统之中,让以后的预报更加形象、真实;给以后的其他相关气象产品 的开发人员提供新的思路。 1.5 开发环境介绍及研究思路开发环境介绍及研究思路 Visual S 2003 开发环境集成了 Visual Basic.NET、C#、Visual C+、ASP.NET 以及 Visual FoxPro 开发工具,Visual Studio.NET 都可以提供近乎完美 的解决方案,Visual Studio.NET 提供了包括设计、编码、编译调试、数据库联接操作等 基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具 以及性能评测报告等高级功能。本程序主要使用 Visual C+工具,因为它具有面向对象、 可视化开发;众多的开发商支持以及业已成为工业标准的 MFC 类库;Visual C+封装了 Windows 的 API(应用程序接口)函数、USER、KERNEL、GDI 函数,帮助我们弄清了许多函 数的组织方法,隐去了创建、维护窗口的许多复杂的例行工作,简化了编程。在本程序中, 重点是应用 DirectX 进行立体锥面建立模型,DirectX 环境中能够建立任何想象的图像, 而最基本的都是由点构成线,而由线构成面,再由面构成体,建立实用的几何体锥面结构。 由于 Visual S 2003 能够很好地应用 DirectX 所建立的几何体模型,二者具有很好的 兼容性和移植性。综上所列,本研究选择 Visual S 2003 中的 Visual C+能够实现 本文的要求。 微软推出的 DirectX 开发工具,其 Direct 就是“直接”的意思,X 是代数中常用于表 示未知数的字符,在这里可以理解成表示所有的一切。在游戏中对所有的一切硬件直接操 作,这就是 DirectX 的意思。微软的 DirectX 软件开发工具包(SDK)提供了一套应用程 序编程接口(APIs) ,这个编程接口可以开发高质量、实时的应用程序,当然最主要的就 是游戏所需要的各种资源。DirectX 技术为软件开发者提供硬件无关性。微软开发 DirectX 的主要目的之一是促进 Windows 操作系统上的游戏和多媒体应用程序的发展。另一方面, 微软公司开发 DirectX 是为了在当今或今后的计算机操作系统上提供给基于 Windows 平台 第 4 页 共 36 页 的应用程序以高表现力、实时访问硬件的能力。DirectX 分为普通的安装包和开发工具包, 为了应用 DirectX 建立锥面立体模型,因此必须对 DirectX 开发工具包了解。 本文的最终结果是将雷达的体扫数据中的反射率数据,形象,直观,准确地显示在对 应的雷达锥面模型位置上。因此,本文的重点是在建立锥面上,只有建立好的锥面模型, 才能将回波位置准确地反映。通过 DirectX 工具建立好立体锥面几何体模型,应用 Visual S 2003 工具解析体扫数据文件,生成不同仰角下的纹理图像,然后再应用 DirectX 下的纹理效果处理,完成立体锥面显示效果,在窗体上增加选择不同仰角的立体锥面显示效 果,通过键盘控制对锥面模型的各个角度信息准确反映。 第 5 页 共 36 页 2 建立模型建立模型 2.1 DirectX 基础知识基础知识 在计算机的 3D 世界,可以表现出真实世界中所有的事物。在计算机的三维世界中, 如果要显示一个物体,首先关心的就是这个物体怎样由点来构成。然后用这些点来构成多 边形,由多边形来构成立体的几何形体。只要能确定了点的位置,数量,颜色,就可以形 成任何你需要的物体。在 DirectX 3D,为了保证永远使用正的 z 值来表示距离,惯用左手 坐标系来表示整个世界的位置。三维旋转变换可以使物体在三维立体空间中产生旋转。旋 转可以是沿着 x 轴,或 y 轴,或 z 轴进行。三维缩放可以使物体在三维立体空间中产生大 小的缩放效果。在三维坐标中观察世界时,需要确定以下几个问题:()在那个位置观察: 需要使用坐标来表示这个观察点的准确位置,这个坐标是在计算机中的实际坐标系中的值。 ()向哪个方向观察。 ()对于观察者来说,代表上方的方向。最后经过三维透视转换显 示在显示屏幕中。Direct3D 和系统其他组件的关系如图 13: 图 2.1Direct3D 和系统其他组件的关系 应用程序(Win32 Application)通过调用 Direct3D 提供的 API 函数(Direct3D API) 实 现 3D 图形功能。Direct3D API 调用硬件设备(HAL Device)提供接口。硬件抽象设备调 用具体的硬件驱动程序的接口(DDI) ,有具体的硬件驱动程序来操作具体型号的显卡硬件, 完成最终 3D 操作。通过这样的分层结构,可以在上层使用相同的接口调用来使用任何类 型的 3D 显卡,实现需要的 3D 功能。 Win32 ApplicationWin32 Application Direct3D API GDI HAL Device Device Driver Interface(DDI) Graphics Hardware 第 6 页 共 36 页 使用 Direct3D 编程时,首先创建 Direct3D 对象,在程序结束时,也必须释放 Direct3D 对象。在创建完 Direct3D 对象后,可以获得指向 Direct3D 对象的接口指针。通 过指向 Direct3D 对象的接口指针,我们可以调用 Direct3D 对象提供所有接口函数。创建 Direct3D 对象的代码如下所示: LPDIRECT3D9 g_pD3D = NULL ; /定义 Direct3D 对象的指针,初始化为空 if( NULL = ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) ) return E_FALL;/判断返回值,如果为空,表示创建失败 Direct3D 设备是 Direct3D 中的渲染组件,负责把 3D 场景进行作色、光照等效果处理, 形成可以显示的图像。设备中包含了渲染状态、坐标转换等信息。在程序中,我们可以认 为 Direct3D 设备就是绘图的物理设备,而不需要关心使用什么具体的显卡在进行 3D 操作。 LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;/定义 D3D 设备接口指针初始化为空 /定义 Present 参数结构 D3DPRESENT_PARAMETERS d3dpp; ZeroMenory( d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC; if(FAILED(g_pD3D-CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, /调用函数创建设备,如果函数执行失败返回为空。 经过上面的简单介绍,了解到 Direct3D 中三维世界的表示方法,坐标系统,以及如何 把三维世界中的模型显示在显示器中的概念和原理,以及基本的创建 Direct3D 对象和创建 Direct3D 设备的方法,对 Direct3D 有一个总的认识。但是光了解这些还远远不够,要应用 一个窗口,就必须对 Windows 窗口模式的编程原理进行掌握。 2.2 Windows 基本编程原理和方法基本编程原理和方法 用 C+编写一个 Windows 应用程序,必须掌握 Windows 的基本编程原理。Windows 程序需要一个 WinMain()函数,该函数主要是建立应用程序的主窗口。用 Windows 窗 口结合 DirectX 建立几何体模型,对一个基本的 Windows 窗口,其构成有以下几部分,注 册一个窗口类,然后创建窗口,在创建窗口的过程中可以对窗口的属性进行修改,包括窗 口的名称、大小、位置等。接着初始化 3D 设备(首先根据 DirectX 的版本号创建 3D 对象, 接着定义 Present 参数结构,设置 Present 的各项属性,跟着创建 D3D 设备,在此可以调 用 SetRenderState 函数设置渲染状态);若初始化初始化 3D 设备成功的话,接着就可以 创建任意几何体模型了(用 CreateVertexBuffer 创建顶点缓存区,接着可以定义一个指 第 7 页 共 36 页 针,用于复制顶点数据时指向顶点缓冲区的内存地址) 。初始化后,可以显示窗口了,并 且可以进行消息的相互传递,可以对键盘,鼠标等外部设备动作进行响应,执行对应的事 件。接着可以对几何体模型进行着色,着色之前可以对其进行纹理,灯光,视角等属性进 行详细编辑,使立体锥面几何体模型更加生动,逼真。完成着色之后,接着释放设备,最 后应该注销窗口。Windows 程序是通过操作系统发送的消息来处理用户输入的,程序的主 窗口中需要包含处理 Windows 所发送的消息代码: 下图是 Windows 程序和 Windows 消息的基本流程4: 图 2.2Windows 程序和消息处理流程图 Windows 是消息驱动(或事件驱动的)操作系统。消息驱动意味着操作系统的每一部 分和其他部分以及应用程序之间,是通过 Windows 消息进行通信。Windows 程序在开始 部分也需要进行初始化,但初始化完成后就开始等待用户的各种输入。一旦用户有任何输 入(例如键盘或鼠标输入) ,操作系统便会感知,然后向相应的应用程序发送消息,程序 要能够随时接受并处理这些消息。函数入口: 注册一个窗口类 Main()函数开始 开始执行 终止执行 初始化 从消息队列取得一个消息 默认处理 处理消息 当前消息是否 “退出”消息 是否本程序 要处理的消息 第 8 页 共 36 页 图2.3main函数的流程图 从图2.3我们不能看出,在DirectX中,任何函数都是从main()函数开始执行程序,作 为程序的入口,在main()几乎包括整个程序的流程。在DirectX中,进入main()函数后, 首先需要注册一个窗口类,在窗口类中,包括窗口的类名,窗口模式,消息处理等属性; 注册完一个窗口类后,接着就可以创建应用窗口了;跟着初始化3D对象和设备,如果成功, 就可以显示窗口,更新窗口,进入消息处理函数,然后进行窗口内存释放;如果不成功, 直接进入到内存释放。最终整个函数返回0值。以上就是整个DirectX的main()工作过程, 在本文中,需要建立模型,在初始化3D设备和对象成功之后,就可以初始化模型,然后进 行渲染等3D效果处理。 消息处理函数是一个很重要的函数,通过参数的传递,该函数可以响应 Windows 应用 下的任何事件。在 MsgPro()函数下,对 msg 消息进行消息类型的判断,当窗口销毁时,就 创建应用窗口 初始化 3D 设备 及对象是否成功 显示窗口,更新 窗口 进入消息处理函 数 窗口内存释放 返回值 0 第 9 页 共 36 页 触发 WM_DESTROY 事件,进而调用 Cleanup()函数和 PostQuitMessage( 0 )函数。将创建 3D 的内存空间,设备对象及模型的存储空间进行释放,节约内存资源。而当响应 WM_PAINT 消息时,就调用 Render()和 ValidateRect 函数。对窗口区域的模型色彩进行渲 染,让立体模型更加生动形象。最后 MsgPro()函数将要执行的事件反馈给主函数,实现消 息响应功能,以上就是消息处理函数的整个过程,当然消息处理函数的响应事件是很多的, 包括一个键盘的任意键被按下事件,鼠标的移动事件等等。开发人员可以根据自己的需要 来进行适当的消息事件选择。 图 2.3 介绍了 main()函数的整个程序的执行过程,在上面则介绍了 Windows 如何响应 消息,对一个 Windows 程序的运行过程也有一个总体的认识和了解,应用上述简单的框架, 开发者可以在初始化设备及模型之后初始化自己所能想到的任意几何体模型,然后进行 DirectX 下的灯光,材质,纹理,视角转换,雾化,雨化,雪化等特殊效果处理手段,进 行渲染,建立切切实实的立体图形。呈现生动,形象的图形,开发者可以发挥自己的想象 能力,建立自己的应用模型,运行 DirectX 先进技术,结合构成思路,将一个几何体模型 分解成若干三角形构成,而三角形又是由点构成的,通过点的连接顺序不同,绘制不同的 几何体模型,运用到实际中 2.3 模型的构成思路和设计原理模型的构成思路和设计原理 2.3.1 雷达基数据产品剖析雷达基数据产品剖析 本文研究的是对天气雷达产品的反射率信息进行立体锥面显示,关键在于如何建立的 模型才是最佳的模型,为了能够建立最优模型,必须对雷达的反射率产品的构成结构进行 深入的剖析。 图 2.4锥面模型分析 从上图我们可以看到,一个锥面模型的构成需要知道方位角,仰角,斜距,而这些数 据都可以从雷达的体扫数据得出,在雷达数据中,雷达所能探测的最远距离是 512Km,而 方位角 (theta) 斜距(m_c) 仰角(fi) 第 10 页 共 36 页 每公里则有八个点,即每个点所代表的距离是 125m;在方位角上,theta 的变化范围为 0360 度,在方位角上,总共有 600 个径向;而在仰角上,对一般的雷达来说,变化范围 小于 90 度,在低仰角扫描的时候,由于受到地物杂波的干扰,为了能够很好地消除地物 杂波,在低仰角往往扫描两次,而随着仰角的增大,其仰角的抬升间隔页逐渐增大,因为 在高仰角扫描的时候,天气现象已经离雷达观测地很近,没有多大的实际预报价值。由上 可知,一帧平扫扫描数据为 600512M 个(M 为所观测的参数个数) ,这样一个完整的 体扫数据文件有数据 600512MN(N 为仰角层数,M 为所测参数个数) ,它记录了 不同仰角层、不同参数的各个方位回波强度。利用 DirectX 技术,方位角、仰角、作用距 离(即斜距)确定了三维立体空间坐标,将回波数据强度转变为物体模型中的颜色,这样 观测员便可以根据三维立体锥面模型中的颜色变化直观地了解气象的变化与空间结构的分 布情况,充分反映立体、动态、连续、多层的情况。本文通过以下过程来实现。 2.3.2 程序概要设计流程程序概要设计流程 所有函数都是从 main()函数开始执行的,然后进行注册一个窗口,创建窗口,对于本 文的 DirectX 来说,必须初始化 DirectX3D 设备及对象成功后才能够初始化几何体模型, 只有初始化几何体模型成功后才对窗口进行显示,更新,和消息处理,通过消息处理事件, 转译消息,分散消息,最后进行几何体模型的渲染;构成一个生动的几何体模型,这就是 本文构建模型的思路,然后运用 DirectX 工具下的贴图效果处理手段,对立体锥面模型进 行渲染效果处理。下面是设计的主流程图 2.5: 开始 注册窗口类, 创建窗口 初始化 3D 设 备及对象是 否成功 初始化几何体 模型是否成功 显示窗口,更新窗口, 进入消息循环处理 第 11 页 共 36 页 图 2.5整个程序设计流程图 图 2.5 是对整个程序设计流程的概述,对于其中初始化 3D 设备及对象的概述和流程 在前面以前提及过,对 3D 立体锥面模型的构建,如果几何模型中使用了纹理贴图,首先 应该打开纹理图片,本文主要是通过纹理贴图手段来达到立体效果。成功后按照对应的结 构体创建顶点缓存区,缓存区创好后,就需要按设计要求往顶点缓存区存放点数据。模型 的构成就是这样,建模的简要流程图如图 2.6: 无 WM_QUIT 消息事件 PeekMessage 函数是否为 1 转译消息,分播消 息 渲染几何体模型 释放窗口内存空间 返回值 0,程序结束 创建模型开始 文理图片打开 是否成功 创建顶点缓存 区是否成功 按设计要求存 放点数据 返回打开失败 返回创建失败 第 12 页 共 36 页 图 2.6创建几何体模型的简要流程图 图 2.6 主要介绍的是模型的建立的简要流程图,当一个模型建立好后,渲染效果决定 模型的成功与否,模型的渲染是 DirectX 中非常重要的部分。渲染效果决定了模型的构成 方式,在模型渲染之前还可以进行多种立体效果处理,灯光,纹理,材质,坐标转换,雾 化,雨化,雪化等效果处理,给人更加逼真的效果。这些效果处理将在后面的章节中做专 门深入的讲解。由此可见,本文的关键在于模型的建立和贴图的效果处理,模型构成原理 已在前面介绍,模型的构成方式是多种的,几种模型根据数据的实际数据构成,经过比较 筛选,确定一种合适的模型构建思路,下面是两种建立模型思路的比较。 2.3.3 两种模型的对比两种模型的对比 根据上面的模型产品剖析,对雷达反射率的显示应用了解。对模型的建立构成,采取 的手段也是多种方式,不管建立什么样的模型,最基本的也是最重要的就是如何建立好点, 只有把点建立好后,才能构成线,进而构成面,最后构成体,这个总体的基本思路是不会 改变的。因此立体锥面模型点的构成方式就成了本文的重点。不管采取什么样的手段建立 模型,都必须首先把点建立好,下面介绍几种建立模型的方法: 图 2.7立体锥面投影确定点坐标 确定好各个点的坐标后,最主要的就是点的连接方式,在 Direct3D 中,点的坐标连 接方式总共有点列表(POINTLIST),线列表(LINELIST),线条纹(LINESTRIPS),三角 形列表(TRANGLELISTS),三角形条纹(TRIANGLESTRIPS),三角形扇(TRIANGLEFANS) 方位角 (theta) 气象目标高度 仰角(fi) 结束,返回 第 13 页 共 36 页 六种连接方式,根据我们需要,我们在这里选择了三角形条纹进行了点的连接,连接时应

温馨提示

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

评论

0/150

提交评论