混合网格,但没有背景。 three.js所

时间:2018-01-08 13:39:49

标签: three.js blending

我需要在Three.js中为两个网格执行加法混合。但我也不想混合背景。刚才我在场景中混合了一切。

你能帮我正确地混合对象吗?

我有以下片段着色器(黑色像素应该是透明的):

uniform vec3 color;
uniform float time;
varying vec2 vUv;
void main() {
    vec3 pixelColor = color*(sin((vUv.y + time)*40.));
    float alpha = pixelColor[0]+pixelColor[1]+pixelColor[2];
    if (alpha<0.)   {
        alpha=0.;
    }   else    {
        alpha=1.;
    }
    gl_FragColor = vec4(pixelColor, alpha);
}

创建材料(制服仅包含颜色):

var material1 = new THREE.ShaderMaterial({
        uniforms: uniforms1,
        vertexShader: vShader,
        fragmentShader: fShader,
        transparent: true,
        blending: THREE.AdditiveBlending,
    });

和网格:

mesh1 = new THREE.Mesh(geometry, material1);
mesh2 = new THREE.Mesh(geometry, material2);

设置背景(没有背景,一切看起来都不错):

renderer.setClearColor(new THREE.Color('skyblue')); 

我是否犯了错误,或者在RTFM的情况下,您可以帮助链接吗?谷歌没有帮助我。

0 个答案:

没有答案