繁体   English   中英

以矩形形状排列粒子

[英]Arrange particles in the shape of a rectangle

我正在使用一个粒子模拟程序,该程序可以生成矩形的随机粒子位置。 现在可以使用,但这不是最佳解决方案,通常粒子重叠并且矩形中有小孔。 如何将粒子初始化为矩形?

我当前的循环:

for(auto i=0; i<MAXPARTICLES; i++){
    int particleIndex = FindUnusedParticle();           //grab the index to give a particle life
    ParticlesContainer[particleIndex].life = 100.0f;    //Long particle life

    //generate random positions for particles in the shape of a box with random patterns
    ParticlesContainer[particleIndex].pos = glm::vec3((rand()%50)/5.0,(rand()%50)/5.0,-50.0);

    // Very bad way to generate a random color
    ParticlesContainer[particleIndex].r = 255;
    ParticlesContainer[particleIndex].g = 0;
    ParticlesContainer[particleIndex].b = 0;
    ParticlesContainer[particleIndex].a = 255;

    ParticlesContainer[particleIndex].size = .2f;

}

与仅在二维上分别使用均匀分布相比,这是一个更复杂的问题。 如果您的“均匀性”是两个最接近的粒子之间的距离,则有两种方法可以实现:等边三角形和正方形(如果算出六边形,则为三个)。 唯一随机的事情是一个种子的位置以及该种子的“方向”。

参考图片:

在此处输入图片说明

不过,这将为您提供非常规则的网格状外观。 您可以尝试将随机的微小变化应用于以这种方式分布的粒子,并观察其工作原理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM