问题标签 [particle-system]
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.
actionscript-3 - 将燧石粒子与 AIR 一起使用。Kindle Fire (20fps) 与 iPad 2 (6fps)
这是指 AS3 的燧石粒子系统。
我正在使用 AIR3.5 进行移动开发,因此我采用了 Pachinko 示例 ( http://flintparticles.org/examples/pachinko ) 并在多个设备上进行了尝试。令人惊讶的是,第一代 Kindle Fire (20fps) 比 iPad 2 (仅 6fps) 快得多。这是我第一次看到 iPad 2 输给 Kindle Fire,更不用说如此大的差距了。
知道为什么会发生这种情况吗?总体而言,使用 Flint 进行移动开发是否有任何陷阱?任何关于其他可行选择的建议将不胜感激。
谢谢你。
javascript - javascript中的高效粒子系统?(WebGL)
我正在尝试编写一个程序,对粒子进行一些基本的重力物理模拟。我最初使用标准 Javascript 图形(带有 2d 上下文)编写程序,这样我可以获得大约 25 fps w/10000 个粒子。我在 WebGL 中重写了该工具,因为我假设我可以通过这种方式获得更好的结果。我还在使用 glMatrix 库进行矢量数学运算。然而,通过这个实现,我只能得到大约 15fps 的 10000 个粒子。
我目前是一名 EECS 本科生,我有相当数量的编程经验,但从来没有使用过图形,而且我对如何优化 Javascript 代码知之甚少。关于 WebGL 和 Javascript 的工作原理,我有很多不明白的地方。使用这些技术时,哪些关键组件会影响性能?是否有更有效的数据结构来管理我的粒子(我只是使用一个简单的数组)?使用 WebGL 的性能下降有什么解释?GPU和Javascript之间的延迟可能吗?
任何建议、解释或一般帮助将不胜感激。
我将尝试仅包含我的代码的关键区域以供参考。
这是我的设置代码:
绘制循环:
这是 Square 继承自的类:
这些是我正在使用的着色器:
我为这冗长而道歉。同样,任何朝着正确方向提出的建议或推动都将是巨大的。
iphone - 纹理中的粒子系统未加载
我正在尝试使用粒子系统为纹理加载粒子。由于这只是一个练习,我可以“手动”生成纹理。所以在这种情况下,我只是分配一个数据缓冲区并用红色(RGBA 32 位格式)填充它。
但问题是当程序开始运行时,我只看到黑屏并且没有我期望看到的(一些红色颗粒在移动)。
我在评论中解释了我想要做的事情:
使用图像
我尝试以使用 UIImage 而不是手动创建的纹理的方式修改代码:
应用程序包中的图像“fire.png”是:
我还设置了一些其他属性,但它仍然不起作用:黑屏。
nullpointerexception - 尝试在 LIBGDX 中加载粒子效果文件时出现 NullPointerException
尝试为粒子效果加载文件时出现 NullPointerException。
这是堆栈跟踪:
任何建议为什么?
更新:
我尝试在 android 上运行并且它可以工作,但我得到了这样的东西:
但是如果我关闭手机屏幕并重新打开它,我会看到这个,它应该是这样的:
我认为此更新将回复第一条评论。
1) 桌面问题未解决 2) 应用启动时出现不良粒子图像的新问题...
cuda - CUDA C/C++:计算每点距离倒数的平均值(也许是交互能量?)
我一直在尝试编写一个内核来计算 N 给定点之间距离的倒数之和。C 中的串行尾声就像
其中 rx 和 ry 分别是 x 和 y 坐标。
我通过使用随机数生成器的内核生成点。对于内核,我每个块使用 128(256) 个线程来获得 4k(8k) 个点。在它上面每个线程执行inner above inner loop,然后将结果传递给reduce sum函数,如下
生成点:
减少:
核心:
内核配置和启动如下:
最后,我将数据复制回主机,然后执行剩余的总和:
4k点,ok!结果是:
在这种情况下,总和可能会以不同的顺序执行,导致两个结果相互分歧,我不知道......
但是当谈到 8k 时,结果却完全不同:
对我来说,内核和串行代码似乎都是以相同的方式编写的。是什么让我不相信 CUDA 计算浮点数的精度。这有意义吗?或者当某些线程同时从 X 和 Y 加载相同的数据时,对全局内存的访问是否会导致一些冲突?或者我编写内核的方式在某种程度上是“错误的”(我的意思是,我是否正在做一些导致两个结果相互分歧的事情?)。
c# - unity3d 关闭粒子系统
我正在尝试打开和关闭我创建的粒子系统。
我把它连接到一个预制件上。
我正在使用的代码如下
我希望粒子系统在按住某个键时在 fps 前面播放,并在按下它时停止播放。
cuda - CUDA C/C++:相同的可执行文件在第一次运行时给出不同的结果
以我之前回答的问题为例:My Previous Question,顺便说一句,Robert Crovella正确回答了这个问题。
我想出了另一个内核,它计算一个点的随机步长(通过使用我之前问题中的相同 RNG)并计算该点相对于其先前位置(坐标)的能量差。这是内核:
然后我在 CPU 上做最后的总和:
我的内核使用以下配置启动:
其中 Np 是点数(我使用了 1k - 4k)。我有一个 GeForce 9500 GT,它不支持加倍。而且我使用无标志/无选项进行编译。
以 Np = 1k 为例。当我编译然后运行时,结果是 dE = 6.557993。当我运行第二、第三、第四次时,无论何时,它都是 dE = -0.3515406。有谁知道这是从哪里来的?
PS:我忘了提一下,可以在My Previous Question中找到的同一个内核 AvgDistance在 DeltaE 之前被调用。我不知道这是否有任何关系,但我认为值得一提。
PS2:nn 是任意选择的点(粒子)。
opengl - 云或烟雾的粒子系统
我正在尝试使用 OpenGL 和 CUDA 为云和烟雾模拟制作一个简单的粒子系统。
如何使粒子系统中的粒子表现得像真正的云或烟雾在某些低湍流风中表现?
我现在遇到的一些问题是:
- 颗粒聚集成一个大球
- 粒子散布到无穷远
- 粒子突然弹射而去。
我已经完成了粒子的渲染,所以我对那个区域很满意。
three.js - 我可以在粒子系统上使用着色器材质吗?
我想要完成的是将不同的像素数据作为每个粒子的材质,这是我的思路:将画布设置为 PlaneGeometry 的纹理,通过片段着色器从 PlaneGeometry 获取像素数据块并放置不同的块通过粒子系统的片段着色器我想要的任何粒子的像素数据,这可能吗?
c++ - Cocos2d/Cocos2d-x 粒子系统暂停
我有一个关于如何将粒子发射器实现到预先存在的暂停、恢复和重新启动框架的问题。
现在我有一个包含以下代码的暂停方法:
我还有一个使用以下内容创建的粒子发射器:
所讨论的粒子发射器具有与之相关的持续时间,比如说 2 秒。现在,我希望我的暂停方法冻结粒子系统,这样当我取消暂停时,粒子发射器会从它停止的地方继续。
我现在遇到的问题是,当我暂停时,粒子发射器会继续。“pauseSchedulerAndActions()”方法与粒子发射器分离,据我所知,粒子发射器有自己的调度器。
无论我尝试什么,我都无法阻止粒子发射器继续在 p_emitter.setDuration() 方法中设置的时间移动。
这是有问题的,因为如果我在粒子发射器尚未达到其持续时间时暂停,那么当我取消暂停时,持续时间已到并且它已被删除,因为我设置了这个标志:
创建发射器时。此外,发射器实际上从未暂停,因此它给人的印象是游戏实际上并未暂停。
所以我的问题是,我如何完全冻结粒子发射器,以使发射器在我取消暂停时恢复?