Three.js Points, BufferGeometry: рендеринг точки в виде круга - PullRequest
0 голосов
/ 25 апреля 2018

Я новичок в three.js и шейдерах вообще.Мне нужно создать сферу частиц, которые движутся по поверхности, как волны, но это не проблема.Прямо сейчас я получил что-то вроде этого.current result

И вот результат, который мне нужен.target result

Итак, как визуализировать каждую точку в виде круга или, может быть, визуализировать текстуру?Прямо сейчас мой фрагментный шейдер имеет вид

uniform sampler2D texture;
uniform vec2 repeat;
uniform float uTime;

varying vec2 vOffset;

precision mediump float;

varying vec3 vColor;
varying vec2 vUv;
void main()
{
        vec2 uv = vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y );

        vec4 tex = texture2D( texture, uv * 0.5);

        gl_FragColor = vec4(vec3(0.5, 0.8, 0.85), 0.8);
}

Ofc. Я пытался отобразить gl_FragColor = tex, но, похоже, он не работает.Моя текстура - это просто частица.

particle

1 Ответ

0 голосов
/ 26 апреля 2018

Что вы имеете в виду gl_FragColor = tex не работает?

Если вы хотите использовать текстуру, код должен быть

uniform sampler2D texture;

void main() {
  gl_FragColor = texture2D(texture, gl_PointCoord);
}

, и вам, вероятно, следует включить смешивание и установитьсделайте это для предварительно умноженного альфа и убедитесь, что ваша текстура использует предварительно умноженный альфа и тест глубины выключен.

...