Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Glsl “制造颗粒”;闪烁“;使用自定义着色器_Glsl_Three.js - Fatal编程技术网

Glsl “制造颗粒”;闪烁“;使用自定义着色器

Glsl “制造颗粒”;闪烁“;使用自定义着色器,glsl,three.js,Glsl,Three.js,我正在创造一个夜空,我希望我的粒子系统中的星星闪烁 我听说我可以使用噪波纹理来实现随机性,但我不确定该从哪里着手。我也不知道如何使闪烁顺利进行,即逐渐变亮然后变暗 现在我只是给每个顶点一个随机的rand属性,然后每隔200ms左右更改一个统一的twinkleRand。如果随机数匹配,则点会变大: if (rand == twinkleRand) { gl_PointSize = size * abs(sin(js_time) + rand/100.); } else { gl_Poi

我正在创造一个夜空,我希望我的粒子系统中的星星闪烁

我听说我可以使用噪波纹理来实现随机性,但我不确定该从哪里着手。我也不知道如何使闪烁顺利进行,即逐渐变亮然后变暗

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

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

它有点闪烁,但效果不太令人信服。

与其改变点的大小,不如改变颜色——你会得到一个更自然、更少脉动的外观。并给每颗星一个唯一的持久值,使它们闪烁,而不是频闪

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

+1一旦我得到新的选票。我已经喜欢这个问题了,但是它有点让我着迷了。@ty你能添加一个小的JSFIDLE示例让我们进行实验吗??