我尝试使用CanvasRenderer渲染我的对象,这会在运行时更改其纹理。 纹理是具有透明背景的PNG图像,我希望脸部的背景基色是从对象设置的。
我已阅读this以获取纹理成功加载并映射到对象中,但是当我尝试更改对象的初始颜色时,我发现对象的空白空间将保持透明(并且可以看到它)并没有任何我期待的基色。
以下是我用来对其进行试用的代码:
var texture = THREE.ImageUtils.loadTexture("./"+texture_url,new
THREE.UVMapping());
child.material = new THREE.MeshBasicMaterial(
{
map: texture,
transparent:false,
opacity: 1
});
var color = new THREE.Color("rgb(245,210,179)");
child.material.color = color;
child.material.needsUpdate = true;
这里会出现什么问题?
编辑:尝试了不透明度属性,但这里仍然没有运气。但是,如果从代码中删除map: texture
,则对象可以显示预期的背景颜色而没有任何透明度。
答案 0 :(得分:1)
您所看到的是CanvasRenderer
的限制。
您不能应用透明纹理并希望它呈现为贴花 - 也就是说,材质颜色会显示出来。
您可以拥有颜色或纹理 - 但不能同时拥有颜色或纹理。
解决方法是修改纹理。
three.js r.63