使用 Three.js 和 Physijs 查看映射 material 的背面
See back of mapped material with Three.js and Physijs
我使用 Three.js 和 Physijs 创建了一个非常基本的立方体。我正在映射一个具有透明度的纹理,我想通过透明度看到立方体另一侧的纹理。现在,我通过透明度看到了背景,但看不到立方体背面的纹理。
var cube = new Physijs.BoxMesh(
new THREE.BoxGeometry( 2, 2, 2),
new THREE.MeshPhongMaterial( { map: THREE.ImageUtils.loadTexture('border.png') } ),
1 );
使用的纹理:
结果:
如您所见,背景透过立方体显示出来,但背面的纹理没有显示出来。我猜二维纹理的背面是看不到的,但无论如何我可以将纹理应用于每个面的两侧?
这是我第一次使用 Threejs,看起来有很多东西需要吸收,所以我希望我没有遗漏一些明显的东西:)
将 side
设置为 THREE.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
} );
但正如您在此处看到的那样,幻觉并不完美:
我使用 Three.js 和 Physijs 创建了一个非常基本的立方体。我正在映射一个具有透明度的纹理,我想通过透明度看到立方体另一侧的纹理。现在,我通过透明度看到了背景,但看不到立方体背面的纹理。
var cube = new Physijs.BoxMesh(
new THREE.BoxGeometry( 2, 2, 2),
new THREE.MeshPhongMaterial( { map: THREE.ImageUtils.loadTexture('border.png') } ),
1 );
使用的纹理:
结果:
如您所见,背景透过立方体显示出来,但背面的纹理没有显示出来。我猜二维纹理的背面是看不到的,但无论如何我可以将纹理应用于每个面的两侧?
这是我第一次使用 Threejs,看起来有很多东西需要吸收,所以我希望我没有遗漏一些明显的东西:)
将 side
设置为 THREE.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
} );
但正如您在此处看到的那样,幻觉并不完美: