位置: 编程技术 - 正文

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

  • 金税盘怎么添加领票人
  • 支付境外培训费
  • 个体工商户个人所得税怎么申报
  • 法定盈余公积和法定公积金一样吗
  • 增值税普通发票需要交税吗
  • 无形资产的累计摊销是什么意思
  • 车辆买的商业险有家庭包
  • 汽修店的服务项目有哪些
  • 小规模和一般纳税人的区别
  • 如果公司没有报税
  • 公司注销后还会有事吗
  • 二手房增值营业税
  • 行车记录仪怎么开发票
  • 税收分类编码选错了没事吧
  • 不同的征税主体对同一纳税人
  • 提现的现金支票是什么
  • 销售退回发票怎么处理
  • 收到农产品发票3%抵9%怎么做账
  • 资产处置损益借贷方向表示什么
  • 发票金额大于实际支付金额如何报账
  • 公司的职工教育是指什么
  • 社保费税前扣还是税后扣
  • mac如何编译c语言
  • 使用与保养
  • 发放应付职工薪酬的账务处理
  • 销售使用过的固定资产怎么填申报表
  • 社保缴费半年
  • 事业单位增值税可以抵扣吗
  • Ubuntu18.04配置允许远程访问
  • c#创建web
  • OpenAI Translator | 基于ChatGPT API全局翻译润色解析插件
  • 装系统如何不安装自带软件
  • 分公司利润怎么结转给总公司需要交税
  • 批处理命令在windows操作中的典型应用
  • 福利用品可以抵增值税吗
  • 其他应收款借方表示增加吗
  • 企业专利权拥有人是指
  • 工程在建期间的招待费计入什么科目
  • 哪些项目可以计提汇兑损益
  • 税控盘忘记抄报税怎么办
  • 辞退福利什么时候确认
  • 所得税费用结转分录
  • 应付账款现金折扣会计分录
  • 社保费和公积金计提分录
  • 小规模收入不超过多少不用交税
  • 餐饮招待怎么入账
  • 公司支付劳务工资怎么做账
  • 总分类账示例
  • 登记三栏式现金日记账和银行存款日记账的依据
  • 房地产企业发行长期债券的增信方式有哪些
  • 10种Java开发者编写SQL语句时常见错误
  • mysql5.5改密码
  • redhat6.5安装图形界面
  • Windows自带的游戏怎么删除
  • 系统的虚拟内存可以清理吗
  • windows字幕软件
  • win10添加闹钟
  • u盘安装win7视频教程
  • executor进程
  • win10怎么预览
  • mac u 盘启动
  • win10rs2是哪个版本
  • linux clk
  • 任务栏图标右键
  • WIN7快捷键冲突怎么解决
  • linux中ctrl+c
  • win8.1系统升级
  • unity中
  • glCopyBufferSubData
  • [个人学习笔记]Android 从网络获取json并解析 --Demo
  • javascript中的this属性
  • ja开发
  • 严格模式的作用
  • Android之Broadcast与BroadcastReceiver
  • 航天金税盘客服电话苏州
  • 江苏城乡医疗保险网上缴费2024年
  • 地税局书记是什么级别
  • 一般纳税人注销公司需要查账吗
  • 广西电子税务局电话人工客服电话
  • 船舶吨税税收优惠口诀
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设