问题标签 [particles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - OpenGL:优化四粒子的渲染
我在 2D 游戏中渲染粒子。每个粒子都是一个四边形(2 个三角形)。我怎样才能使绘图尽可能快?所有粒子都有相同的纹理,我只是改变它的位置。
现在我为每个粒子调用 glVertexPointer 和 glDrawArrays 。所以我每次向 GPU 发送 4 个顶点。
有没有其他方法可以更快?
我正在使用 OpenGL ES 1.1 (iPhone)
谢谢!
ios - 通过图像遮罩创建粒子
我正在尝试使用 CGContextClipToMask() 函数创建不同颜色的粒子。出于某种原因,我的第一个粒子似乎通过其更新完全显示和动画,但根本没有其他粒子显示。这是一段代码:
当我注释掉 ClipToMask 调用时,我看到我所有的各种填充矩形动画(即一堆以粒子效果方式填充的正方形。但是,通过调用,我只看到第一个。我是否缺少明显的东西?
android - Android 上使用 OpenGL ES 1.0 的简单粒子系统
我正在尝试使用 OpenGL 在 Android 中将粒子系统放在一起。我想要几千个粒子,其中大部分可能在任何给定时间都在屏幕外。它们在视觉上是相当简单的粒子,我的世界是 2D 的,但它们会移动,改变颜色(不是大小 - 它们是 2x2),然后我需要能够添加和删除。
我目前有一个数组,我遍历它,处理速度变化,管理生命周期(杀死旧的,添加新的),并使用 glDrawArrays 绘制它们。然而,对于这个调用,OpenGL 指向的是单个顶点。我将它glTranslatex到我想要绘制的每个粒子的相关坐标,一次一个,用glColor4x设置颜色,然后用glDrawArrays它。它可以工作,但它有点慢,只适用于几百个粒子。我自己处理剪辑。
我编写了一个系统来支持我已加载到顶点/颜色数组并使用 glDrawArrays 绘制的静态粒子,但这种方法似乎只适用于永远不会改变相对位置的粒子(即我使用 glTranslate 移动所有粒子),颜色以及我不需要添加/删除粒子的地方。在我的手机 (HTC Desire) 上进行的一些测试表明,尝试更改这些数组(由 OpenGL 指向的 ByteBuffers)的内容非常缓慢。
也许有一些方法可以自己用 CPU 手动编写屏幕。如果我只是在屏幕上绘制 1x1/2x2 点,而我只是对写作感兴趣而不做任何混合/抗锯齿,这是一个选择吗?它会比 OpenGL 正在做的任何事情都快吗?
(在 1ghz 机器上使用 200 个左右的粒子,内存为兆。这比我 20 年前在 7mhz 机器上使用 <500k 内存的速度要慢得多!我很感激我在这里使用 Java,但肯定有一个更好的解决方案。我是否必须使用 NDK 来获得 C++ 的强大功能,或者是我所追求的)
android - 如何在android上显示粒子?
我正在android上编写一个opengl es程序(NDK),我需要渲染一些粒子。谁能告诉我如何在android上显示粒子?谢谢!
iphone - cocos2d - 如何在场景中添加粒子系统
我找不到任何有关如何将使用粒子设计器创建的粒子系统添加到场景的文档。
所有的编程指南都是这样说的:
好的。然后呢?[self addChild:particleSystem];
?
另外,还有这个问题:
c++ - 什么 STL 容器执行删除之间的元素?
我需要选择一个容器来保存指向我定义的类型的指针 ( Particle
)。我正在使用预分配的粒子Object Pool
(其中包含在 std::vector 上预分配的对象)。
我的粒子发射器在需要发射时向粒子池询问粒子(以避免游戏中的粒子分配)。当一个粒子过期时,它会返回到粒子对象池。
如您所见,当我遍历我的粒子参考容器(需要选择一个)以更新它时,我将不得不检查哪些粒子已过期(lifetime <= 0.0
)并将它们返回到粒子池,过期的粒子可能是在容器中的任何位置。
我一直在考虑使用std::list
,原因如下:
列表(AFAIK)在开始时提供恒定时间插入,并在任何点提供恒定时间删除(假设您已经迭代到该点)。
欢迎对我的系统提出任何建议或改进,以便更好地适应您的容器建议。
编辑:
为了更好地解释自己:
发射器中粒子的寿命并不完全相同,它取决于一个范围,例如 5.0 秒 +-(0.0 到 0.5)。这是为了给粒子一个随机元素,在固定时间内看起来比所有的都好。
算法伪代码:
math - 3D 网格到粒子云的转换
我需要将任意三角 3D 网格转换为均匀分布的粒子云。第一个想法是尝试找到一种方法来填充一个 3D 三角形。然后填充网格的每个三角形,去除边缘上的重复粒子,但这太难了,而且工作量太大。我希望有更多的数学方法。
谁能给我指出一个可以帮助我正确完成任务的算法......好吧,至少是近似的?
谢谢
iphone - 绘制粒子
我的应用程序的一部分显示了风景,但现在有点无聊。因此,我计划在屏幕上设置一些粒子的动画(想想小翅膀之类的东西 - http://www.youtube.com/watch?v=DpmcX-rWGfs)。但是,我还没有找到任何内置的粒子系统;我怎样才能有效地做到这一点?我已经实现了我自己的动画系统,用于使用 CADisplayLink 为景观上的一些云设置动画,它有点迟钝(尽管我希望尽快让它更快)。另一个非常繁重的系统,比如我想一次动画 20 个小点,可能会破坏它。
iphone - 水果忍者之刃效果
我想做水果忍者之刃。我正在使用 cocos2d,而 MotionStreak 真的很难看。MotionStreak 还有其他方法或更好的设置吗?也许是粒子系统?有没有类似 ParticleDesigner 的免费大工具?
actionscript-3 - AS3虚拟粒子阵列
不久前,我按照教程制作了一个粒子类。基本上它使用某种虚拟列表,替换数组方法,这使得它非常快速的解决方案。所以一切都很好,除了我真的不明白到底发生了什么。这很令人困惑,所以我试图在这些东西中找到逻辑,不幸的是没有成功。如果有人能真正解释这一点,我会很高兴,所以我可以把它变成有用的东西。