标签: particle-system

粒子系统libGDX

谁能给我一个很好的例子,说明从哪里开始在libGDX中制作粒子系统?我查看了libGDX源代码中的测试示例,但我仍然无法理解它.也许只是对它的一个很好的解释将有所帮助.我想我想用大量的彩色颗粒进行某种爆炸.任何帮助是极大的赞赏!

java android particles particle-system libgdx

14
推荐指数
1
解决办法
1万
查看次数

three.js - 调整单个粒子的不透明度

我试图改变粒子的不透明度作为它们与平面的距离的函数.

这个问题描述了我的问题,一年前的答案基本上是"你不能".不透明度显然是材料的参数,而不是元素,因此单个粒子的不透明度是不可能的.

有什么改变,有什么办法可以实现吗?如果单个粒子着色是可能的,我想这不是遥不可及的.

干杯

point-clouds particle-system three.js

13
推荐指数
1
解决办法
1万
查看次数

Android上是否有任何类型的粒子发射器,如iOS CAEmitterLayer用于圆形发射器?

到目前为止,我的问题很难解决.

我应该和我的同事一起开发一个Android应用程序,它在iOS上做同样的事情.

在开发结束时,我们应该提供两个做同样事情并且看起来很相似的应用程序(可以放心,没有像iOS指南那样强制在Android上使用,反之亦然),这样体验就是一样的,身临其境.

提供的顶级功能之一是一个漂亮的白色空圆圈动画,在圆圈内发出雪状粒子.圆圈可以通过滚动或简单的弹跳/滑动动画来移动.

因此,想象一个带有白色边框的圆圈和白色颗粒离开那个白色的膜.所有这些粒子都被吸引到中心,它们的速度基础是变化的(但没有加速!).假设最快的粒子在到达中心之前"死亡".可以通过设置终身和速度轻松设置的东西.

我的伙伴,像我这样的大三学生,正在使用iOS'CAEmitterLayer,她在一两天内获得的结果非常华丽,非常接近我们应该达到的目标.

在我身边,我真的很挣扎.像她一样,我对任何动画和UI/UX都没有任何经验.在Android上寻找粒子生成器/发射器时,我偶然发现了这个漂亮的库:https://github.com/plattysoft/Leonids,它似乎可以提供我想要的东西.

但是我使用这个库有一些未解决的问题:

  1. 我不能或不知道我是否可以将发射器放在一个圆圈内;
  2. 我相信,如果连接发射器的圆圈正在移动(滚动/动画),那么粒子很可能不会随着圆圈移动;

正如我所说,我的iOS同事解决了这些问题.即使是动人的部分:我们正在和我们的经理谈话,他们告诉我们"如果圆圈移动怎么办?" 她立刻在我们面前试了一下.我被吹走了......

她告诉我,我应该寻找一种方法将我的粒子包含在一个容器内(有意义^^),并且我的圆形视图应该用图层剪裁,这样粒子就不会离开圆圈,特别是如果整个东西都在移动.

这是我通过前面提到的Android库实现的目标:

  1. 我可以发射粒子,定义它们的形状,它们的比例/大小,它们的速度和一定的发射角度;
  2. 我可以将粒子发射器连接到视图.它将使用视图X&Y坐标发出的粒子,但有问题的基于XML的圆圈绘制这里是它包含一个内部基于正方形的视图(带heightwidth)和奇怪的原因,我的圈画上面说基于平方的观点.

我希望我能找到另一个图书馆,但如果当前的图书馆正在运作,为什么不呢?试试我的运气^^

谢谢您的帮助 !

animation android ios particle-system caemitterlayer

11
推荐指数
1
解决办法
982
查看次数

游戏如何产生火焰和烟雾效果?

我在互联网上搜索有关粒子系统和火焰效果的信息,但我没有找到任何好的答案.

有些游戏有一些电影显示为火,这是非常好的,但不适合接近观众的火灾.

如何在游戏中制作逼真的火焰和烟雾效果?我正在寻找好的示例代码或说明如何执行此操作.

3d particle-system

9
推荐指数
1
解决办法
2645
查看次数

SCNParticles最高效的图像格式?

我一直在使用带有Alpha的24位.png,来自Photoshop,只是尝试了一个与OpenGL ES配合得很好的.psd,但是Metal没有看到Alpha通道.

SceneKit中粒子绝对最高效的纹理格式是什么?

如果需要,这是一张要测试的表.

它看起来是白色的......右键单击并保存为空白区域.这是一套阿尔法重的戒指.如果你眯着眼睛看屏幕,你可能几乎不能把它们弄出来:

在此输入图像描述

夸张的示例用例:

https://www.dropbox.com/s/vu4dvfl0aj3f50o/circless.mov?dl=0

在此输入图像描述

//任何人的附加点都可以猜出视频中左右环之间的差异.

particles particle-system scenekit

9
推荐指数
1
解决办法
879
查看次数

Unity 5.5过时的粒子系统代码

之前5.5粒子系统变量可以通过ParticleSystem访问并进行读/写.现在它们是通过ParticleSystem.MainModule访问的,因此很多代码已经过时了.该API更新一直没有能够解决大部分的问题.我已经阅读了新文档,但我无法弄清楚应该如何使用新的变量类型.例如,在JetParticleEffect.cs中,此行会引发警告:

// set the original properties from the particle system
m_OriginalLifetime = m_System.startLifetime;
Run Code Online (Sandbox Code Playgroud)

警告声明:'ParticleSystem.startLifetime'已过时:'不推荐使用startLifetime属性.请改用main.startLifetime或main.startLifetimeMultiplier.

我尝试过以下方法:

