three.js CanvasRenderer-设置对象的初始颜色和透明度纹理

three.js CanvasRenderer - setting initial color for object together with transparency textures

本文关键字:颜色 透明度 纹理 js CanvasRenderer- 设置 对象 three      更新时间:2024-06-22

我尝试使用CanvasRenderer来渲染我的对象,这将在运行时更改其纹理。纹理是具有透明背景的PNG图像,我希望背景的基本颜色是从对象设置的人脸。

我读过这篇文章是为了成功地将纹理加载并映射到对象中,但当我尝试更改对象的初始颜色时,我发现对象的空白空间将保持透明(并且可以穿透它),并且没有我期望的任何基础颜色。

以下是我用来试用的代码:

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,则对象可以在没有任何透明度的情况下以预期的背景色显示。

您看到的是CanvasRenderer的限制。

不能应用透明纹理并期望其渲染为贴花,也就是说,材质颜色会显示出来。

你可以有一种颜色或纹理,但不能两者都有。

解决方法是修改纹理。

three.js r.63