gpt4 book ai didi

three.js - 选择克隆的网格

转载 作者:行者123 更新时间:2023-12-02 09:13:40 24 4
gpt4 key购买 nike

问题:

我创建了一个网格并克隆了它。当我尝试选择其中之一时,两者都被选中。网格体具有不同的 id,但 Material 和几何体 id 相同。

我创建了一个简单的 jsfiddle 示例:jsfiddle

我如何克隆:

var cloned =  object.clone(); 

var cloned = new THREE.Mesh(object.geometry, object.material);

在这两种情况下,结果是相同的,单击一个 - 选择两者。我尝试更改 Material ID,但没有帮助。

如果我创建新 Material ,那么一切都很好,我可以单独选择每个对象:

var cloned = new THREE.Mesh(object.geometry, new THREE.MeshLambertMaterial(....));

var cloned = new THREE.Mesh(object.geometry, object.material.clone());

我的问题。object.clone().material 和 object.clone().material 之间的 Material 有什么区别 object.material.clone()

当我使用相同 Material 创建许多网格时,也会出现相同的行为。将鼠标放在一个网格上时,将选择所有 10 个网格。示例:

var geo = new THREE.CubeGeometry(....)
var material = new THREE.MeshLambertMaterial(....)
for(var i = 0; i < 10; i++){
var mesh = new THREE.Mesh(geo, material);
}

最佳答案

When I try to select one, both is selected.

事实并非如此。仅选择了一个,但两者都突出显示。

克隆网格会创建一个新网格,但新网格与原始网格共享 Material (和几何体)。

因此,在您的演示中,您只有两个网格共享的 Material 的一个实例。

这就是为什么当您更改一个网格的颜色时,另一个网格也会发生变化。

关于three.js - 选择克隆的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15412446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com