Three.js MeshBasicMaterial没有按预期工作

时间:2015-07-31 05:38:50

标签: javascript three.js mesh texture-mapping

我正在尝试使用Three.js创建纹理。

我的texture_f1来源是一个.png文件,这意味着你可以通过它看到背景。

问题在于,如果我尝试设置背景color: 0xffffff,它就不会 与地图结合使用:

如果我只设置了color:0xffffff,它会返回白色,但是当使用地图时:像var material_f1 = new THREE.MeshBasicMaterial({ map: texture_f1, color: 0xffffff});我可以通过.png黑色看到背景。

1 个答案:

答案 0 :(得分:2)

如果您有透明纹理,则必须将material.transparent设置为true

var material = new THREE.MeshBasicMaterial( {
    color: 0xffffff,
    map: texture,
    transparent: true
} )

请注意,材质颜色不会“透过”透明纹理 - 它着色纹理。

如果您希望材质颜色“透过”透明纹理,则需要使用ShaderMaterial,然后创建自定义着色器。

this stackoverflow answer中有一个例子。

three.js r.71