我正在尝试在three.js中制作一个平面,其中一侧是纹理,另一侧是颜色。我试过了:
var material = new THREE.MeshBasicMaterial({color: 0xff0000, side: THREE.FrontSide, map: texture});
var geometry = new THREE.PlaneGeometry(width, height);
plane = new THREE.Mesh(geometry, material);
但是,这使得平面只有一侧具有纹理,而另一侧是完全透明的。如果我走:
var material = new THREE.MeshBasicMaterial({color: 0xff0000});
然后双方都有颜色。有没有一种方法可以使一侧具有纹理而另一侧具有颜色?
如果想要在网格的正面和背面使用不同的材质,可以遵循以下一种模式:
var group = new THREE.Group();
scene.add( group );
group.add( new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { map: texture } ) ) );
group.add( new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0xff0000, side: THREE.BackSide } ) ) );
另一种方法是编写自己的自定义ShaderMaterial
,但是如果您刚刚开始使用three.js,则以上是最简单的方法
three.js r.104
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句