问题标签 [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.
ios - Are there any iOS Particle System Libraries
Does anyone know of any (opensource would be nice) Particle / Emitter libraries for iOS? I know of cocos iphone but couldn't find any others.
If all else fails I'll get my hands dirty and learn OpenGL but any helper libraries would be handy :)
iphone - 实时调整粒子文件(.plist)
我有一个正在处理的 cocos2 项目,我想知道是否有办法实时调整我的粒子系统 .plist 文件中的变量。即调整 x 重力以与玩家的速度等相关。我最初使用粒子设计器制作文件。
任何建议或方向将不胜感激。
objective-c - 如何在 iPhone OpenGL ES 粒子系统中绘制 1000 多个粒子(带有独特的旋转、缩放和 alpha)而不减慢游戏速度?
我正在使用 OpenGL ES 1.1 为 iPhone 开发游戏。在这个游戏中,我有角色在被射击时会发出的血颗粒,因此屏幕上随时可以有1000多个血颗粒。问题是当我要渲染超过 500 个粒子时,游戏的帧速率会急剧下降。
目前,每个粒子都使用glDrawArrays(..)渲染自己,我知道这是速度变慢的原因。所有粒子共享相同的纹理图集。
那么减少绘制许多粒子的速度的最佳选择是什么?以下是我找到的选项:
- 将所有血液粒子组合在一起,并使用一个glDrawArrays(..)调用来渲染它们——如果我使用这种方法,有没有办法让每个粒子都有自己的旋转和 alpha?或者当使用这种方法时,它们是否都必须具有相同的旋转?如果我不能用独特的旋转来渲染粒子,那么我就不能使用这个选项。
- 在 OpenGL ES 2.0 中使用点精灵。 我还没有使用 OpenGL ES 2.0,b/c 我需要在我设定的截止日期之前在 App Store 上发布我的游戏。使用 OpenGL ES 需要初步研究,遗憾的是我没有时间进行。我将在以后的版本中升级到 OpenGL ES 2.0,但首先,我只想使用 1.1。
这是每个粒子本身的渲染。这是我最初的粒子渲染方法,它导致游戏在渲染 500 多个粒子后帧速率显着下降。
然后我使用了方法 1,但粒子不能使用这种方法(我知道)具有唯一的旋转、缩放或 alpha。
我将重申我的问题:
如何渲染 1000 多个粒子而不会大幅降低帧速率,并且每个粒子仍然可以具有唯一的旋转、alpha 和缩放?
任何建设性的建议都会非常有帮助,我们将不胜感激!
谢谢!
c++ - 2D 粒子系统 - 性能
我已经基于“构建高级粒子系统”(John van der Burg,Game Developer Magazine,2000 年 3 月)中概述的想法和概念实现了 2D 粒子系统。
现在我想知道我应该从这个系统中获得什么性能。我目前正在我的简单(未完成)SDL/OpenGL 平台游戏的上下文中对其进行测试,其中所有粒子每帧都会更新。绘制如下
其中一个纹理用于所有粒子。
它可以平稳运行多达约 3000 个粒子。老实说,我期待更多,特别是因为这意味着要在屏幕上与多个系统一起使用。我应该希望平滑显示多少粒子?
PS:我对 C++ 和 OpenGL 也比较陌生,所以很可能是我在某个地方搞砸了!?
编辑使用POINT_SPRITE
根本看不到使用GL_QUADS
的任何性能差异!?
编辑使用VERTEX_ARRAY
使用 VA 对上述性能产生了影响。然后我尝试了 VBO,但真的没有看到那里的性能差异吗?
dynamic - 使用 SPH 对流体-固体相互作用进行建模
我是这里的新手,所以如果我的问题看起来很奇怪,我深表歉意。这是关于我的 SPH 模拟器,它还不能处理流体-固体相互作用。我的模拟器可以很好地模拟流体,但是当我想在模拟过程中添加一个实体时我感到困惑。
看了很多论文,心里有几个结论,有不对的地方请指正,
- 固体和流体物体均采用单粒子系统建模,每个物体粒子都有自己的参数值,如质量、质量密度、人工粘度等。
- 在每个时间步中,SPH 循环过程在两个对象中都照常计算,这意味着如果每个粒子对象在半径为 h 内,则可以对另一个粒子对象做出贡献,无论该粒子是什么类型。
- 与仅包含流体粒子的系统的区别在于,在流体-固体系统中,存在仅在固体对象之间计算的弹性力。不为流体粒子计算此力。
那是。最后,问题。
SPH 特定参数(如平滑长度、粒子半径等)呢?在计算每个粒子的力时,固体和流体之间有区别吗?在计算这两种粒子的力时,真正正确的方法是什么?它只是在单循环中计算吗?
我读过的论文告诉了我公式,但我认为我首先需要基本的想法。
谢谢。
opengl-es - 用于粒子系统的 GLSL PointSprite
我正在使用带有 PointSprites 的 ParticleSystem(受 Cocos2D Source 启发)。但我想知道如何重建 OpenGL ES 2.0 的功能
这些在使用 OpenGL ES 2.0 上下文时会生成 BAD_ACCESS。我应该简单地使用每个 PointSprite 的 2 个三角形吗?但这可能不是很有效(额外顶点的开销)。
编辑:所以,我对建议的解决方案的新问题来自: https ://gamedev.stackexchange.com/questions/11095/opengl-es-2-0-point-sprites-size/15528#15528
可以在批处理调用中传递许多不同的大小。我想过使用属性而不是统一,但是我需要始终将 PointSize 传递给我的着色器——即使我没有绘制 GL_POINTS。那么,也许是第二个着色器(仅用于 GL_POINTS 的着色器)?!我不知道在绘制例程中每帧切换着色器的开销(因为如果使用粒子系统,我自然也希望在没有 pointSize 的情况下渲染常规 GL_TRIANGLES)......对此有什么想法吗?
iphone - 如何在 Cocos2D-iPhone 中暂停/恢复 CCParticleSystem?
我目前正在用 Cocos2D 制作游戏,我需要暂停/恢复一些粒子系统以进行优化。
我怎样才能做到这一点?
我知道我可以使用 [particleSystem unscheduleUpdate] 和 [particleSystem scheduleUpdate],但是如何检查是否已经安排了更新?
我想暂停所有不在屏幕上的粒子系统,并在它们重新出现时恢复它们,所以当我移动我的视口时我正在循环我的粒子系统。
particleSystem.active 似乎没有给我所需的标志来检查系统是否正在更新......
我在这里想念什么?
visual-c++ - OpenGL示例粒子模拟不显示粒子
我从这个来源为喷泉创建了一个简单的粒子模拟。我还想使用 C++ 类来实现它。因此,尝试将上述部分逻辑放入此源的类中(这是一个非常好的框架)。我只需要继承类并重新定义我想要的功能。
我定义了display()
我调用 my的函数DrawObjects()
。我遇到了以下问题:
- 我将粒子数初始化为低至 50 或 100 或 500。什么都看不到。
- 我正在尝试
BMP
为我的粒子加载纹理()。由于某种原因它失败了。我尝试了相对路径和绝对路径。然后尝试加载RAW
纹理(使用IrfanViewer
)但没有运气。还尝试删除纹理代码以使它们成为简单的 OpenGL 基元。再次没有运气。 - 我写了一个简单的
DrawAxis()
函数,它实际上需要用红色字符串绘制青色轴。然而,灰色的基元出现了。我检查了配置使用的代码,但没有这样的事情。grayscale
注意:在 Windows VC++ 2010 上工作。代码可以在NippyZip
.
最小代码
主文件
GlutFramework.cpp
粒子模拟.h
粒子模拟.cpp
xna-4.0 - 粒子系统:XNA Framework HiDef 配置文件不支持 Vector4 纹理上的 alpha 混合
我发现了这个关于在 XNA 中制作粒子系统的很棒的教程:http: //www.catalinzima.com/tutorials/4-uses-of-vtf/particle-systems/
问题是它是为旧版本的 xna 和 xna 4.0 编写的。
在 DoPhysicsPass 方法中,我得到了这个异常:
XNA Framework HiDef 配置文件在使用渲染目标格式 Vector4 时不支持 alpha 混合或 ColorWriteChannels。
这是爆炸的方法
这是randomTexture的初始化:
谁能提供一些建议如何解决这个问题?
performance - CAEmitterLayer (ios5) 与 CCParticleSystem (cocos2d) 性能对比
我要创建一个有很多粒子效果的应用程序,我打算使用 cocos2d 框架。但就在最近,我才知道在 ios5 中可以创建粒子系统。
我想知道 UIKit 粒子系统与 cocos2d 粒子系统相比的表现如何。
有人试过和测试过吗?