Jon*_*nas 4 javascript visibility three.js
在我的场景中,我有一个对象图,我将子对象添加到父对象。但是,当我设置parent.visible = falsethree.js 时行为正确并且在层次结构中没有显示任何元素。
但是对于我的项目,我想要不同的行为。我希望子对象出现,当它们的可见性是true,即使父对象被隐藏。
实现这一目标的最佳方法是什么?我想过给父对象分配一个透明材质,但听说这会在渲染场景时出现问题,应该省略。
看不见的父母的孩子是不可见的。
但是,有一个合理的解决方法:将材质可见性设置为 false。
您将需要clone()每个对象的材质,但这没关系,因为对象(在 的情况下WebGLRenderer)仍将共享相同的着色器程序。
var material = new THREE.MeshPhongMaterial();
parent = new THREE.Mesh( geometry, material.clone() );
parent.material.visible = false;
child = new THREE.Mesh( geometry, material.clone() );
Run Code Online (Sandbox Code Playgroud)
编辑:根据 OP 建议(见评论)和最近的拉取请求更新了答案。
三.js r.68 (r.69dev for CanvasRenderer)