问题标签 [particle-engine]
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.
xna - XNA - 同时创建大量粒子
是时候讨论另一个 XNA 问题了。不过,这一次纯粹是从技术设计的角度来看。
我的情况是这样的:我创建了一个基于 GPU 计算的粒子引擎,虽然远未完成,但它确实有效。我的 GPU 可以轻松处理 10k 个粒子而不会出汗,如果我可以添加更多粒子,我不会感到惊讶。
我的问题:每当我同时创建很多粒子时,我的帧速率就会讨厌我。为什么?大量的 CPU 使用,即使我已将其最小化为几乎只包含内存操作。
粒子的创建仍由 CPU 调用完成,例如:
- 方法想要创建粒子并进行调用。
- 四边形以顶点的形式创建并存储在缓冲区中
- 缓冲区插入GPU,我的CPU可以专注于其他事情
当我有大约 4 个发射器每帧创建一个粒子时,我的 FPS 会降低(当然,每秒只有 4 帧,但 15 个发射器会将我的 FPS 降低到 25)。
粒子的创建:
我的想法是,也许我不应该经常创建粒子,也许有办法让 GPU 创造一切,或者我只是不知道你是怎么做这些东西的。;)
编辑:如果我不经常创建粒子,那么仍然让它看起来不错的解决方法是什么?
所以我在这里发帖希望你知道应该如何设计一个好的粒子引擎,如果我在某个地方走错了路。
c# - 使用粒子引擎的推进器效果
我一直在尝试使用粒子引擎为宇宙飞船制作一种推进器效果,但我似乎无法获得我正在寻找的效果。我遵循了粒子引擎的本教程:http ://rbwhitaker.wikidot.com/2d-particle-engine-1
我希望粒子向内而不是向外。像这样,但粒子不是静态图像:
或类似的东西:
xna - XNA - 如何将我的粒子引擎/发射器放在弹跳球上?
我有一个粒子引擎,它在我的鼠标位置创建一个发射器。
它在 Game1.cs 的 Update 方法中。
我有另一个名为 Ball.cs 的类,它具有弹跳物理和 Texture2D 纹理;Vector2 位置。
现在我如何让发射器/粒子跟随球?
cocos2d-x - 如何创建一个空的 ParticleSystem 并像 CCNode 一样在其上添加子particlesystemquad
我正在使用 cocos2d-x 3.0 alpha 制作游戏,我希望它创建空的 ParticleSystem 对象(根 A)并在其上添加许多 ParticleSystemQuads 作为子级。所以我可以通过仅更改根 A 来更改位置和比例等。
所以我做了root ParticleSystem
它没有错误,但它崩溃了,因为我没有输入 plist 文件名。我用 plist 文件名进行了测试,它可以工作,但是我必须放置任何文件才能做到这一点(当然我可以做一些技巧,比如将根 A 粒子从屏幕移到外面)。
如何像 CCNode 一样制作空的 ParticleSystem onject?我可以只使用 CCNode,但我想使用 ParticleSystem 类中的 stopSystem() 和 resetSystem() 方法。这就是为什么。
three.js - 奇怪的粒子系统投影/相机方面问题
我想了解为什么粒子系统呈现的粒子在相机四处观察/移动时会改变它们的比例。虽然必须根据 fov 缩放粒子以适应 3d 场景是可以的,但是我注意到一些我无法解释或理解的奇怪行为,我愿意分享一个显示我的问题的示例代码:
在此示例中,画布设置为 640x640,这使得粒子的呈现看起来几乎没问题,我在这里没有看到关于我的问题的问题,但是..
将视口的高度切换为 h=360 px(用于表示不同的监视器纵横比)粒子现在开始在我的眼前跳舞 在我看来,引擎使用某种错误计算的纵横比,导致它们的视觉外观打破 3D 场景构图。他们只是不再和红色矩形一起玩了,你明白吗?我找不到更好的词来解释它。
我的问题的第二部分是问,我可以做些什么来反对这种行为,意味着保持粒子在“视觉上稳定”的大小,就像在前面的例子中一样?
然而这个问题在某些情况下可能看起来并不有趣,我碰巧在这些粒子上放置了一些巨大的涂抹纹理来构建一个云系统,但是当相机移动和旋转时它们总是改变它们的大小和位置,它们'在我 16:10 的显示器上,我永远不会像这样看起来很现实。
我还注意到,当我更改透视相机的 fov 设置时,粒子将无法正确缩放,导致它们看起来更远/更近,但无论我设置什么 fov,它们都保持相同的大小。还有一个问题,当相机非常接近一个粒子时,它就会开始以一种非常奇怪的方式移出屏幕。
我相信这可能是一个错误;还是我只是在这里遗漏了什么?
three.js - 使用 stemkoski 粒子引擎的 THREE.BufferGeometry 错误
我试图在我自己的项目中使用 stemkoski 的粒子引擎(他使用粒子引擎的例子可以在这里找到)。我收到了一个错误three.min.js:474 THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead
。追根溯源,发现是他在他的库中使用的threejs版本和我的不一样。而我使用http://threejs.org/build/three.min.js
,他使用了不同的版本(查看文件,我相信它是版本 60 )
到目前为止我已经尝试过:
使用了
three.min.js
来自threejs.org/build,但在ParticleEngine.js
至
/li>
这几乎给了我同样的错误
- 改用他的three.js版本,说
renderer.setPixelRatio
它们geometry.scale
不是函数(因为我在自己的项目中使用了这两个函数)
javascript - 是否可以将多个动画对象放入 Three.js 场景中?
我对 WebGL 很陌生,我正在尝试用动画蜡烛制作蛋糕。所以,我找到了这个例子:https ://stemkoski.github.io/Three.js/Particle-Engine.html带有蜡烛火焰,并由于我的任务(蛋糕)而尝试更改代码。但是我很难在同一个场景中创建几个火焰(我找到了一些如何创建立方体或球体的信息,但不幸的是在这种情况下它没有帮助)。据我了解动画火焰显示在代码中:
但我不知道如何同时创建 5 个不同的示例。
UPD:我终于创建了几个实例,这是我的代码:
但是当我尝试为一个实例设置不同的示例(示例中的烟雾)时,所有其他实例的参数也已更改。无法弄清楚如何在不影响其他人的情况下单独更改每个实例。