簡體   English   中英

展示隱形父母的孩子

[英]Show children of invisible parents

在我的場景中,我有一個對象圖,我將子對象添加到父對象。 但是,當我設置parent.visible = false three.js行為正確並且在層次結構中不顯示任何元素。

但對於我的項目,我想要一個不同的行為。 我希望子對象在其可見性為true時顯示,即使父對象被隱藏也是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() );

編輯:根據OP建議(請參閱注釋)和最近的拉取請求更新答案。

three.js r.68(CanvasRenderer的CanvasRenderer

另一種解決方法是稍微改變對象關系。

您希望變為透明的節點應該是容器節點,它們具有子節點,但沒有可視化表示。 而這個容器的網格是一個具有特殊名稱的孩子,比如self或類似的東西。

這樣將節點設置為透明是一個將自己的孩子變為透明的功能,但這個沒有孩子然后沒有問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM