![](/img/trans.png)
[英]WebGL / Three.js Different materials on one complex object (grid)
[英]Alternating materials on one object
我是使用three.js
的初學者,我試圖在一個對象上定義兩種材料,並使用可見性標志在這兩種材料之間交替,但沒有成功。 還有另一種方法,還是可以做到這一點?
var materials = [
new THREE.MeshPhongMaterial( { color: 0x00ff00,visible:true, shininess: 1 } ),
new THREE.MeshPhongMaterial( { color: 0xff0000,visible:false, shininess: 1 } )
];
obj= THREE.SceneUtils.createMultiMaterialObject( geometry, materials );
scene.add( obj);
scene.traverse(function (node){
if(node instanceof THREE.Mesh) {
node.visible =!node.visible;
}
});
我將把它最終應用到場景中的所有對象,這就是為什么我使用場景的原因。
看起來您正在嘗試對材質應用可見性,但是在遍歷過程中正在檢查網格。 從材料定義中刪除visibility: true/false
,然后添加以下行:
obj= THREE.SceneUtils.createMultiMaterialObject( geometry, materials );
obj.children[1].visible = false; // add this line
scene.add( obj);
這會將visibility = false
應用於由createMultiMaterialObject
創建的第二個網格。 這樣,遍歷將正確翻轉網格的可見性。
當您更好地了解THREE.js
,您將需要研究THREE.MultiMaterial
和geometry組,以將多個材質應用於單個網格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.