小编Tom*_*coz的帖子

如何在Three.js中使用Texture.clone?

我的问题非常基本:我有一个纹理对象,我想克隆它,但 Texture.clone 似乎没有按预期工作

我的代码和我的问题一样基本:

var canvas = document.createElement("canvas");
canvas.width = canvas.height = 512;
canvas.getContext("2d").fillStyle = "#ff0000";
canvas.getContext("2d").fillRect(0,0,512,512);

var texture = new THREE.Texture(canvas); 
texture.needsUpdate= true;

var material = new THREE.MeshBasicMaterial({map:texture}); 
var mesh = new THREE.Mesh(new THREE.PlaneGeometry(100,100), material); 
scene.add(mesh)

//please, don't focus on "scene" and the webglrenderer object,
//it's define on the top of my code but it's not important here.
Run Code Online (Sandbox Code Playgroud)

这段代码按预期工作。

但是如果我更改包含材料定义的行

var material = new THREE.MeshBasicMaterial({map:texture.clone() });
Run Code Online (Sandbox Code Playgroud)

屏幕上什么也没有出现!为什么 ?!

编辑:感谢“TheJim01”,我意识到我没有在我的克隆纹理上应用“needsUpdate = true”。

var cloneTexture = texture.clone();
cloneTexture.needsUpdate = true; …
Run Code Online (Sandbox Code Playgroud)

three.js

0
推荐指数
1
解决办法
2562
查看次数

标签 统计

three.js ×1