Transparency of ShaderMaterial in Three.js

爱⌒轻易说出口 提交于 2019-12-11 10:49:13

问题


I tried to create my own GLSL script by extending shaders in ShaderLib (e.g. ShaderLib.basic), but unfortunately bumped into some transparency problems:

In the picture below, it looks normal by using MeshBasicMaterial directly.

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

but when I used ShaderMaterial, "some" furnitures inside are invisible from outside of window (that's a weird part ...),

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

but can still see from inside. (comparison between inside and outside by ShaderMaterial)

(The materials are used in MultiMaterial with BufferGeometry.)

Thank you.

来源:https://stackoverflow.com/questions/36406302/transparency-of-shadermaterial-in-three-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!