位置: 编程技术 - 正文

openGL粒子系统实现(面向对象风格)(opengl立体模型)

编辑:rootadmin

推荐整理分享openGL粒子系统实现(面向对象风格)(opengl立体模型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl lib,opengl立体模型,opengl粒子系统火焰,粒子系统渲染,opengl粒子系统火焰,opengl粒子效果,opengl粒子系统火焰,opengl粒子系统火焰,内容如对您有帮助,希望把文章链接给更多的朋友!

使用基本openGL(非GLSL)实现一个面向对象风&#;粒子系统。

粒子系统基本有两部分构成

粒子粒子发生器一个粒子发生器控制一群粒子的行为,比如一条流水,一团火。而本文的粒子系统在发生器上多封装一层发生器集合也就是把多个发生器集合起来,方便同时加入多个相同的粒子系统(比如同时需要很多团火焰)。下面开始逐层介绍。粒子类

粒子类代表每个粒子,只有属性没有方法,如下:

这就是本粒子系统中粒子的全部属性。而粒子发生器通过控制每个例子的以上属性来控制整个粒子群。

发生器是一个基类,而通过其不同的继承类实现不同效果的粒子系统。基类如下:

其中两个虚函数分别为粒子的初始化与更新函数。一般情况下,只需要定义这两个函数,就可以实现不同效果粒子系统。

下面以下雨系统做示范,即构建一个 RainGenerator

首先需要一个颜色数组,用以粒子运动过程中的颜色变化。假设预设中颜色,列出数组,粒子由生到死的过程就在这个数组从头到尾过度。

RainGenerator 定义如下这里有一个细节问题:在初始化粒子位置的时候并没有在第一时间上加上整体偏移量。这是因为粒子初始化时默认以(0,0,0)为基准。如果要制造发散效果时,则需要用到这时候以原点为中心的位置,如这样的话,发生器就写好了。只需要初始化并周期性调用 mainloop 函数就可以运作这个粒子系统了。

最后再加上一个集成器,方便同时初始化多个相同的粒子系统。

需要定义可选的系统类型

这样一来就可以很方便使用了!在主函数里面如下初始化就在 (,,) 等四个地方加上了落雨的系统。

最后,只需要在 display 函数里面调用主循环函数

并且 flush 就可以了。

是不是很方便?

给出效果图,是之前做作业时实现的几种系统,献丑。

雨落远看

openGL粒子系统实现(面向对象风格)(opengl立体模型)

雨落近看

太阳(由一个火球和一个放射系统构成)

银河

感觉实现的这几个效果还是比较可观。粒子系统能干很多事情,只受想象限制。

另外此处不用GLSL完全是为了方便。有条件还是用GLSL会快一些。

本文有些代码是写博客时即时写的,不敢确保一定没有编译错误和笔误,还望指正。

参考:dengchao的专栏

景深图片的3d显示(opengl) =='''效果展示'''==这篇wiki介绍一下对景深图片进行3d显示的效果。展现形式为:可以对一张照片中的景物做轻微角度变化的观看,图片中的物体将呈现3d

OpenGL学习日记-.1.--混合 混合可以实现很多效果,笔记单纯的记录混合的原理,和混合公式,混合函数的使用。最后分析书中的两个混合代码例子,两个例子结合起来说明了绘

简单一个opengl程序,2D图形移动 很早打算系统的学习一下opengl,但是由于课程以及学习算法占据了时间,一直没能开始,现在这段时间开始弄opengl了,这几天看正在看《Opengl变成指南

标签: opengl立体模型

本文链接地址:https://www.jiuchutong.com/biancheng/369666.html 转载请保留说明!

上一篇:opengl示例代码在vs上编译不过(opengl 实现)

下一篇:景深图片的3d显示(opengl)(景深图片的3d显示器)

  • 消费税是什么意思大白话
  • 增值税发票选择确认平台打不开怎么办?
  • 个人补缴的医保要做账吗
  • 企业利润分配如何缴纳所得税
  • 税务局三代手续费政策
  • 简易征收的收入包括哪些
  • 跨年发票问题
  • 员工上下班交通安全培训
  • 长期股权投资收益会计处理
  • 周转借款会计分录
  • 实际发生额大于账载金额
  • 买车交税怎么算价格
  • 增值税税控系统技术维护费计入什么科目
  • 滴滴客运服务费免税
  • 税法关于印花税的规定
  • 独生子女费属于什么费用
  • 经营性租入的设备是资产吗
  • 账表不一致的原因和根源
  • 预收账款可以开票吗
  • 不动产进项税额怎么算
  • 债券溢价发行会计分录举例
  • mac怎么安装字体文件
  • 华为折叠手机mateXs
  • 员工出差时法律规定
  • 公司餐饮费怎么做账
  • PHP:Memcached::getMulti()的用法_Memcached类
  • 固定资产内部抵消例题
  • 研发专利什么意思
  • 不能报销的发票可以丢掉吗
  • 维多利亚瀑布有多高?多宽?
  • 房地产开发间接费
  • 最简单的上传php文件
  • php判断是否连接数据库
  • 头歌实践教学平台官网
  • 计算md5值命令
  • 取得抵债资产支付的税费一般不包括下列哪种
  • 保障金是低保吗
  • 纳税调整项目明细表利息支出怎么填
  • 运输途中发生的费用
  • 工程质保金可以不退吗
  • mongodb查询字段不存在
  • 资本性支出与资本性支出(基本建设)的区别
  • 企业的利润率怎么算
  • sql2008强制还原数据库
  • 运费险保费计入什么费用
  • 非税收入票据存根的保存期限一般为多少年
  • 中级会计报名必须用电脑吗
  • 宣传费税前扣除什么意思
  • 土地前期开发费用属于开发成本吗
  • 收到知识产权服务费入什么科目
  • 企业用地手续办理流程
  • 技术服务费计入主营业务成本
  • 结转公允价值变动
  • 预付款项为什么属于资产
  • 安全生产费的会计分录
  • 电梯在固定资产里属于什么设备类别
  • sql server重新安装步骤
  • mysql5.7.31安装配置教程
  • 虚拟机vmx
  • 一台OpenSuSE系统的服务器的网络配置
  • linux临时目录一般存在哪个文件夹
  • window8系统安装步骤
  • Linux Mint 5 XFCE Community Edition RC1 (BETA 025) 本月17日开始发布
  • os x 10.10.5
  • P2P Networking2.exe - P2P Networking2是什么进程 有什么用
  • python静态变量和静态方法
  • Unity3D游戏开发(第2版)pdf
  • JavaScript html5 canvas绘制时钟效果(二)
  • JavaScript事件处理器中的event参数使用介绍
  • jquery选择器的优势有哪些
  • 从零开始学什么好
  • unity获取鼠标
  • js debounce实现
  • JavaScript事件 "事件对象"的注意要点
  • python抓取整站链接
  • python自动翻译小工具
  • 深圳12366怎么转人工
  • 云南省地方税务局关于城镇土地使用税
  • 新疆维吾尔自治区民族团结进步工作条例
  • 2023年四川城乡居民养老保险多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设