m_OriginalLifetime = m_System.main.startLifetime;
// error: Cannot implicitly convert type 'UnityEngine.ParticleSystem.MinMaxCurve' to 'float'
Run Code Online (Sandbox Code Playgroud)

我相信答案与minMaxCurve 常量变量有关,因为这会编译:

m_OriginalLifetime = m_System.main.startLifetime.constant;
Run Code Online (Sandbox Code Playgroud)

但是文档中几乎没有解释.任何人都可以对此有所了解吗?

此外,新的乘数适合哪里?我假设你以前可以做到这一点:

particle.startSize *= myMultiplier
Run Code Online (Sandbox Code Playgroud)

......你现在应该这样做吗?

particle.main.startSizeMultiplier = myMultiplier
Run Code Online (Sandbox Code Playgroud)

c# updates deprecated unity-game-engine particle-system

9
推荐指数
1
解决办法
9080
查看次数

javascript中的高效粒子系统?(WebGL的)

我正在尝试编写一个程序,对粒子进行一些基本的重力物理模拟.我最初使用标准Javascript图形(带有2d上下文)编写程序,我可以通过这种方式获得大约25 fps w/10000粒子.我在WebGL中重写了这个工具,因为我假设我可以通过这种方式获得更好的结果.我也使用glMatrix库进行矢量数学运算.然而,通过这种实现,我只获得了大约15fps的10000粒子.

我目前是EECS本科生,我有一定的编程经验,但从来没有使用图形,我对如何优化Javascript代码几乎没有任何线索.关于WebGL和Javascript如何工作,我有很多不明白的地方.使用这些技术时,哪些关键组件会影响性能?是否有更有效的数据结构来管理我的粒子(我只是使用一个简单的数组)?对于使用WebGL的性能下降有什么解释?GPU和Javascript之间的延迟可能?

任何建议,解释或帮助一般将不胜感激.

我将尝试仅包含我的代码的关键区域以供参考.

这是我的设置代码:

gl = null;
try {
    // Try to grab the standard context. If it fails, fallback to experimental.
    gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
    gl.viewportWidth = canvas.width;
    gl.viewportHeight = canvas.height;
}
catch(e) {}

if(gl){
        gl.clearColor(0.0,0.0,0.0,1.0);
        gl.clearDepth(1.0);                 // Clear everything
        gl.enable(gl.DEPTH_TEST);           // Enable depth testing
        gl.depthFunc(gl.LEQUAL);            // Near things obscure far things

        // Initialize the shaders; this is where all the lighting for the
        // vertices and so forth is established.

        initShaders();

        // Here's where …
Run Code Online (Sandbox Code Playgroud)

javascript performance particles webgl particle-system

8
推荐指数
2
解决办法
7200
查看次数

云或烟的粒子系统

我正在尝试使用OpenGL和CUDA为云和烟雾模拟制作一个简单的粒子系统.

如何使粒子系统中的粒子表现为真实的云或烟雾会在一些低湍流风中表现?

我现在遇到的一些问题是:

  1. 颗粒在一个大球中聚集在一起
  2. 粒子扩散到无限远
  3. 粒子突然弹射出去.

我已经完成了粒子的渲染,所以我对那个区域感到满意.

opengl cuda particle-system

8
推荐指数
1
解决办法
2万
查看次数

SceneKit:在SCNView上渲染SpriteKit粒子系统时应用程序崩溃,当所有代码似乎都是系统代码的一部分时如何调试

SpriteKit在a的overlaySKScene属性中运行粒子系统SCNView会导致应用程序与下面的堆栈跟踪一起崩溃.

基于堆栈跟踪,似乎所有系统代码都在运行,所以你应该如何调试崩溃,更重要的是,确定它是否是SceneKit/SpriteKit的错误或应用程序中的错误?

对于它的价值,下面是添加粒子系统的函数,但它没有在堆栈跟踪中引用.

fileprivate func animateFireworks(scnPoint: CGPoint, color: UIColor) {
    // Set emitter properties
    let particleBirthRate = CGFloat(150)
    let maxParticles = 50
    let numEmitters = 5

    // SceneView point -> SpriteKit point
    let skOverlayPoint = skOverlay.convertPoint(fromView: scnPoint)

    // Create emitters
    for _ in 0..<numEmitters {
        let fireworksEmitter = SKEmitterNode(fileNamed: ExplosionEmitterFilename)!

        // Set particle size
        let particleSize = CGSize(width: 20, height: 20)
        fireworksEmitter.particleSize = particleSize

        // Set color for emitter
        fireworksEmitter.particleColorSequence = nil
        fireworksEmitter.particleColor = color …
Run Code Online (Sandbox Code Playgroud)

particle-system scenekit sprite-kit swift

7
推荐指数
1
解决办法
362
查看次数

libgdx粒子系统Z坐标

我想使用Z坐标在3D中渲染粒子效果.我试图使用Decals而不是Sprites来实现自己的ParticleEffect而没有成功.

有没有其他方法使用Z坐标渲染ParticleEffect?也许通过操纵SpriteBatch的转换矩阵?

更新:

工作代码

// update projection each frame since my camera is moving
spriteBatch.setProjectionMatrix(camera3d.projection);

for (ParticleEffect effect : effects){
    spriteBatch.setTransformMatrix(camera3d.view);
    spriteBatch.getTransformMatrix().translate(x,y,z); // different for each effect
    spriteBatch.getTransformMatrix().scale(0.1f,0.1f,0.1f); //optional
    spriteBatch.begin();

    effect.draw(spriteBatch, delta);

    spriteBatch.end();
    spriteBatch.getTransformMatrix().idt();
}
Run Code Online (Sandbox Code Playgroud)

java transformation particle-system libgdx

6
推荐指数
1
解决办法
2433
查看次数