BabylonJS之放烟花

news2024/11/29 10:50:11

BabylonJS烟花效果视频

一: 技术调研

1. 方案一:ParticleSystem

ParticleSystem来实现每一束的烟花效果,如果浏览器支持WebGL2功能,使用GPUParticleSystem性能会有极大的提升。
优点: 烟花效果易实现且效果好。
缺点: 每一个ParticleSystem都会调一次drawcall。并且GPUParticleSystem不支持发射器功能😭。
下图的一个烟花有80束,就需要80次drawcall。
babylon目前还没对这个问题进行优化:https://github.com/BabylonJS/Babylon.js/issues/13049
在这里插入图片描述

2. 方案二:实例化

不使用粒子系统,通过实例化每一个光点创建整个烟花。
优点: 一种烟花效果只需要一个drawcall。
缺点: 实例化虽然解决了drawcall多的问题,但是性能上还是比不过粒子系统。
在这里插入图片描述

3. 方案三:customizingParticles

方案一最大的问题是drawcall数量,一个粒子系统就是一次drawcall。如果能只用一个粒子系统模拟出整个烟花的效果,这个drawcall数量问题就能解决了。
优点: 能使用babylon粒子系统性能上的优势,同时解决drawcall数量问题。
缺点: 烟花效果的模拟难度较大。

4. 方案四:2d精灵

使用2d精灵进行烟花效果模拟。方案一的粒子系统底层使用的是2d精灵。可以尝试着使用babylon提供的2d精灵来模拟下,看下性能情况。

5. 方案五:SolidParticleSystem

使用SolidParticleSystem模拟烟花效果。不同于方案一和方案三的标准粒子系统。实体粒子系统不提供内置行为,没有发射器,粒子运动参数这些,它里面的每个粒子行为都需要自己去实现。同方案三的优缺点类似。不过它用的是网格模型作为粒子基础,而方案三用的是2d精灵作为粒子基础。方案三性能上较好,方案五没有发射器回收器的干扰比方案三更易于实现烟花效果。

6. 方案六:PointsCloudSystem

做一个烟花模型,使用PointsCloudSystem,粒子的位置由烟花模型的顶点位置控制。
优点: 烟花轨迹效果靠模型动画来驱动,这比代码写运动轨迹要高效和丰富多了。
缺点: 把开发成本转移到建模成本上了哈哈哈

二:总结:

上面的方案并不是只能取其一的关系,只是给出了不同的思路。并且这里的方案是用于解决近距离观看烟花粒子的效果问题。
实际场景中,出于对性能和艺术效果的权衡利弊,烟雾和远处的烟花可以一整个用精灵图动画来实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是品牌营销?学会正确推广您的业务

什么是品牌营销? 品牌营销涉及长期战略规划,以推广整个品牌,而不是营销单个产品或服务。它分享了一个引人入胜的故事,以在潜在客户中产生品牌知名度并建立声誉。 面向消费者的品牌使用品牌智能软件来了解人们对其品牌的看法&#…

磨金石教育摄影技能干货分享|极简艺术与人文摄影相结合(一)

柏林街头(德国)照片中无论是景物元素还是色彩元素都很少,主体人物与道路外加一个箱子。极简艺术照片的减法做到了。一名女子端坐在路边,白色的衣服一尘不染,手持镜子补妆。虽然时间场地比较的随意,但是依然…

R统计绘图 | 物种组成冲积图(绝对/相对丰度,ggalluvial)

一、数据准备 数据使用的不同处理土壤样品的微生物组成数据,包含物种丰度,分类单元和样本分组数据。此数据为虚构,可用于练习,请不要作他用。 # 1.1 设置工作路径 #knitr::opts_knit$set(root.dir"D:\\EnvStat\\PCA")#…

A/B 测试成为企业“新窗口”:增长盈利告别经验主义,数据科学才是未来

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 如何能够预知一个产品的未来?最好的办法当然是穿越到未来看一看。 这种“模拟未来、窥探底牌”的设想似乎只是一种天方夜谭。尤其在数字化浪潮冲击下&a…

磨金石教育摄影技能干货分享|杨元惺佳作欣赏——诗意人文

一般来说,人文摄影总会体现现实性多些。但杨老师是个摄影诗人,他的内心总能将刻板的现实融入美好的光芒。你在他的照片里,看着现实的摄影素材,所感受到的是诗意的绵绵未尽。春网(中国)正所谓春水碧于天&…

Word控件Spire.Doc 【Table】教程(19):在 C# 中的 Word 中添加/获取表格的替代文本

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

