位置: 编程技术 - 正文

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显示器)

  • 土地税税额标准
  • 购买增值税发票金税盘计入什么科目?
  • 财产租赁合同印花税计税依据含税吗
  • 个体经营部可以开增值税专用发票吗
  • 科目余额表凭证号顺序
  • 成本少结转了怎么调回
  • 新会计准则下长期股权投资的变化
  • 专用发票丢失怎么抵扣
  • 缓缴税款到期缴纳罚款吗
  • 成本类科目期末借方余额表示
  • 补交前期未开票收入税金本期怎么申报?
  • 利税总额计算公式表
  • 跨年暂估收入如何调整
  • 过路费是地税还是国税
  • 卖房土地增值税税率
  • 以前工会是没有公章的吗
  • 7月1日发票新规定
  • 公户批量扣费是啥意思
  • 小型微利企业要交残保金吗
  • 资产减值损失怎么影响利润
  • 清华同方bios通用密码(thtfpc)
  • 设备加速折旧
  • 行政事业单位的营业执照叫什么
  • win11怎么压缩图片画质
  • windows10安装应用怎么到桌面
  • 资产处置收益的项目有哪些
  • 销售已使用过的固定资产增值税税率
  • 以合同条款无法达成一致要求返还定金
  • 货物无偿赠送分录
  • 支付代销手续费缴纳增值税吗
  • vue浏览器版本
  • 房屋租赁经营要交哪些税
  • 国有土地使用证到期了怎么办
  • 小规模纳税人进项票可以抵扣吗
  • vue获取当前路由地址
  • 非关联企业借款利息扣除
  • javascript bom dom
  • phpcms建站流程
  • phpcms 数据库配置文件
  • 自查补缴增值税附表一怎么填写
  • 其他货币资金微利
  • 工资与劳务报酬是否合并缴纳个税
  • js原型链的用处
  • php压缩文件怎么打开
  • sql建立聚集索引语句
  • sql server 判断数据是否存在
  • 已经提完折旧的房产价值评估
  • 应交税费需要结转到本年利润吗
  • 哪些企业不能核算成本
  • mysql存储过程语句
  • 专票认证是在开票软件里吗
  • 其他应付款是什么类账户
  • 进项留抵月末要结转吗
  • 支付国外客户佣金违法吗
  • 一般纳税人购买汽车会计分录
  • 政府给的专款专用的补助,怎么入账
  • 存货跌价准备的计算
  • 专利年费可以减免吗
  • 出现事故保险公司负责协商吗
  • 小规模红冲发票收入正数税额负数
  • 结账时怎样根据日期填写
  • Win10应用商店下载错误
  • windows server 2008.
  • 轻松玩转职场职场沟通与写作技巧答案
  • ubuntu系统如何安装
  • 7.0 Release i386 DVD iso 下载
  • winxp 共享设置
  • 如何创建虚拟硬盘
  • win10 自带软件
  • win8搜索不到文件
  • nodejs word
  • 安卓作业仿银行
  • 不用js多浏览器能用吗
  • python lxml解析xml
  • 如何python
  • MVC+jQuery.Ajax异步实现增删改查和分页
  • 安卓消息处理机制
  • 欧美 房产税
  • 建筑装饰业发票怎么开
  • 地摊经济火了,月薪8000元
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设