基于OpenGL 的雨雪场景仿真

2019-11-29 04:25张沛露
活力 2019年20期
关键词:雨雪盒子粒子

张沛露

(吉林建筑大学电气与计算机学院,长春 130011)

一、概述

伴随着计算机硬件设备的发展和人们消费水平的提高,人们开始注重更多的视觉享受,提高视觉享受的前提就是给用户最真实最完美的享受,此次设计研究的就是基于OpenGL 的雨雪场景仿真,这一研究可以利用到生活的很多部分。

目前雨雪场景仿真普遍的办法是利用粒子系统在模拟雨雪粒子的前提下,引入天空盒技术,将视角移入类似盒子的空间。Skybox 是整个场景的一个包容,变现了几何之外的世界。使用Skybox 模拟真实的场景,如广阔的天空,高大雄伟的山脉。在空间的中央当做摄像头的位置,通过鼠标的移动来完成视角的转换。而针对雨雪的降落,采用渲染和材质等技术将雨雪做的更为逼真,应用了shader 技术,将雨粒子和雪粒子和天空盒着色。通过粒子系统对粒子随机降落,大小更变达到雨雪远近的效果,为了提高真实性,还将加入风的元素,通过改变风向来调节雨雪的方向,改变风的大小来达到雨雪被被风吹的效果,让视觉体验更完整。

二、需求分析

通过全面分析基于OpenGL 的雨雪仿真场景系统的各项需求,本系统利用OpenGL 这个图形API 为基础,实现雨雪场景的建模和基本图形变换。

天空盒是一种常用的增加模拟性能的手段,它通常是利用相机包围内附着一个纹理来完成的,纹理一般是一些云朵、山脉或湖泊等。天空盒的根本原则其实并不复杂,它相当于在视野范围边缘安装了个盒子。盒子里有六个面,分别使用6 可以拼接在一起的图片。从实现的角度理解,天空是第一个盒子拿着相机在同一位置,然后画出盒子。

三、系统设计与分析

为了实现模拟要求,存储器操作模块和数组基本模块组成完整的3D 效果模拟仿真的基本模块。内存管理模块负责监视,它模拟系统启动时内存的处理情况和利用比率;数学基础模块内涵2D 和3D 的运算操作。

核心模块雨系统的各个模块皆有联系,他是系统的总负责模块,控制并操作系统。具有绝对的掌控权。它还有用户与系统交互的责任,并提供用户对其他功能的模块的响应和传输。场景控制模块主要控制场景的管理和操作。粒子系统模块主要控制粒子的操作,包括粒子的初始化,粒子更新和粒子消亡。

系统处理流程包括以下几个步骤:

①系统控制模块将系统初始化;

②场景管理模块搭建视点与视口,场景初级搭建;

③粒子系统管理模块进行粒子生成以及粒子应有属性;

④场景管理模块将雨雪粒子运行在场景中,制造场景结点;

⑤图形渲染模板通过OpenGL 对场景数据进行渲染操作。

粒子系统的理论和通识,每一个粒子的生命周期都包括生产,运动过程和消亡等几个过程。粒子系统会有如下过程:

①产生新粒子并赋予属性;

②除去已过生命周期的粒子;

③将仍存活的粒子进行更新和更新属性操作;

④渲染系统中还在生命周期内的粒子。

四、系统实现

Skybox 是将一个正方体内部进行贴图操作,一般由六个贴图组成,达到场景在方块盒中搭建,这样会大大增加场景的真实性。由于天空盒实际上是立方体贴图,因此加载天空盒和加载立方体贴图的方式没有什么不同。

粒子系统会随机的生成雨雪粒子,并且初始化粒子的属性,包括大小方向形状和透明度等等,这些因素也都会因为粒子系统的随机性而不断改变,因此粒子系统在模拟无规则形状的实体有很大优势。总结而知,粒子系统最重要的是粒子的运行轨道,选择合适的运动函数将会使渲染效果更真实完美。其次,坐标系的选择(即视角)也有一定的关系。

结 语

本文以OpenGL 为基础,采用了粒子系统的开发模式,完成了雨雪仿真系统的设计与实现。根据标准的开发工具需求,开发过程中必须使用OpenGL 图形库操作来完成,主要应用粒子系统来完成雨雪的模拟,应用天空盒技术来实现场景模型的搭建,还用到了渲染着色器贴图等技术综合完成,使得功能基本完善,画面仿真度高。

猜你喜欢
雨雪盒子粒子
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
悲伤的事就不说了
基于膜计算粒子群优化的FastSLAM算法改进
无题(新韵)
称盒子
新闺怨
Conduit necrosis following esophagectomy:An up-to-date literature review
The relationship between functional fabrics and fashion trends
寻找神秘盒子
问:超对称是什么?