7、STM32 FSMC驱动SRAM

本次使用CubeMx配置FSMC驱动SRAM,XM8A51216 IS62WV51216 原理图: 注意:FSMC_A0必须对应外部设备A0引脚 一、FSMC和FMC区别 FSMC:灵活的静态存储控制器 FMC:灵活存储控制器 区别:FSMC只能驱动静态存储控制器(如&…

软考中级有用吗

当然有用了! 软考“简历”:计算机软件资格考试在全国范围内已经实施了二十多年,近十年来,考试规模持续增长,截止目前,累计报考人数约有五百万人。该考试由于其权威性和严肃性,得到了社会各界及用人单位的广泛认同&…

哈希函数的学习算法整理

前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 概述 哈希函数学习的两个步骤: 转为二进制编码:可以先降维成实数,再转为二进制&…

【Spark分布式内存计算框架——离线综合实战】4. IP 工具类

2.2 IP 工具类 需要将IP地址代码封装到工具类中,方便后续使用,在包【cn.itcast.spark.utils】创建工具类:IpUtils.scala,定义方法【convertIpToRegion】,传递参数【ip地址和DbSearch对象】,返回Region对象…

数据结构-树的理解

目录 一:要解决的问题,出发点 1.演进 树的定义: 树的深度(高度) 平衡二叉树(AVL树) 红黑树: B树: 深夜有感,灵感乍现,忽然感觉对这个数据结…

Unity(二)--通过简单例子了解UGUI几个常用对象操作(Text,Image,Button)

目录 文本框等UI对象的添加Canvas 画布给Canvas添加脚本,绑定要操作的对象文本框Text的使用图像Image的使用更换图片Type:显示图片相关按钮Button的使用过渡导航事件绑定文本框等UI对象的添加 Canvas 画布 当创建一个UI元素的时候,如果没有Canvas 画布,就会自动创建一个画布…

学习资料|SSH隧道端口转发功能详解

概念ssh隧道大致可以分为3种,分别为本地端口转发,远程端口转发,动态端口转发,本文将让你彻底搞懂这3个转发的命令表达形式,让你能够灵活运用解决生活中的各种特殊场景。如果你正在使用mobaxterm、xshell、secureCRT、p…

怎样深度学习?主题碾压式学习法

怎样最深度的学习?【主题碾压式!】 对一个学习主题,大体量投入学习资源 进行对比和实践 会取得突破 限定在社会科学和社会应用范围 趣讲大白话:大力出奇迹 【趣讲信息科技:84期,下期预告:很少有…

C++条件变量唤醒问题 notify_one() 唤醒不及时问题

条件变量唤醒问题 & notify_one() 唤醒不及时问题 因为我对于 C中条件变量的等待唤醒部分、notify_all & notify_one 的区别方面有些疑点,因此就有了以下的同 chatgpt 的沟通,希望同样能够帮助到大家 感叹于 chatgpt的强大 问题? 我比…

(三十二)大白话MySQL一起来看看INSRET语句的undo log回滚日志长什么样?

昨天我们讲解了undo log回滚日志的作用,说白了,就是你执行事务的时候,里面很多INSERT、UPDATE和DELETE语句都在更新缓存页里的数据,但是万一事务回滚,你必须有每条SQL语句对应的undo log回滚日志,根据回滚日…

Docker 名词介绍

Docker核心名词镜像文件镜像:简单理解为就是一个安装包,里面包含容器所需要运行的的基础文件和配置信息,比如:redis镜像、mysql镜像等。镜像的来源方式:1. 自己做镜像 比如(自己开发微服务项目)2. 拉取别人…

python学习笔记——数据类型总结

1.基本数据类型  数据类型对应的内置函数:将其他类型,转换成自己的类型。 int()float()bool()str()list()tuple()set()dict() 2.数据类型对比  3.列表 w [a,b,c] #查 print(w[0]) print(w[0:3:2]) #增 w.appe…

css 属性和属性值的定义

文章目录css文本属性作业列表属性背景属性作业css文本属性 序号属性描述说明1font-size字体大小浏览器默认16px;2font-family字体当字体是中文字体,英文字体,中间有空格时候,要加双引号,多字体之间用逗号隔开 默认微软…

绿通科技在创业板开启申购:超额募资约19亿元,收入依赖贴牌

2月23日,广东绿通新能源电动车科技股份有限公司(下称“绿通科技”,SZ:301322)开启申购。据贝多财经了解,绿通科技本次上市的发行价为131.11元/股,发行数量为1749万股,市盈率73.75倍。 按发行价…