ShaderMaterial在Three.js中的透明度

时间:2016-04-04 15:06:01

标签: javascript three.js

我尝试通过在ShaderLib中扩展着色器(例如ShaderLib.basic)来创建自己的GLSL脚本,但不幸的是遇到了一些透明度问题:

在下图中,直接使用MeshBasicMaterial看起来很正常。

var material = new THREE.MeshBasicMaterial( params ); // color and opacity are set in params

但是当我使用ShaderMaterial时,里面的“一些”家具从窗户外看不见(这是一个奇怪的部分......),

var myShader = THREE.ShaderLib.basic;
var uniforms = THREE.UniformsUtils.clone( myShader.uniforms ); // color and opacity are set in uniforms
var material = new THREE.ShaderMaterial({
    uniforms: uniforms,
    vertexShader: myShader.vertexShader,
    fragmentShader: myShader.fragmentShader,
    transparent: true
});

by MeshBasicMaterial and by ShaderMaterial

但仍然可以从里面看到。 (comparison between inside and outside by ShaderMaterial

(这些材料在MultiMaterial中使用BufferGeometry。)

谢谢。

0 个答案:

没有答案