0

我使用 Three.js 和 Physijs 创建了一个非常基本的立方体。我正在映射一个具有透明度的纹理,我想通过透明度看到立方体另一侧的纹理。现在,我通过透明度看到背景,但看不到立方体背面的纹理。

var cube = new Physijs.BoxMesh( 
    new THREE.BoxGeometry( 2, 2, 2),
    new THREE.MeshPhongMaterial( { map: THREE.ImageUtils.loadTexture('border.png') } ), 
    1 );

使用的纹理:

在此处输入图像描述

结果:

在此处输入图像描述

如您所见,背景通过立方体显示,而不是背面的纹理。我猜想看不到 2d 纹理的背面,但无论如何我都可以将纹理应用到每张脸的两侧呢?

这是我第一次使用 Threejs,看起来有很多东西要吸收,所以我希望我没有错过一些明显的东西 :)

4

1 回答 1

1

设置sidetoTHREE.DoubleSide可能会为你做这件事:

var material = new THREE.MeshPhongMaterial( {
    map: new THREE.TextureLoader().load( "image.png" ),
    transparent: true,
    side: THREE.DoubleSide // apply to both sides of the faces
} );

但是,正如您在此处看到的那样,这种错觉并不完美:

在此处输入图像描述

于 2016-02-26T10:53:14.337 回答