如何在 Three.js 形状几何体中添加正面和背面纹理?
How to add front and Back textures in Three.js shape geometry?
我正在创建一个带有圆角的平面几何图形。这是我的代码的一部分。
var geometry = new THREE.ShapeGeometry(shape);
var front_material = new THREE.MeshPhongMaterial({ map: frontTexture, side: THREE.FrontSide });
var back_material = new THREE.MeshPhongMaterial({ map: backTexture, side: THREE.BackSide });
var materials = [front_material, back_material];
mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
此代码仅加载正面并在背面呈现不可见。
经过几个小时的谷歌搜索后,我找不到如何在当前 Three.js 版本 r78 上添加 material 索引。
我怀疑我只需要在这个问题上添加 material 索引。
如果你想创建一个正面和背面有不同 material 的平面形状,你可以使用这个模式:
var geometry = new THREE.ShapeGeometry( shape );
var frontMaterial = new THREE.MeshPhongMaterial( { map: frontTexture, side: THREE.FrontSide } );
var backMaterial = new THREE.MeshPhongMaterial( { map: backTexture, side: THREE.BackSide } );
var materials = [ frontMaterial, backMaterial ];
var object = THREE.SceneUtils.createMultiMaterialObject( geometry, materials );
scene.add( object );
研究 SceneUtils
的源代码,以便了解它在做什么。
three.js r.78
我正在创建一个带有圆角的平面几何图形。这是我的代码的一部分。
var geometry = new THREE.ShapeGeometry(shape);
var front_material = new THREE.MeshPhongMaterial({ map: frontTexture, side: THREE.FrontSide });
var back_material = new THREE.MeshPhongMaterial({ map: backTexture, side: THREE.BackSide });
var materials = [front_material, back_material];
mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
此代码仅加载正面并在背面呈现不可见。 经过几个小时的谷歌搜索后,我找不到如何在当前 Three.js 版本 r78 上添加 material 索引。
我怀疑我只需要在这个问题上添加 material 索引。
如果你想创建一个正面和背面有不同 material 的平面形状,你可以使用这个模式:
var geometry = new THREE.ShapeGeometry( shape );
var frontMaterial = new THREE.MeshPhongMaterial( { map: frontTexture, side: THREE.FrontSide } );
var backMaterial = new THREE.MeshPhongMaterial( { map: backTexture, side: THREE.BackSide } );
var materials = [ frontMaterial, backMaterial ];
var object = THREE.SceneUtils.createMultiMaterialObject( geometry, materials );
scene.add( object );
研究 SceneUtils
的源代码,以便了解它在做什么。
three.js r.78