【问题标题】:Making particles "twinkle" with a custom shader使用自定义着色器使粒子“闪烁”
【发布时间】:2013-06-24 09:04:23
【问题描述】:

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

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

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

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

这有点闪烁,但不是很令人信服。

【问题讨论】:

  • +1 一旦我得到新的选票。我已经喜欢这个问题了,但是It's sort of twinkly 真的让我着迷 =)
  • @ty 你能添加一个小的 jsfiddle 示例供我们实验吗??

标签: glsl three.js


【解决方案1】:

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

newColor = starColor * (1.0 - (sin(js_time*starSpeed)+1.0)*starVariance*0.5)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    相关资源
    最近更新 更多