我正在为我们的学生游戏编写一个粒子系统,我遇到了一些障碍.我想改善对火箭的影响,但我似乎无法弄清楚如何.
这是效果在固定船上的效果:

这是它在移动的船上的样子:

我希望火焰始终保持相同的长度.这Particle是Tick功能:
void Particle::Tick(float a_DT)
{
// temporarily turned off to see the effect of the rest of the code more clearly
//m_Pos += m_Vel;
if (m_Owner) { m_Pos += m_Owner->GetParentSpeed(); }
m_Life -= 1;
if (m_Life <= 0) { m_Alive = false; }
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑:为了清理一点,我希望效果能够跟踪,但我希望它能以相同的方式跟踪,而不管发射器的速度如何.
我无法使用JQuery粒子发射器插件.之前我遇到过这个问题,这是因为jquery库和对particle.js文件的脚本调用正在被同时加载,并且发射器文件显然首先加载.然后它无法有效加载,因为Jq lib必须先加载才能处理以下代码第3行的'$'jquery调用:
<script type="text/javascript" src="js/particle.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var emitter = new particle_emitter({ size: 16, velocity: 50, decay: 2000, rate: 20 });
emitter.start();
});
</script>
Run Code Online (Sandbox Code Playgroud)
任何建议你可以给我$(文件).ready(function(){...}); 不会延迟粒子发射器调用的负载,直到Jq库加载后将非常感激.
谢谢!
我正在尝试在处理中随机且均匀地在立方体表面上生成点。我正在尝试制作动画,所以我需要点的x,y和z最终位置。
有什么建议么?谢谢。
有没有一种方法可以冻结iOS版Sprite Kit中的粒子节点?基本上将粒子节点中的每个粒子精确地冻结在它们所在的位置。
我正在用C语言编写一个OpenGL程序,它实现了alpha透明的Bill Boarding粒子,它通过pnglib使用PNG(透明度)作为纹理.但是,我发现粒子的透明区域仍然会替换它前面的粒子.换句话说,新调用的粒子虽然在某些区域是透明的,但是完全重叠在它们之前调用的一些粒子,相反,那些先前称为粒子的粒子应该透过透明度来显示.
为了可视化它所具有的效果,我附上一些图像来显示问题:
最初我称这些粒子从最老到最新: 
但是,当视图更改时,重叠效果显而易见: 
当我决定撤销通话顺序时,我得出相反的结论:

我认为解决这个问题的方法是将粒子从最远离相机调到最近.然而,遍历每个活动粒子,从最远到最近的顺序排序,然后每个显示帧调用每个粒子,计算量很大.我希望找到一个更简单,更有效的解决方案.我已经试过了,glBlendFunc()但没有sfactor或dfactor似乎工作.
我如何开始使用Scenekit模拟火焰?
是否有一个算法预设或编辑器模板,我可以用它来探索粒子系统(SCNParticleSystem)设置的类似火焰的效果?
particles ×6
3d ×1
c ×1
c++ ×1
cube ×1
freeze ×1
geometry ×1
javascript ×1
jquery ×1
libpng ×1
opengl ×1
processing ×1
scenekit ×1
sprite ×1
sprite-kit ×1
swift ×1
transparent ×1