1

我正在制作夜空,我希望我的粒子系统中的星星闪烁。

我听说我可以使用噪声纹理来实现随机性,但我不确定从那里去哪里。而且我不确定如何使闪烁顺利进行,即。逐渐变亮,然后变暗。

现在我只是给每个顶点一个随机rand属性,然后twinkleRand每 200 毫秒左右更换一次制服。如果随机数匹配,则点变大:

if (rand == twinkleRand) {
   gl_PointSize = size * abs(sin(js_time) + rand/100.);
}
else {
   gl_PointSize = size;
}

这有点闪烁,但不是一个令人信服的效果。

4

1 回答 1

2

与其改变点的大小,不如改变颜色——你会得到更自然、更少脉动的外观。并赋予每颗星星独特的持久价值,让它们闪烁,而不是频闪。

newColor = starColor * (1.0 - (sin(js_time*starSpeed)+1.0)*starVariance*0.5)
于 2012-12-31T11:45:46.223 回答